Grub 没有列出 Windows 分区

Grub 没有列出 Windows 分区

我的 ubuntu 14.04 上有一个 windows 分区,但我有一段时间没用它了,现在我注意到我在 grub 引导加载程序中看不到它。我试过sudo fdisk -l并得到输出

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 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: 0x4eb6e04c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   212700599   106350268+   b  W95 FAT32
/dev/sda2       212701184   391024639    89161728   82  Linux swap / Solaris
/dev/sda3       391026686  1953523711   781248513    5  Extended
/dev/sda5      1919977472  1953523711    16773120   82  Linux swap / Solaris
/dev/sda6       391026688  1919977471   764475392   83  Linux
Partition table entries are not in disk order

我尝试升级 grub 但没有什么变化。

我也尝试过使用输出文件进行启动修复

http://paste.ubuntu.com/12717023/

它还返回:

[当前使用的操作系统 - Ubuntu 14.04.3 LTS] 的启动文件距离磁盘的起始位置较远。您的 BIOS 可能无法检测到它们。您可能需要在创建 /boot 分区(EXT4,>200MB,磁盘的起始位置)后重试。这可以通过 gParted 等工具执行。然后通过 [Boot Repair] 的 [Separate /boot partion:] 选项选择此分区。(https://help.ubuntu.com/community/BootPartition

距离我上次访问 Windows 分区以及上次看到它的选项已经有一段时间了。我想是在我升级到 14.04 之前。我现在不需要访问它,所以如果您能告诉我如何在 grub 启动选项中恢复它,那就太好了。

谢谢

答案1

您认为磁盘上安装的是哪个版本的 Windows?唯一可以安装 Windows 的地方是/dev/sda1,即 FAT;但据我所知,支持 FAT 安装的最后一个 Windows 版本是 XP,而且我似乎记得在 FAT 上安装 XP 需要一些额外的麻烦。此外,您提供的启动信息脚本输出没有显示该 FAT 分区上有 Windows 的证据——但这可能是启动信息脚本的限制。现代版本的 Windows 都安装到 NTFS,而不是 FAT。

我还注意到您的/dev/sda2被标记为交换分区,但启动信息脚本无法识别其文件系统类型。您还有另一个交换分区(/dev/sda5),因此/dev/sda2有点神秘。Windows 可能处于 状态/dev/sda2,但您在某个时候意外更改了其类型代码,并用 0 或随机数据覆盖了至少一部分,这可以解释其当前状态。如果是这样,恢复它可能很困难或不可能。但是,如果您要尝试,我建议:

  1. 对 进行低级备份/dev/sda2,如sudo dd if=/dev/sda2 of=/path/to/lots/of/free/space/sda2-backup.img bs=4096。(该分区大小为 42.5GiB,因此您至少需要在某处留出那么多可用空间。)
  2. 使用fdisk将 的类型代码/dev/sda2从 0x83 更改为 0x07。使用t中的选项fdisk更改类型代码,然后使用 保存更改w
  3. CHKDSK在 Windows 紧急磁盘上使用/dev/sda2(在 Windows 中,它当然可能有其他名称C:)。

如果这不起作用,可以想象第三方工具将能够恢复数据。测试磁盘将能够恢复 Windows 分区。由于您的磁盘上没有未使用的空间,该分区可能被覆盖/dev/sda2,因此您可能必须删除它才能让 TestDisk 执行其操作(或者如果 TestDisk/dev/sda2在那里找到其他内容,它可能会为您删除)。

如果你主要想恢复个人文件,那么使用照片录制,它可以恢复严重损坏的文件系统中的文件。上次我检查时,PhotoRec 在恢复文件名方面做得很差。我听说有些 Windows 工具可以更好地保留文件名,但我没有名称或 URL。您可能想在 Windows 论坛上询问这个问题。

如果您只是想让 Windows 再次启动,但没有个人数据需要恢复,那么重新安装它可能/dev/sda2是最佳选择。为此,您应该将其类型代码更改为 0x07(如前所述)。我还将使用mkfs.ntfs或 GParted 在该分区上创建一个新的文件系统 (NTFS)。重新安装 Windows 后,您需要以多种有据可查的方式恢复 GRUB(但我碰巧手边没有 URL)。

相关内容