常用命令
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