我有一个 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 配置在哪里。)