我有两个据称完全相同的 3TB Western Digital USB 硬盘驱动器。其中一个几乎包含全部 3TB 的数据。我希望另一个是该数据的备份。有很多小文件,因此运行速度cp
甚至比使用 通过 USB 复制 3TB 的速度还要慢dd
。两个驱动器都是同时购买的,都使用 MSDOS 分区表,但一个显示逻辑/物理扇区大小为 4096/4096,另一个显示 512/4096。
我的问题是,我正在尝试复制到512/4096 驱动器,但由于 MSDOS 分区表限制为 512 字节(逻辑)扇区,我无法创建足够大的分区。我尝试了各种命令(将dd
前几个扇区划分为分区表、、、parted
gparted fdisk
、Windows XP“管理”和 Windows 7“管理”),但最终要么最大限制为 2TB,要么分区大小约为 300GB,而创建时它们却认为是 3TB。
假设我的一个驱动器以 4096/4096 的速度运行,那么这个问题对我而言并不成立。
使用 GPT 是我的后备选项,但它会创建一个比 NTFS 分区略小的分区,所以我无法仅dd
在分区上使用文件系统。
有没有办法强制 MSDOS 分区表(无论是 Linux 还是 Windows)为 4096/4096,以便我可以创建与源磁盘完全匹配的 3TB 分区?
答案1
我刚刚遇到了类似的问题。我有一个 Seagate 3TB USB 桌面扩展驱动器,我想将其移入我的 PC 中以加快访问速度(我的 PC 上只有 USB 2.0)。一旦我这样做,我就无法访问文件系统。将它返回到 USB 到 SATA 控制器使它再次工作。比较两者,我发现在外部情况下(使用 USB 到 SATA 控制器),驱动器具有 4096/4096 个逻辑/物理扇区大小,而当连接到内部主板 SATA 时,它具有 512/4096 个逻辑/物理扇区大小。就像 OP 建议的那样,4096 个逻辑扇区大小允许 > 2TiB 分区,但在 512 个扇区大小下,我们得到 2TiB 的限制。我不想将东西(通过 USB 缓慢地)复制到某个地方,重新分区(GPT),重新格式化,然后复制回来,所以我继续这样做。我在 Linux 上的最终解决方案是:
删除使用 4k 扇区的原始 MBR 分区表。使用 gdisk(fdisk 的 GPT 变体)创建使用 512 字节扇区且跨度完全相同的分区。这基本上相当于在 4K 空间中获取分区的开始/结束扇区并乘以 8。我在末尾确实有一个偏离的扇区,所以我在那里又添加了 8 个,到目前为止一切正常(e2fsck 提醒了我这一点。)e2fsk 仍在运行,所以我不能 100% 确定我是安全的,但理论上一切似乎都很好,我确实挂载了文件一段时间,它们看起来不错。
答案2
许多超过 2 TB 的 Western Digital 外置 USB 硬盘(至少包括一些 My Book、My Book Essential、Elements 和 Easystore 硬盘)可使用 WD Quick Formatter 工具配置为 512 字节逻辑扇区或 4096 字节逻辑扇区。配置为 4096 字节逻辑扇区时,机箱中的 USB-SATA 桥接器会在 SATA 接口到内部硬盘的 512 字节逻辑扇区和 USB 接口到主机的 4096 字节逻辑扇区之间进行转换。
对于 512 字节逻辑扇区,MBR 分区表最多只能使用 2 TB 的驱动器空间。这是因为 MBR 表条目是 32 位的,最多有 2^32 或 4,294,967,296 个扇区。2^32 个扇区 x 512 字节/扇区为 2 TB。对于 4096 字节逻辑扇区,MBR 分区表最多可以使用 16 TB 的驱动器空间。(2^32 个扇区 x 4096 字节/扇区为 16 TB)Windows XP 仅支持 MBR 分区表,因此 4096 字节逻辑扇区是使用 Windows XP 中超过 2 TB 的驱动器上所有空间的唯一方法。Windows Vista 及更高版本支持的较新的 GPT 分区表格式没有 32 位限制,并且可以支持大于 2 TB 的磁盘,无论扇区大小如何。
这WD 快速格式化工具(撰写本文时,版本 2.0.0.65 可供下载)可以启用或禁用扇区大小转换。此版本的工具在 Windows XP 下无法正常工作,因此我建议在 Windows 7 或更高版本中运行该工具。在 Windows 7 中或在更高版本的 Windows 中运行时,但使用 Windows 7 兼容模式,该工具将在“格式化 WD 外置驱动器”屏幕上显示两个配置选项:
- 与 XP 兼容:此选项将驱动器配置为 4096 字节逻辑扇区,并创建 MBR 分区表。
- 最兼容(需要 Vista 或更高版本):此选项将驱动器配置为 512 字节逻辑扇区,并创建 GPT 分区表。
这两个选项还会创建一个填满整个驱动器的单个分区,并在 NTFS 中快速格式化它。
如果您在 Windows 8 或更高版本中运行该工具而不将其置于 Windows 7 兼容模式,则该工具将不会在格式化屏幕上显示兼容性选项,并且将以“最兼容”模式(512 字节逻辑扇区)进行格式化。
WD Quick Formatter 2.0.0.65 在 Windows XP 中无法正常工作:它成功配置了 4096 字节逻辑扇区,但无法正确格式化。随后可以使用另一个工具对驱动器进行分区和格式化。
WD Quick Formatter 1.2.0.10 在 Windows XP 中运行正常,但 Western Digital 不再提供下载。
当目标驱动器配置为与源相同的逻辑扇区大小时,您可以使用 dd 复制到该驱动器,并且复制将正常工作,而无需更改分区表。
我可以确认这些西部数据外置 USB 驱动器可以配置为与 XP 兼容:
Easystore 14 TB (WDBCKA0140HBK)
Easystore 12 TB (WDBCKA0120HBK)
Easystore 8 TB (WDBCKA0080HBK)
My Book Essential 1140,3 TB(WDBACW0030HBK)
Elements 1021,3 TB(WDBAAU0030HBK)
答案3
您的问题可能类似于如何在 4096 字节扇区的磁盘上更正 512 字节扇区的 MBR?简而言之,这是 USB 外壳固件的限制,因为它不理解 4K 扇区格式
物理扇区大小是 HDD 的原生扇区大小,因此无法“强制”它更改该值,除非你找到某种方法来更新驱动器的固件并执行低级格式化
一些(旧)4K HDD 可能支持模仿512 字节扇区模式(称为 512e,即 512/4096 驱动器所采用的模式),其中物理大小仍为 4K,但它报告为具有 512 字节扇区,这是逻辑大小。这意味着分区必须正确对齐到 4K,否则性能将受到很大影响。从技术上讲,报告的逻辑值可能可以通过某些磁盘配置软件或通过更新固件(如果制造商支持)来更改。
但是我不知道有任何这样的软件。如果您看到同一磁盘的不同逻辑值,那么这是因为外部机箱中的旧磁盘控制器不理解新的 512e 或 4K 格式。这种情况经常发生在 USB HDD 上,如在Shane Anderson 的回答和:
- 逻辑扇区大小会根据是通过 USB 还是直接 SATA 连接而变化
- 4k 仿真 SATA USB 控制器
- 硬盘驱动器是否根据主机控制器的需要打开 512e(4k 扇区的 512 字节模拟)?
- 通过 SATA 连接时,3TB HDD 显示 512 逻辑扇区大小
事实上,许多旧的 USB 外壳甚至不支持大于 2TB 的驱动器
更糟糕的是,有些硬盘盒会做相反的事情,将 512 字节扇区合并为 4K 扇区
某些 USB 磁盘盒使问题变得更加复杂。其中一些磁盘盒执行的操作与 AF 的操作相反:它们将八个磁盘扇区捆绑成一个新的 4096 字节扇区。我不确定此举背后的原因是什么,但一个实际优势是大于 2TiB 的磁盘可以与旧的 MBR 分区系统一起使用。一个主要缺点是,在这些磁盘盒之一中分区的磁盘不能直接使用,也不能在没有进行此类转换的磁盘盒中使用。同样,未经此转换准备的磁盘在转移到这样的磁盘盒中时也无法使用。
类似问题:
此外,你不应该使用 dd 来复制磁盘。相反,使用一些磁盘克隆工具,它们足够智能,可以跳过空白簇,并且还能够不同大小的磁盘之间的克隆
此外,没有“DOS 分区表”,但有 MBR 和 GPT(以及其他一些不常见的格式)。不幸的是,gparted 和许多 Linux 工具将其称为“msdos”,这是不正确的
使用 MBR,您只能寻址 2 个32扇区(2TB 的 512 字节扇区和 16TB 的 4K 扇区)。这就是您的 4096/4096 驱动器正常工作的原因。我想 Shane Anderson 的解决方法是有效的,但如果它不起作用,唯一的方法就是使用 GPT。事实上,即使您只有一个分区,也建议使用 GPT,因为它支持校验和和备份分区表,这大大降低了意外损坏/删除的可能性
答案4
是也不是。
您无法更改物理扇区大小,并且很少有驱动器会允许您更改传输层扇区大小,因此您总是一次写入 4K 的倍数。
但是,逻辑扇区大小与物理扇区大小无关,操作系统可以通过组合写入来处理这种转换。
驱动器每次访问的字节数始终为 4096。也就是说,任何现代操作系统的块设备驱动程序都可以在扇区大小(如今更广为人知的“块大小”)之间进行转换,因此分区块大小不必与底层设备的块大小相匹配。
您可以轻松地在 512 字节逻辑扇区设备上使用 4K 逻辑扇区分区,或者在 4K 逻辑扇区设备上使用 512 字节逻辑扇区分区。
此外,分区级逻辑扇区不必与文件系统中使用的扇区块大小相匹配。
Linux 以及扩展版的 Android 在 ExtFS 上使用 1024、2048 或 4096 的块大小(即文件系统级逻辑扇区大小)。(在 512 字节扇区驱动器上,它将使用多个物理扇区来形成一个逻辑块)。
在 FAT32 上,DRDOS 6.x 通过使用 8K 逻辑扇区支持更大的磁盘,而 Linux 可以使用更大的逻辑扇区。这样就可以创建更大的 FAT32 分区。
类似地,许多软件程序在管理包含大量极小文件的非常小的文件系统时,使用的逻辑扇区大小小至 64KB 的程序。
参考:
Linux MSDOSTOOLS 手册页
Linux mke2fs 手册页
维基百科上有关 FAT 的页面: