删除 NTFS 分区后 GRUB 启动菜单消失了?

删除 NTFS 分区后 GRUB 启动菜单消失了?

我有一个 Windows XP 和 Fedora12 双启动系统。

以下是我的硬盘的分区结构。

Disk /dev/sda: 80.1 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x5e5e5e5e

 Device    Boot      Start       End      Blocks    Id  System
/dev/sda1               1        1912    15358108+   7  HPFS/NTFS
/dev/sda2            1913        9733    62822182+   f  W95 Ext'd (LBA)
/dev/sda5            1913        3824    15358108+   7  HPFS/NTFS
/dev/sda6            3825        6374    20482843+   7  HPFS/NTFS
/dev/sda7            6375        7941    12586896    7  HPFS/NTFS
/dev/sda8            7942        8018      618471    7  HPFS/NTFS
/dev/sda9            8019        8203     1485950    7  HPFS/NTFS
/dev/sda10  *        8204        8229      204799+  83  Linux
/dev/sda11           8229        9733    12084924   8e  Linux LVM

我通过 Windows 磁盘管理删除了“/dev/sda8”,然后重新启动系统。GRUB 启动菜单消失了,并出现了 GRUB 控制台。

然后我使用 Fedora12 live USB 启动我的系统并在删除它的同一位置创建一个新分区,然后重新启动后我的系统开始正常工作,就像在删除分区之前一样。

但是,我不明白到底发生了什么。

谁能详细地告诉我发生了什么、为什么发生以及将来该怎么做才能避免此类事情发生?

答案1

我猜测 Grub 无法找到它的配置。

看起来像/dev/sda10是你的启动分区,Grub 的配置和第二阶段引导加载程序就在这里。你删除的分区来自这。

在删除分区之前和之后,您的磁盘在 Grub 中的样子如下:

设备 Grub 之前[*] Grub 之后
====== =========== ==========
/dev/sda1 (hd0,0) (hd0,0)
/dev/sda2 (hd0,1) (hd0,1)
/dev/sda5 (hd0,2) (hd0,2)
/dev/sda6 (hd0,3) (hd0,3)
/dev/sda7 (hd0,4) (hd0,4)
/dev/sda8 (hd0,5)——
/dev/sda9 (hd0,6) (hd0,5)
/dev/sda10 (hd0,7) (hd0,6)
/dev/sda11 (hd0,8) (hd0,7)

[*] Grub1 样式枚举;Grub2 从 1 开始计数,因此
    /dev/sda1 将是 (hd0,1)。

看到了吗?Grub 预计会在(hd0,7)但现在(hd0,6)。这解释了为什么它会损坏,也解释了为什么当您在该空间中创建新分区时它会被修复。

您应该在启动 Linux 时删除该分区。您可能只需要更新 Grub 配置文件中的条目,但您可以在重新启动之前进行这些更改并避免麻烦。您可能还需要重新运行grub 安装

(在 Debian/Ubuntu 上,这些是/boot/grub/菜单.lst对于 Grub1 或/boot/grub/grub.cfg对于 Grub2,尽管你可能只是运行更新 grub自动完成。根据 Distrowatch 的说法,Fedora 12默认使用 Grub v0.97,即 Grub1,但我不确定 Fedora 的 Grub 配置在哪里。)

相关内容