Linux下的grub2

文章目录

常用命令

grub2常用命令

1、查看磁盘分区

ls -l

详细列出当前的所有设备。对于分区,会显示其label及uuid。

ls (hd1,1)/

列出(hd1,1)分区下文件
2、设置root分区(注意,这里的root是grub的root变量,不是真正的root分区目录,这里的设置变量是为了方便操作)

set root=(hd0,msdos1)
ls -l /

列出当前设为root的分区下的文件
3、loopback挂载ISO镜像进行启动
loopback命令可用于建立回放设备,如

loopback lo0 (hd0,msdos2)/centos7.iso

可以使用lo0设备来访问centos7.iso里的内容,比如说,可以从centos7.iso里的软盘映像中启动

loopback (hd0,msdos2)/centos7.isolinux (lo0)/isolinux/vmlinuzinitrd (lo0)/isolinux/initrd.imgboot

要删除某一回放设备,可以使用-d参数:

loopback -d lo0

应用

1、在grub2中建议去编辑/etc/default/grub这个配置文件,然后使用update-grub或者grub-mkconfig命令来更新grub2的配置文件。有可能出现不小心修改错了/boot/grub/grub.cfg的配置文件,导致启动系统的时候,停留在grub>的命令行界面,无法正常启动。这时候就可以通过手动加载文件,启动系统

grub> ls -l 

(通过ls -l 来一个分区找对应的内核启动文件)

grub> insmod xfsgrub> set root=(hd0,msdos1) 

(这里设置找到的boot分区)

grub> linux /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/centos-root 

(root=这里设置的就是系统真正的根分区)

grub> initrd /initramfs-.3.10.0-514.el7.x86_64.imggrub> boot

启动进入系统之后,使用grub-mkconfig命令重新生成一个grub.cfg的配置文件就可以修复了。

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

2、还有一种情况,就是boot分区被格式化,或者/boot目录被删除了,这时候就没有配置文件了,需要借助另外的启动介质来修复了。
a、在光盘启动项里面选择Troubleshooting进行启动
b、接着选择Resource a CentOS system
c、回车之后就可以进入一个shell进行操作了,这时候磁盘的系统默认是被挂载到/mnt/sysimage里面
d、使用rpm命令安装丢失的文件

rpm -ivh /mnt/cdrom/Packages/kernel-3.10.0-514.el7.x86_64.rpm --root=/mnt/sysimage/ --force

e、安装完包以后,/boot目录的文件就基本都有了,这时候只需要切换一下root环境,更新一下配置文件就可以了。

chroot /mnt/sysimage/
grub-install /dev/sda 

(如果磁盘头的grub被清除掉了,这里重新安装一下)

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

猜你喜欢

转载自blog.csdn.net/if9600/article/details/113757302