centos swapper恢复过程
导读:CentOS 交换空间 Swapper 恢复流程 一、先快速判断与启用 查看当前交换状态:free -h、swapon --show。若显示 Swap: 0B,说明未启用。 临时启用: 交换文件:sudo swapon /swapfil...
CentOS 交换空间 Swapper 恢复流程
一、先快速判断与启用
- 查看当前交换状态:
free -h、swapon --show。若显示 Swap: 0B,说明未启用。 - 临时启用:
- 交换文件:
sudo swapon /swapfile - 交换分区:
sudo swapon /dev/sdXN或 LVM 逻辑卷:sudo swapon /dev/mapper/centos-swap
- 交换文件:
- 持久化:在 /etc/fstab 添加对应条目并验证
- 文件:
/swapfile swap swap defaults 0 0 - 分区或 LVM:
/dev/mapper/centos-swap swap swap defaults 0 0
- 文件:
- 再次验证:
swapon --show、free -h。以上步骤可快速恢复被禁用的 Swap。
二、有备份时的恢复(交换分区或交换文件)
- 确认设备/文件路径:
swapon -s - 如备份为压缩包先解压:
gunzip /backup/swap/file.img.gz - 恢复:
- 分区:
dd if=/backup/swap/swap_backup.img of=/dev/sdXN bs=4M status=progress - 文件:
dd if=/backup/swap/swapfile_backup.img of=/swapfile bs=4M status=progress
- 分区:
- 启用:
swapon /dev/sdXN或swapon /swapfile - 验证:
swapon --show、free -h - 建议操作在单用户/救援模式下进行,并确保充足磁盘空间。
三、无备份时的重建(按场景操作)
- 场景 A:使用交换文件
- 创建:
sudo fallocate -l 2G /swapfile(或dd if=/dev/zero of=/swapfile bs=1M count=2048) - 安全设置:
sudo chmod 600 /swapfile - 格式化:
sudo mkswap /swapfile - 启用:
sudo swapon /swapfile - 持久化:在 /etc/fstab 添加
/swapfile swap swap defaults 0 0 - 验证:
swapon --show、free -h
- 创建:
- 场景 B:使用 LVM 交换逻辑卷(如误删或丢失)
- 查看卷组:
sudo vgs - 重建 LV(示例名 centos/swap,大小 2G):
sudo lvcreate -L 2G -n swap centos - 格式化:
sudo mkswap /dev/mapper/centos-swap - 启用:
sudo swapon /dev/mapper/centos-swap - 持久化:在 /etc/fstab 添加
/dev/mapper/centos-swap swap swap defaults 0 0 - 验证:
swapon --show、free -h
- 查看卷组:
- 场景 C:进入 dracut 紧急模式且提示 /dev/centos/swap does not exist
- 在 dracut 中挂载根分区:
mkdir /tmp/root & & mount /dev/mapper/centos-root /tmp/root - 编辑:
vi /tmp/root/etc/default/grub,将rd.lvm.lv=centos/swap从GRUB_CMDLINE_LINUX中删除并保存 - 挂载 /boot:
mkdir /tmp/boot & & mount /dev/vda1 /tmp/boot(设备名以实际为准) - 编辑:
vi /tmp/boot/grub2/grub.cfg,删除所有linux16 ... rd.lvm.lv=centos/swap ...的启动项参数 - 重启:
reboot - 系统启动后按“场景 B”重建 centos/swap 并写回 /etc/fstab。
- 在 dracut 中挂载根分区:
四、启动失败或卡在 swapper 的应急排查
- 查看内核日志:
dmesg | grep -i "swapper\|panic";查看上次启动日志:journalctl -b -1 - 进入单用户/救援模式修复:
- CentOS 6:GRUB 编辑内核行,末尾加 single 启动
- CentOS 7:将
ro改为 rw,行尾追加 init=/bin/bash 启动
- 若因 LVM/设备不存在导致无法挂载,按“场景 C”清理 rd.lvm.lv=centos/swap 后启动,再重建交换
- 若日志出现 “task swapper blocked for more than 120 seconds”,多与磁盘/存储 I/O 超时相关,优先排查底层存储、RAID、宿主机资源等。
五、验证与优化建议
- 验证:
swapon --show、free -h、cat /proc/swaps应能看到已启用的交换设备/文件与大小 - 适度调整 vm.swappiness(默认通常为 60):
- 临时:
sudo sysctl vm.swappiness=10 - 永久:在 /etc/sysctl.conf 加入
vm.swappiness=10并执行sudo sysctl -p
- 临时:
- 不建议将 swappiness 设为 0(可能导致 OOM 风险增大)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos swapper恢复过程
本文地址: https://pptw.com/jishu/778989.html
