CentOS 6和CentOS 7丢失grub.conf后如何启动系统?

丢失grub.conf后系统重启进入grub>命令行界面


CentOS 6和CentOS 7丢失grub.conf后如何启动系统?


CentOS6下的解决办法


先将根指定为boot分区

grub> root (hd0,0)
#这里指定为第一块硬盘hd0的第一个分区0,根据你实际系统的分区指定

指定内核的位置和真正启动后根分区的位置

grub> kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/sda3
#指定内核的位置,基于上一步指定的根的位置,ro(readonly),root=/dev/sda3 指定系统实际的/分区

指明initramfs路径,启动系统时加载驱动

grub> initrd /initramfs-2.6.32-504.el6.x86_64.img
#指定initramfs的位置,系统有多个内核时,确认好对应的版本。

启动

grub> boot
#上述都确认后,输入boot命令启动。如无法正常启动,请再次检查上面步骤参数。

系统启动后,重新生成grub.conf

#这个没有找到命令,可以从其他机器拷贝一份,或者自己写一个。
#CentOS7中有命令可以自动生成!

CentOS 6和CentOS 7丢失grub.conf后如何启动系统?

CentOS 6和CentOS 7丢失grub.conf后如何启动系统?

CentOS 6和CentOS 7丢失grub.conf后如何启动系统?


CentOS7下的解决办法


查看有所有的磁盘分区

grub> ls
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (fd0)
#硬盘hd0的第一个分区msdos1相当于sda1

确定boot分区

grub> ls (hd0,msdos1)/grub2
#我的sda1为boot分区,按情况修改。
#如果boot分区没有单独挂出来的话,可以指定/分区查看,如下:
grub> ls (hd0,msdos3)/boot/grub2

将boot分区指定为临时根分区

grub> set root=hd0,msdos1
#和centos6相比略有区别

指定内核的位置和真正启动后根分区的位置

grub> linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/sda3
#linux16或者linuxefi命令指定内核的位置,基于上一步指定的根的位置
#root=/dev/sda3 指定系统实际的/分区

指明initramfs路径,启动系统时加载驱动

grub> initrd16 /initramfs-3.10.0-514.el7.x86_64.img
#使用initrd16或者initrdefi命令指定initramfs的位置,系统有多个内核时,确认好对应的版本。

启动

grub> boot
#上述都确认后,输入boot命令启动。如无法正常启动,请再次检查上面步骤参数。

系统启动后,重新生成grub.cfg

# grub2-mkconfig -o /boot/grub2/grub.cfg
注意:grub配置文件的位置和名字
CentOS6中为/boot/grub/grub.conf
CentOS7中为/boot/grub2/grub.cfg

CentOS 6和CentOS 7丢失grub.conf后如何启动系统?

CentOS 6和CentOS 7丢失grub.conf后如何启动系统?

相关推荐