由于我的旧硬盘出现故障,我将操作系统(Windows XP SP3 32 位 Professional)克隆到了新硬盘(WD 3 TB)。
我尝试了几次才成功,最后终于可以了:
我的驱动器上有以下分区:
- 对于 Windows XP,大约需要 100 GB
- 约 400 GB 用于数据分区
我创建了第三个,大约 500 GB,目前我不确定。
无论如何,我将 Windows XP 克隆到第一个分区并最终使其可启动。成功了。
有趣的是:在 Windows XP 磁盘管理实用程序中,3 TB 磁盘显示为 745 GB!
然后我想添加另一个分区。我从 Linux Mint 17(位于同一台计算机的另一个物理驱动器上)启动,用于 gparted
在磁盘上添加另外 2 个分区。我读到 Windows XP 的硬盘大小限制为 2.2 TB,所以我添加了 2 个分区,分别约为 500 和 600 GB。所有 4 个分区加起来仍然低于 2 TB!
我使用 Linux 中的新分区来制作原始(故障)硬盘的映像。
之后我再次启动,Windows XP 无法启动,在显示带有 Windows 徽标的黑屏后不久就出现蓝屏崩溃:
错误代码:0x0000007B(0xB84C3524、0xC0000034、0x00000000)
我尝试再次修复 mbr(使用以前曾经使用过的 Windows98 启动 CD),但是没有成功。
我的问题
- 创建额外的分区是否可能是 Windows 无法再启动的原因?
- 是不是因为我在 Linux 中创建了它们
gparted
——这会损坏第一个扇区上的启动信息吗? - 如果我将 2 个分区转换回“未分配空间”(如之前一样),是否有很大机会让 Windows 再次启动?
(我的第 4 个分区上有 500 GB 的数据,将它们移动到另一个磁盘需要一些时间,而且我第一次尝试复制映像失败了,所以我想知道再次删除这些分区是否有意义) - 在 Windows XP Prof. 32bit 中我可以使用多少磁盘空间?
- 有没有办法在 Linux 中使用剩余的磁盘但让 Windows 忽略它?
附加信息
sudo parted /dev/sdb GNU Parted 2.3 Using /dev/sdb Welcome to GNU
Parted! Type 'help' to view a list of commands. (parted) unit Unit?
[compact]? B (parted) print Model: ATA WDC WD30EZRX-00D (scsi) Disk
/dev/sdb: 3000592982016B Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type File
system Flags 1 32256B 104858648575B 104858616320B
primary ntfs boot 2 104858648576B 566232088575B
461373440000B primary ntfs 3 566232088576B 1142948888575B
576716800000B primary ntfs 4 1142948888576B 1772094488575B
629145600000B primary ntfs
测试盘输出:
> sudo testdisk /dev/sdb
>
> TestDisk 6.14, Data Recovery Utility, July 2013 Christophe GRENIER
> <[email protected]> http://www.cgsecurity.org
>
> Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364801 255 63
> Partition Start End Size in sectors
> MS Data 63 204802039 204801977
> MS Data 71 204802047 204801977
> MS Data 2046 1024002045 1024000000 [home]
> MS Data 204802047 409604023 204801977
> MS Data 267056004 1105922047 838866044
> MS Data 976566272 2048002047 1071435776
> Mac HFS 1054259368 1054290799 31432
> MS Data 1105922047 1944788090 838866044
> MS Data 2048002047 3119437822 1071435776
> MS Data 3019972479 3157858310 137885832
> MS Data 3157858310 3295744141 137885832
> P Mac HFS 3326382782 3328512703 2129922
> P Mac HFS 3330438950 3332568871 2129922
> P Mac HFS 3343736868 3343856537 119670
> P Mac HFS 3362854468 4338955811 976101344
>Structure: Ok. Use Up/Down Arrow keys to select partition.
> Use Left/Right Arrow keys to CHANGE partition characteristics:
> P=Primary D=Deleted Keys A: add partition, L: load backup, T: change
> type, P: list files, Enter: to continue NTFS, blocksize=4096, 104 GB / 97 GiB
答案1
XP 显示磁盘为 745 GB 的原因与 MBR 分区的限制有关(XP 不支持 GPT 分区)。使用 MBR 分区时,您只能拥有 2^32 个块,每个块 512 字节;即大约 2 TB,因此有 2 TB 的限制。
更糟糕的是:甚至在创建任何分区表条目之前,3 TB 驱动器的容量就被报告为 0x15D3EF798 个块(每个 512 字节)。请注意,该数字是 33 位宽。XP 会忽略第 33 位(“0x”后面的“1”),剩下 0x5D3EF798 个块 = 1,564,407,704 个(十进制)块 = 800,976,744,448 字节。
XP 报告其约为 745 GB(因为 XP 以“二进制千兆字节”报告磁盘容量,其中一个“GB”= 1,073,741,824 字节 - 他们应该说“GiB”,但这只是我个人的看法)。
因此就 XP 而言,任何超出该点的分区表条目(例如 parted 输出中的第三个条目)都不正确,因为它们描述了驱动器上不存在的位置。
我不清楚 gparted 对磁盘做了什么,但 testdisk 输出显示分区表只能用“损坏”来形容,因为您认为您正在创建分区。不仅分区数量明显很多,而且许多条目似乎相互重叠。
创建额外的分区是否可能是 Windows 无法再启动的原因?
是的。
是不是因为我在 Linux 中使用 gparted 创建了它们——这会损坏第一个扇区上的启动信息吗?
是的。
如果我将这两个分区转换回“未分配空间”(就像以前一样),Windows 是否有很大机会再次启动?
也许吧。我认为现在你没什么可失去的。
(我的第 4 个分区上有 500 GB 的数据,将它们移动到另一个磁盘需要一些时间,而且我第一次尝试复制映像失败了,所以我想知道再次删除这些分区是否有意义)
我认为你最好将数据移动到另一个磁盘。
在 Windows XP Prof. 32bit 中我可以使用多少磁盘空间?
我根本不会在 XP 上使用它。我会尝试找到一个安全的 2 TB 磁盘。如果您必须使用这个,请坚持使用前 745 GB(根据 XP 的报告),这样就没问题了。
有没有办法在 Linux 中使用剩余的磁盘但让 Windows 忽略它?
我对此表示怀疑。要在 XP 上使用它,您必须使用 MBR 分区,而 LBA 大于 745 GB 左右的 MBR 分区表条目(即“使用剩余的磁盘”)很可能会导致问题。
您可以在 Windows Vista 或更高版本下将其用作数据磁盘(第二个磁盘)...如果您的机器具有 UEFI 固件,则可以将其用作操作系统磁盘。