显然,分区表和所有文件似乎仍然完好无损。Debian 能够挂载 ntfs 分区,我可以读取/写入,并且我目前正在使用 dd 将数据映像到外部硬盘上。
fdisk:
# fdisk -l /dev/sdb
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x17557a4b
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 206847 102400 7 HPFS/NTFS/exFAT
/dev/sdb2 206848 251903999 125848576 7 HPFS/NTFS/exFAT
/dev/sdb3 251906048 503603199 125848576 7 HPFS/NTFS/exFAT
/dev/sdb4 503605620 976784129 236589255 f W95 Ext'd (LBA)
Partition 4 does not start on physical sector boundary.
/dev/sdb5 503607296 557346815 26869760 7 HPFS/NTFS/exFAT
/dev/sdb6 557348864 976769023 209710080 7 HPFS/NTFS/exFAT
ms-sys:
ms-sys /dev/sdb
/dev/sdb has an x86 boot sector,
it is an unknown boot record
分手:
# parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print list
Error: Can't have a partition outside the disk!
gparted 显示未分配文件系统的未分配分区。查看分区信息显示与 parted 相同的错误。
# gpart /dev/sdb
*** Fatal error: dev(/dev/sdb): seek failure.
MBR 转储:
# dd if=/dev/sdb of=/media/seagate-a/mbr.bin bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 9.4563e-05 s, 5.4 MB/s
root@carbon:/home/martin# hexdump -C -s 512 /media/seagate-a/mbr.bin
00000200 fc 31 c0 8e d0 31 e4 8e d8 8e c0 be 00 7c bf 00 |.1...1.......|..|
00000210 06 b9 00 01 f3 a5 be ee 07 b0 08 ea 20 06 00 00 |............ ...|
00000220 80 3e b3 07 ff 75 04 88 16 b3 07 80 3c 00 74 04 |.>...u......<.t.|
00000230 08 06 af 07 83 ee 10 d0 e8 73 f0 90 90 90 90 90 |.........s......|
00000240 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 |................|
*
00000270 90 90 90 90 90 90 90 90 90 90 90 90 90 90 be be |................|
00000280 07 b0 00 b9 04 00 80 3c 00 75 6e fe c0 83 c6 10 |.......<.un.....|
00000290 e2 f4 31 db b4 0e be 9d 07 8a 0e af 07 ac d0 e9 |..1.............|
000002a0 73 02 cd 10 08 c9 75 f5 b0 3a cd 10 31 c0 cd 16 |s.....u..:..1...|
000002b0 3c 00 74 f8 be 8b 07 b9 02 00 e8 ba 00 3c 0d 74 |<.t..........<.t|
000002c0 b4 3c 61 72 06 3c 7a 77 02 2c 20 88 c3 be 9d 07 |.<ar.<zw., .....|
000002d0 8a 0e af 07 ac d0 e9 73 04 38 c3 74 06 08 c9 75 |.......s.8.t...u|
000002e0 f3 eb af b8 0d 0e 31 db cd 10 8d 84 62 00 3c 07 |......1.....b.<.|
000002f0 75 07 b0 1f a2 af 07 eb 99 31 d2 b9 01 00 3c 04 |u........1....<.|
00000300 74 11 73 f3 30 e4 b1 04 d2 e0 be be 07 01 c6 8a |t.s.0...........|
00000310 16 b3 07 bf 05 00 56 f6 c2 80 74 31 b4 41 bb aa |......V...t1.A..|
00000320 55 52 cd 13 5a 5e 56 72 1e 81 fb 55 aa 75 18 f6 |UR..Z^Vr...U.u..|
00000330 c1 01 74 13 8b 44 08 8b 5c 0a be 8d 07 89 44 08 |..t..D..\.....D.|
00000340 89 5c 0a b4 42 eb 0c 8a 74 01 8b 4c 02 b8 01 02 |.\..B...t..L....|
00000350 bb 00 7c 50 c6 06 8f 07 01 cd 13 58 5e 73 05 4f |..|P.......X^s.O|
00000360 75 b4 eb 93 81 3e fe 7d 55 aa 75 f6 ea 00 7c 00 |u....>.}U.u...|.|
00000370 00 be 83 07 b9 0a 00 50 b4 0e 31 db ac cd 10 e2 |.......P..1.....|
00000380 fb 58 c3 54 65 73 74 44 69 73 6b 0d 0a 10 00 01 |.X.TestDisk.....|
00000390 00 00 7c 00 00 00 00 00 00 00 00 00 00 31 32 33 |..|..........123|
000003a0 34 46 00 00 41 4e 44 54 6d 62 72 00 02 02 02 1f |4F..ANDTmbr.....|
000003b0 c7 00 00 80 00 00 00 00 4b 7a 55 17 cf c9 80 20 |........KzU.... |
000003c0 21 00 07 df 13 0c 00 08 00 00 00 20 03 00 00 df |!.......... ....|
000003d0 14 0c 07 fe ff ff 00 28 03 00 00 98 00 0f 00 fe |.......(........|
000003e0 ff ff 07 fe ff ff 00 c8 03 0f 00 98 00 0f 00 fe |................|
000003f0 ff ff 0f fe ff ff 74 69 04 1e 8e 21 34 1c 55 aa |......ti...!4.U.|
00000400
# file /media/seagate-a/mbr.bin
/media/seagate-a/mbr.bin: x86 boot sector; partition 1: ID=0x7, active, starthead 32, startsector 2048, 204800 sectors; partition 2: ID=0x7, starthead 223, startsector 206848, 251697152 sectors; partition 3: ID=0x7, starthead 254, startsector 251906048, 251697152 sectors; partition 4: ID=0xf, starthead 254, startsector 503605620, 473178510 sectors, code offset 0x31
Windows 7 安装位于 /dev/sdb2 上。/dev/sdb1 曾经是系统保留。
我尝试使用以下方法“重新生成” MBRms-sys --mbr7 /dev/sdb和测试磁盘所以我认为我已经完全破坏了 MBR 以及任何依赖它的东西,以至于整个东西都必须“重新生成”——MBR 和分区表。奇迹般地,Debian 仍然能够操作分区,所以并不是所有的希望都破灭了——对吧?
我想“重新生成” MBR,以便我可以从此驱动器启动到我的 Windows 7 安装。有没有工具可以帮助我解决这种情况?
答案1
这至少是您的问题的一部分:
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
...
Device Boot Start End Blocks Id System
...
/dev/sdb4 503605620 976784129 236589255 f W95 Ext'd (LBA)
请注意,您的扩展分区终点(扇区 976,784,129)是后磁盘末尾(有 976,773,168 个扇区)。这当然是非法的,并且 libparted(parted
和 GParted 都基于此)对此反应不佳。已知旧版本的 TestDisk 会产生此问题,但我没有跟踪它以了解 TestDisk 是否仍存在此错误。其他一些工具可能会做同样的事情。
最简单的解决方案是运行我的修复零件程序在磁盘上。它将丢弃过大的扩展分区,并创建一个既足够大以容纳逻辑分区又足够小以适合磁盘的分区。阅读 FixParts 文档以了解如何使用它的详细信息。
话虽如此,如果您在启动 Windows 时遇到问题,我不确定此解决方案是否能解决该问题。您尚未完全描述 Windows 启动失败的症状,因此如果修复虚假扩展分区没有帮助,我建议您编辑原始帖子以包含有关您尝试启动 Windows 的方式以及失败原因的更多详细信息。例如,您是尝试直接启动还是通过 GRUB 启动?如果是后者,您grub.cfg
启动 Windows 的条目是什么?您是否看到 Windows 启动画面?您是否看到任何错误消息?计算机是否挂起、重新启动或以其他值得注意的方式出现异常?
答案2
最简单的方法是使用 Ubuntu Live 发行版。下载 Ubuntu 的安装 .iso 文件,通过 unetbootin 等实用程序或类似命令将其安装在 USB 上
sudo dd if=/path/to/isofile.iso of=/dev/sdb bs=1M
你必须绝对地,肯定地确保您的 USB 是 /dev/sdb。然后从 USB 启动,选择“尝试 Ubuntu 而不安装”,打开终端,按照以下说明安装 Boot-Repair此网页,其中还包含有关如何使用它的信息。这些简单的说明足以解决我听说的几乎所有情况下的这个问题。