大硬盘(3 TB)会导致 Windows XP 32 位无法启动吗?

大硬盘(3 TB)会导致 Windows XP 32 位无法启动吗?

由于我的旧硬盘出现故障,我将操作系统(Windows XP SP3 32 位 Professional)克隆到了新硬盘(WD 3 TB)。

我尝试了几次才成功,最后终于可以了:

我的驱动器上有以下分区:

  1. 对于 Windows XP,大约需要 100 GB
  2. 约 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 固件,则可以将其用作操作系统磁盘。

相关内容