在Centos7中更改默认交换磁盘

在Centos7中更改默认交换磁盘

我们禁用了已安装的旧交换空间(磁盘)/dev/mapper/centos-swap以增加根的大小(/)。然后我们在以下位置创建新的交换文件/dev/sda3

# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
├─sda2            8:2    0 19.5G  0 part 
│ └─centos-root 253:0    0 19.5G  0 lvm  /
└─sda3            8:3    0    8G  0 part [SWAP]
sr0              11:0    1 1024M  0 rom  

现在系统成功加载交换空间:

# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        1.2G        5.6G         11M        863M        6.2G
Swap:          8.0G          0B        8.0G

但是当我们重新启动系统时,操作系统会报告找不到centos-swap文件的错误:

...    
+ cat /proc/cmdline
Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.14.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet LANG=en_US.UTF-8
...
[  131.037146] ***** dracut-initqueue[278]: Failed to find logical volume "centos/swap"
[  192.680201] ***** dracut-initqueue[278]: Warning: Could not boot.
[  192.683555] ***** dracut-initqueue[278]: Warning: /dev/centos/swap does not exist
[  192.694602] ***** systemd[1]: Starting Dracut Emergency Shell...
...

然后操作系统以紧急模式运行并且操作系统等待我们exit从输入Dracut Emergency Shell

如何设置交换空间而不会在启动时出现任何问题?

答案1

解决方案:

在 CentOS 7 的默认安装中swap,在 中创建的分区root。当我们在 中使用默认参数禁用交换时,在中创建的分区无法更新。bootsdaswapoffboot/proc/cmdline

我们安装grub-customizer(或任何其他 grub 编辑器)并删除预定义的交换规则。例如:

BOOT_IMAGE=/vmlinuz-3.10.0-229.14.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet LANG=en_US.UTF-8

变成:

BOOT_IMAGE=/vmlinuz-3.10.0-229.14.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root crashkernel=auto rhgb quiet LANG=en_US.UTF-8

现在交换已启用,并且启动时不会出现错误。

相关内容