CentOS7下的解决办法
?
查看有所有的磁盘分区:grub> ls
?(hd0) (hd0,gpt0) (hd0,gpt1) (hd0,gpt2) (hd1)
?#硬盘hd0的第一个分区gpt1相当于sda1
确定boot分区:?grub> ls (hd0,x)/ 或者?ls (hd0,x)/grub2 或者grub> ?ls (hd0,x)/boot/grub2
? ? ##x为盘数目,一个一个的查找直到找到镜像
将boot分区指定为临时根分区
?grub> set root=hd0,gpt2
指定内核的位置和真正启动后根分区的位置
? grub> linux/vmlinuz-4.14.0-115.el7a.x86_64 ?root=/dev/sda3
? #linux16或者linuxefi命令指定内核的位置,基于上一步指定的根的位置
? #root=/dev/sda3 指定系统实际的/分区
指明initramfs路径,启动系统时加载驱动
?grub> initrd?/initramfs-4.14.0-115.el7a.x86_64.img
?#使用initrd16或者initrdefi命令指定initramfs的位置,系统有多个内核时,确认好对应的版本。
启动
? grub> boot
? #上述都确认后,输入boot命令启动。如无法正常启动,请再次检查上面步骤参数。
系统启动后,重新生成grub.cfg
也可以利用find / -name "grub.cfg"? ##查找相应的路径
? # grub2-mkconfig -o /boot/grub2/grub.cfg
#cat /boot/grub2/grub.cfg |grep menuentry? #查看启动项的内核数
? 注意:grub配置文件的位置和名字
? ? ? ? CentOS6中为/boot/grub/grub.conf
? ? CentOS7中为/boot/grub2/grub.cfg