如何在CentOS/RHEL 7中使用 grubby 删除救援镜像

要求是删除安装 CentOS/RHEL 7 系统时安装的默认救援镜像。
列出 /boot 目录下的救援镜像:

[root@geeklab ~]# ls -lrt /boot
total 135164
-rw-------. 1 root root  3113253 Nov 22  2016 System.map-3.10.0-514.el7.x86_64
-rw-r--r--. 1 root root   137696 Nov 22  2016 config-3.10.0-514.el7.x86_64
-rwxr-xr-x. 1 root root  5392080 Nov 22  2016 vmlinuz-3.10.0-514.el7.x86_64
-rw-r--r--. 1 root root   277953 Nov 22  2016 symvers-3.10.0-514.el7.x86_64.gz
drwxr-xr-x. 2 root root       27 Sep 23 19:50 grub
-rw-------. 1 root root 64487503 Sep 23 20:00 initramfs-0-rescue-9cdb9ab3246a4b3f9c0849ecd597f25e.img
-rwxr-xr-x. 1 root root  5392080 Sep 23 20:00 vmlinuz-0-rescue-9cdb9ab3246a4b3f9c0849ecd597f25e
-rw-r--r--. 1 root root 10209739 Sep 23 20:00 initrd-plymouth.img
-rw-------. 1 root root 30753143 Sep 23 20:02 initramfs-3.10.0-514.el7.x86_64.img
drwx------. 6 root root      111 Sep 23 20:02 grub2
-rw-------. 1 root root 18624164 Sep 23 22:10 initramfs-3.10.0-514.el7.x86_64kdump.img

我们不能简单地对 /boot 目录中的救援镜像执行 rm。
还有其他条目,例如 grub2 配置文件中的菜单条目,也需要删除。
按照以下步骤从系统中删除默认救援图像。

https://onitroad.com 更多教程

使用 grubby 删除救援图像

  1. 首先从 /boot 目录中删除救援镜像。
rm -fr /boot/vmlinuz-0-rescue-9cdb9ab3246a4b3f9c0849ecd597f25e
  1. 在GRUB2配置文件/boot/grub2/grub.cfg中找到需要删除的rescue菜单项。
# cat /boot/grub2/grub.cfg 
....
menuentry 'CentOS Linux (0-rescue-9cdb9ab3246a4b3f9c0849ecd597f25e) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-9cdb9ab3246a4b3f9c0849ecd597f25e-advanced-10bac86a-a9be-478c-b63f-46d3ca061e03' {
	load_video
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  a52207e4-01fd-4f12-98b7-681d56f21dc5
	else
	  search --no-floppy --fs-uuid --set=root a52207e4-01fd-4f12-98b7-681d56f21dc5
	fi
	linux16 /vmlinuz-0-rescue-9cdb9ab3246a4b3f9c0849ecd597f25e root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet
	initrd16 /initramfs-0-rescue-9cdb9ab3246a4b3f9c0849ecd597f25e.img
}
....
  1. 使用带有 -remove-kernel 选项的 grubby 命令删除救援镜像。
# grubby --remove-kernel=/boot/vmlinuz-0-rescue-9cdb9ab3246a4b3f9c0849ecd597f25e
  1. 验证救援图像菜单项现在是否已从 grub2 配置文件中删除。
# cat /boot/grub2/grub.cfg | grep rescue
日期:2020-09-17 00:12:37 来源:oir作者:oir