grub:“缺少操作系统”

grub:“缺少操作系统”

我尝试编辑该menu.lst文件以便与 Windows 7 进行双启动。我只是取消注释 Windows 条目并添加

map (hd0) (hd1)
man (hd1) (hd0)

根据 Arch Linux wiki。我重新启动并看到一个包含 3 个选项的 Grub 菜单:Arch Linux、Arch Linux Recovery、Windows 7。正如它应该的那样。我选择了Windows 7,但什么也没发生。我按下 Ctrl-Alt-Del 并重新启动。我得到的不是 grub,而是“缺少操作系统”。

使用 Arch Live USB 闪存驱动器,我安装了分区/boot/( /dev/sda1),然后发现我什至无法进入该grub目录来查看或修复内容。cd /mnt/boot和的输出ls -l为:

EXT2-fs (sda1): error: ext2_get_inode: unable to read inode block - inode=10041, block=41221
ls: cannot access grub: Input/output error
total 13667
d????????? ? ?    ?          ?            ? grub
-rw-r--r-- 1 root root 8411722 May  2 19:37 kernel26-fallback.img
-rw-r--r-- 1 root root 1764873 May  2 19:37 kernel26.img
drwx------ 2 root root   12288 May  2 19:12 lost+found
-rw-r--r-- 1 root root 1545080 Apr 22 18:32 System.map26
-rw-r--r-- 1 root root 2198640 Apr 22 18:32 vmlinuz26

因此,在一切进展顺利之后,尝试启动 Windows 似乎已经破坏了 grub。 (注意:连接第二个(Windows)驱动器但未在 中显示时menu.lst,Arch 工作正常,启动正常,可以安装和读取另一个驱动器上的分区。)

我无法向您展示该menu.lst文件,因为我看不到它。除了取消注释 Windows 条目并添加上面给出的两行之外,它没有对默认值进行任何更改。

输出fdisk -l

Disk /dev/sdb: 1000.2 GB...
...

       Device Boot     Start       End     Blocks  Id  System
/dev/sdb1              1         5      40131  de  Dell Utility
/dev/sdb2              6      1327   10614784   7  HPFS/NTFS
/dev/sdb3   *       1327     63517  499537920   7  HPFS/NTFS
/dev/sdb4          63517    121602  466567168   f  W95 Ext'd (LBA)
/dev/sdb5          63517    121602  466566144   7  HPFS/NTFS
Warning: invalid flag 0x0000 of partition table 5 will be corrected by w(rite)

Disk /dev/sda: 1000.2 GB...
...

   Device Boot     Start       End     Blocks  Id  System
/dev/sda1              1         5      40131   6  FAT16
/dev/sda2              6      1327   10614784   7  HPFS/NTFS
/dev/sdb3   *       1327     63517  499537920   7  HPFS/NTFS
/dev/sdb4          63517    121602  466567168   f  W95 Ext'd (LBA)

我注意到 sda1-4 的分区信息与 sdb1-4 完全相同,但它们不应该是这样。

另外,我似乎无法从sdaexcept挂载任何内容/dev/sda1/,其中包含启动文件和无响应的grub目录。如果我这样做了,我就会被告知mount: you must specify the filesystem type。如果我指定-t ntfs,它会失败并说出来doesn't have a valid NTFS。如果我指定-t ext4(应该是这样),它会说它是错误的 fs 类型。

我想不出任何其他细节可以包括在内。

答案1

从 Live CD 运行以下命令:

/lib/udev/vol_id /dev/sda2
/lib/udev/vol_id /dev/sda3
/lib/udev/vol_id /dev/sda4

并观察输出。如果它无法识别分区类型,则最可能分区已损坏。

相关内容