GRUB不检测Windows XP

我昨天在/dev/sda1上安装了Arch Linux。 我使用Live Ubuntu USB来更新GRUB,因为在我安装Arch之后,GRUB说:“超出范围”。 所以我更新了GRUB,一切都很好,但GRUB没有从/dev/sda5看到我的Windows XP。

fdisk -l print:

 Disk /dev/sda: 82.3 GB, 82348277760 bytes 255 heads, 63 sectors/track, 10011 cylinders, total 160836480 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xaeb8aeb8 Device Boot Start End Blocks Id System /dev/sda1 * 2048 9682943 4840448 83 Linux (Arch root) /dev/sda2 9684990 160835583 75575297 5 Extended /dev/sda5 64372797 106446689 21036946+ 7 HPFS/NTFS/exFAT (WIN XP) /dev/sda6 106446848 108404735 978944 82 Linux swap / Solaris (Ubuntu Swap) /dev/sda7 108406784 117868543 4730880 83 Linux (Ubuntu root) /dev/sda8 117870592 160835583 21482496 83 Linux (Ubuntu home) /dev/sda9 9684992 64372735 27343872 83 Linux (Arch home) Partition table entries are not in disk order 

我试图安装os-prober,但WIN XP没有显示…我试图在/etc/grub.d/40_custom为windows编写一个条目:

 menuentry "WIN XP" { set root='(hd0,5)' chainloader +1 } 

我更新了GRUB,但它不起作用。

那么,我需要做什么? 谢谢!

GRUB 2设计为比GRUB 1更智能,这意味着您不再手动配置菜单。 相反,GRUB现在让您解决阻止它检测操作系统的潜在问题,这可能是蓝精灵的痛苦。

现在,也就是说,有几件事可以阻止GRUB检测你的XP驱动器。 根据我的研究,这通常表明分区本身存在问题。 你应该尝试从Windows或Windows修复磁盘运行chkdsk。 如果这些失败,请查看下面的论坛post,看看您是否遇到类似的问题。 最有可能的是,Arch损坏了GRUB用于检测操作系统的小型启动分区。

http://ubuntuforums.org/showthread.php?p=9826152

与往常一样,在开始这些步骤之前备份所有内容。

祝好运! 基尔