如何修复Grub
当出现“grub>”提示时,可以使用以下命令尝试修复引导加载程序并将其引导回Linux发行版。
-首先做一个简单的'ls'列表,看看有哪些分区可用。根据您的配置,您可能会在此列表中看到多个硬盘驱动器或者分区。
grub> ls (hd0) (hd0,msdos1)
- 我们可以通过使用另一个
ls
命令查看任何分区的文件。这将识别要启动的哪个分区。
grub> ls (hd0,msdos1)/ lost+found var/dev/run/etc/tmp/sys/proc/usr/bin boot/home/lib lib64 mnt/opt/root/sbin srv/
- 一旦确定了正确的分区,就可以使用以下命令将其设置为root。在我们的示例中,我们将使用
(hd0,msdos1)
作为根分区,/boot/vmlinuz
作为Linux内核,/boot/initrd.img
作为镜像文件,/dev/sda1
作为设备名。根据您的分布和配置,这些值可能会有所不同。使用tab completion帮助选择正确的Linux内核和镜像文件,并使用'fdisk-l'命令获取正确的设备名称。
grub> set root=(hd0,msdos1) grub> linux /boot/vmlinuz root=/dev/sda1 grub> initrd /boot/initrd.img
- 设置根分区,Linux内核和Initrd镜像文件后,我们应该能够成功启动到Linux发行版中。
grub> boot
- 一旦加载到系统中,通过重新制定配置文件并重新安装GRUB来完成修复GRUB。
# grub-mkconfig -o /boot/grub/grub.cfg # grub-install /dev/sda # reboot
Grub文件
让我们从对grub的基本理解开始。系统上的grub文件可以在“/boot/grub”中找到。此目录包含grub配置文件grub.cnf
以及grub查找并引导到操作系统所必需的其他文件。
如果其中一个文件被删除或者以其他方式编辑以阻止grub执行其工作,那么下次重新启动计算机时,您将发现自己在grub rescue菜单中。其他时候,在双引导环境中摆弄分区可能会导致类似的问题。无论哪种方式,您最终都需要修复grub,这就是我们接下来要讨论的内容。
如果grub完全破坏了什么?
如果启动计算机时出现“grub rescue>”提示,则需要使用live media帮助修复系统。
启动到live环境后,打开终端并键入以下命令。
- 首先,挂载分区。如果我们不确定正确的名称,请使用
fdisk -l
。
# mount /dev/sda1 /mnt
- Chroot进入已安装的系统,以重新配置Grub。
# chroot /mnt
- 生成一个新的grub配置文件(在基于Debian的系统上,下面命令的替代方案是
更新grub
)。
# grub-mkconfig -o /boot/grub/grub.cfg
- 最后,将GRUB安装到设备上,退出CHROOT,并将系统正常重新启动。
# grub-install /dev/sda # exit # reboot
日期:2020-07-07 20:56:08 来源:oir作者:oir