Ubuntu Swap怎么在不同硬盘间分配
导读:Ubuntu 在多块硬盘间分配 Swap 的可行方案 使用多个交换分区(每块盘一个),通过 /etc/fstab 的 pri= 设置优先级,实现按磁盘性能或剩余空间自动分配与回退。 使用交换文件(每块盘一个),同样以 pri= 控制优先级...
Ubuntu 在多块硬盘间分配 Swap 的可行方案
- 使用多个交换分区(每块盘一个),通过 /etc/fstab 的 pri= 设置优先级,实现按磁盘性能或剩余空间自动分配与回退。
- 使用交换文件(每块盘一个),同样以 pri= 控制优先级,便于随时增删与迁移。
- 使用 ZRAM(内核压缩内存)作为第一层高速交换,再叠加一块或多块硬盘上的交换分区/文件作为第二层,兼顾性能与容量。
方案一 多交换分区按优先级分配
- 步骤
- 在目标硬盘上创建并初始化交换分区(示例为 /dev/sdb1)
- 分区类型设为 Linux swap(82):
sudo fdisk /dev/sdb→ n → t → 82 → w - 格式化:
sudo mkswap /dev/sdb1
- 分区类型设为 Linux swap(82):
- 启用测试:
sudo swapon /dev/sdb1 - 持久化:获取 UUID →
sudo blkid /dev/sdb1
写入 /etc/fstab(示例,优先级 10 高于默认 0):
UUID=xxxx-xxxx-xxxx none swap sw,pri=10 0 0 - 如需在旧盘保留部分交换,重复以上步骤为旧盘创建分区(如 /dev/sda2),并在 fstab 中给较低优先级(如 pri=1)。
- 验证:
swapon --show或free -h,应看到多块盘上的 Swap 均已启用,且按 pri 优先使用高优先级盘。 - 调整/移除:先
sudo swapoff /dev/sdXN,再修改 /etc/fstab 后sudo swapon -a。
说明:使用分区方式时,推荐用 UUID 而非设备名,避免盘序变化导致错误挂载。
- 在目标硬盘上创建并初始化交换分区(示例为 /dev/sdb1)
方案二 多交换文件按优先级分配
- 步骤
- 在目标硬盘创建交换文件(示例在 /mnt/data/swapfile2,大小 8G)
- 创建:
sudo fallocate -l 8G /mnt/data/swapfile2(若失败可用dd if=/dev/zero of=/mnt/data/swapfile2 bs=1G count=8) - 权限:
sudo chmod 600 /mnt/data/swapfile2 - 格式化:
sudo mkswap /mnt/data/swapfile2
- 创建:
- 启用测试:
sudo swapon /mnt/data/swapfile2 - 持久化:写入 /etc/fstab(示例,优先级 5)
/mnt/data/swapfile2 none swap sw,pri=5 0 0 - 如需多盘,重复创建并分配不同优先级;验证:
swapon --show。 - 调整/移除:
sudo swapoff /mnt/data/swapfile2,再编辑 /etc/fstab 并sudo swapon -a。
说明:交换文件更灵活,易于在不同硬盘间迁移与调整大小。
- 在目标硬盘创建交换文件(示例在 /mnt/data/swapfile2,大小 8G)
方案三 ZRAM 叠加硬盘交换
- 思路
- 启用 ZRAM 作为第一层高速交换(压缩内存,低延迟),再配置一块或多块硬盘上的交换分区/文件作为第二层,容量不足时自动落到硬盘。
- 快速启用 ZRAM(Ubuntu 桌面版通常已内置)
- 查看/启用服务:
sudo systemctl enable --now zramswap.service - 查看状态:
zramctl或swapon --show
- 查看/启用服务:
- 叠加硬盘交换
- 按方案一或二创建并挂载硬盘上的交换(如 pri=1),系统将优先使用 ZRAM,超出后再使用硬盘交换。
说明:ZRAM 能显著减少磁盘 I/O,适合作为前置层;当内存压力继续升高,再由硬盘交换承接。
- 按方案一或二创建并挂载硬盘上的交换(如 pri=1),系统将优先使用 ZRAM,超出后再使用硬盘交换。
关键注意事项
- 使用 UUID 而非设备名(如 /dev/sda1)写入 /etc/fstab,提升可靠性。
- 正确设置 pri= 实现“优先用哪块盘”:数值越大优先级越高;未设置时默认为 0。
- 变更前先
sudo swapoff -a,变更后用sudo swapon -a使 /etc/fstab 生效,并用swapon --show、free -h校验。 - 若从旧盘迁移,记得在 /etc/fstab 中移除旧盘 swap 条目,避免开机报错或误用旧盘。
- 硬盘空间不足或误配过大交换文件,可能导致系统无法进入图形界面;必要时进入 TTY 检查并释放空间。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Swap怎么在不同硬盘间分配
本文地址: https://pptw.com/jishu/779247.html
