修复Grub2救援未知文件系统错误
GRUB是大统一引导加载程序,这是基于Linux内核的操作系统的默认引导加载程序。
如果我们有一个双引导系统,如Windows和Linux,那么我们可能会有一些问题。
如果在Linux安装之后安装Windows(例如ubuntu或者centos),那么Windows将自己的Bootloader放在MBR上。
所以grub不再可见。
在大多数情况下,需要重新安装GRUB在这种情况下。
本文提供了一些方案,使GRUB2不可释录,并且可以重新安装GRUB,以便解决像获取"错误:未知文件系统"的问题。
GRUB救援
当GRUB无法启动系统时,或者无法找到第二阶段,它将用户丢弃到看起来像的GRUB提示符:
error: unknown filesystem grub rescue >
重新安装Grub.
首先,我们需要启动系统。
在GRUB提示符下,我们可以运行以下命令以启动系统。
root (hd0,0) kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/sda1 initrd /initrd-2.6.18-238.el5.img boot
当然,Linux内核和initrd文件版本将是不同的。
这仅适用于GRUB遗产。
对于GRUB 2,我们需要运行以下命令以启动。
set root=(hd0,6) set prefix=(hd0,6)/boot/grub insmod normal normal
此外,我们还需要将分区更改为引导分区。
如果我们无法启动系统(可能是由于文件系统的错误,或者由于缺少GRUB配置文件),我们需要从其他媒体启动。
如果可用,我们可以使用一些可启动救援CD或者分发的实时CD。
启动到系统后,如果缺少或者错误配置,我们可能需要创建GRUB配置文件。
要创建这些配置文件,请运行
$update-grub
此命令需要超级用户权限。
因此,运行此命令(以及本文中的以下命令)作为root。
下一步是在MBR上安装GRUB。
这将解决Windows引起的问题,其中Windows在Linux上安装Windows后,Windows在MBR上安装其引导加载程序。
其中我假设我们已从Live或者Rescue CD启动。
现在,在我们去MBR上安装Grub的详细信息之前,我们需要安装Linux的根分区。
$mount /dev/sda1 /mnt
其中假设根分区为/dev/sda1.
此分区安装在/mnt目录上。
我们可以选择自己的挂载点,根文件系统分区可能不同。
现在,我们准备安装Grub。
运行以下命令
$grub-install --root-directory=/mnt//dev/sda
这将在主引导记录上安装GRUB。
如果要在某些分区上安装它,请将上述命令的最后一个参数用正确的分区替换。