mkswap是Linux中用于初始化磁盘分区或文件为交换空间的命令,仅完成格式化,需配合swapon启用;支持-c检查坏块、-L设标签、-U设UUID等选项,不指定size参数,默认使用整个设备或文件。
mkswap 是用来把一块磁盘分区或一个普通文件“格式化”成交换空间的命令,它本身不启用交换,只完成初始化。用之前得先有目标设备或文件,之后必须配合 swapon 才能真正生效。
选一种方式准备底层存储:
/dev/sdb2,确认未挂载且无重要数据sudo fallocate -l 2G /swapfile(快速)
或 sudo dd if=/dev/zero of=/swapfile bs=1M count=2048(兼容性好)
sudo chmod 600 /swapfile
对目标执行格式化,常见用法:
sudo mkswap /dev/sdb2
sudo mkswap /swapfile
sudo mkswap -c /dev/sdb2
sudo mkswap -L myswap /dev/sdb2
sudo mkswap -U $(uuidgen) /swapfile
注意:size 参数已基本弃用,除非特殊需求,不用手动指定大小;-f(force)风险较高,仅在明确需要绕过安全检查时使用。
mkswap 只是第一步,接下来要激活才能用:
sudo swapon /dev/sdb2 或 sudo swapon /swapfile
swapon --show 或 free -h
sudo swapoff /swapfile
临时启用重启后失效,需写入 /etc/fstab:
UUID=xxxx-xxxx-xxxx-xxxx none swap sw 0 0
(UUID 可通过 sudo blkid /swapfile 或 sudo blkid /dev/sdb2 查看)
/swapfile none swap sw 0 0
sudo swapon --verify