3

CentOS7的救援模式和紧急模式

 2 years ago
source link: https://zhangrr.github.io/posts/20211119-linux_rescue/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

CentOS7的救援模式和紧急模式

2021-11-19 2 分钟阅读

说到 CentOS7 的紧急模式与救援模式,网上可以搜到漫天飞的帖子,说一下区别

RESCUE 救援模式: 救援模式启动的系统没有挂载硬盘,可以将硬盘 mount 出然后拷出数据。

EMERGENCY 紧急模式: 紧急模式启动的系统是一个最小的环境。根目录档案系统将会被挂载为仅能读取,而且将不会做任何的设定。

当然进入的方法也很简单,进入系统的时候按 e 修改 grub 菜单参数,就可以进入不同的模式

本文讨论的重点不是怎么进去,而是那两句命令,在紧急状态下反正我是记不住的

systemd.unit=rescue.target
systemd.unit=emergency.target

都没有之前的 single 简单,也完全记不住,既然记不住,那就干脆做到菜单里好了,这才是本文的重点。

现在都是使用 grub2 了,而不是 grub,这很重要。grub2的配置文件是 /boot/grub2/grub.cfg。

修改 grub2 有两个工具,grub2-mkconfig 和 grubby,不要同时使用这两个工具修改,会覆盖的

  • grub2-mkconfig 会去搜索 /boot 目录下的内核文件,有多少个内核就会生成多少个启动项。那么如果是同一个内核,想修改不同的启动参数,做多个启动项就完蛋,他不能自动生成单内核的多个启动项
  • grubby 很灵活,可以根据当前 grub2 的配置,生成一个内核,多个不同启动参数的多个启动项。

那么我们要加进去两个只是启动参数不同,内核其实一样的启动项,用 grubby 就好了

grubby --add-kernel=\$(ls -1cat /boot/vmlinuz*|grep rescue) --title="RESCUE BOOT" --initrd=\$(ls -1cat /boot/initramfs*|grep rescue) --args="systemd.unit=rescue.target" --copy-default

grubby --add-kernel=\$(ls -1cat /boot/vmlinuz*|grep rescue) --title="EMERGENCY BOOT" --initrd=\$(ls -1cat /boot/initramfs*|grep rescue) --args="systemd.unit=emergency.target" --copy-default

切忌我们之后不能运行

grub2-mkconfig -o /boot/grub2/grub.cfg

否则上面的两个启动项菜单会消失,因为 grub2-mkconfig 配置的话一个内核只能有一个启动项

grub2-mkconfig 也有自己的强项,如果要修改缺省的菜单超时时间,grubby 就做不到了

sed -i '/^GRUB_TIMEOUT=/s/^.*$/GRUB_TIMEOUT=10/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK