Suz*_*Soy 5 partitioning fdisk advanced-format
我在IcyBox IB-290StUS-B USB/ esata机箱内有一个WD10JPVT 1Tb 磁盘。
问题在于,在 MBR 分区表中,分区的开头和结尾表示为多个(逻辑)扇区。这意味着如果我在通过 expresscard 的 esata 端口插入磁盘时对磁盘进行分区,然后将其插入 USB 端口或本机 esata 端口,则分区将具有错误的偏移量和错误的大小,反之亦然。
fdisk 输出fdisk下面的命令使用 Ubuntu 11.04 (natty) 运行,并在 Expresscard 上为 USB 和 esata 提供与 XUbuntu 12.04 相同的结果,但我无法测试本机 esata,因为这是我从 Ubuntu 12.04 启动的。
通过 USB 连接:
> sudo fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c2664
Device Boot Start End Blocks Id System
/dev/sdb1 1 15201 122095104 7 HPFS/NTFS
Run Code Online (Sandbox Code Playgroud)
通过计算机的本地 esata 端口连接:
> sudo fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000c2664
Device Boot Start End Blocks Id System
/dev/sdb1 1 15201 122095104 7 HPFS/NTFS
Run Code Online (Sandbox Code Playgroud)
通过 expresscard 的 esata 端口连接:
> sudo fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 15200 cylinders
Units = cylinders of 16065 * 4096 = 65802240 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000c2664
Device Boot Start End Blocks Id System
/dev/sdb1 1 15201 976760832 7 HPFS/NTFS
Run Code Online (Sandbox Code Playgroud)
您对磁盘格式(MBR 和 GPT)进行了非常深入的分析,并且您似乎遇到了这些标准中未考虑到的问题,即独立于逻辑扇区大小的格式。
问题在于,USB 磁盘的内部扇区大小为 4K,但根据其连接的端口伪装成不同的扇区大小(逻辑和物理)。在实践中,它还假装不同的柱面/扇区配置,尽管这种映射至少是一致的。
改变这种行为需要:
在我看来,这两种选择你自己都不可能做到。我没有在西部数据网站上找到任何适用于您的磁盘的固件更新,并且我没有搜索更好的磁盘驱动程序(部分原因是我不知道到底要搜索什么,但即使我知道我也不会太乐观的)。
在 2012 年 6 月发布的以下帖子中也提出了同样的问题:
How will I强制 Debian 使用硬盘上的物理扇区大小?
这是令人沮丧的公认答案(引用了 2011 年 7 月的一篇文章):
根据http://www.techarp.com/showarticle.aspx?artno=734上发布的对 Western Digital 代表的采访,当前高级格式驱动器上没有禁用 512e 模拟的选项。
[...] 西部数据是否会提供固件升级,将当前在仿真模式下运行的高级格式驱动器转换为本机格式?
很不幸的是,不行。当前的高级格式驱动器无法通过固件升级转换为以本机格式运行
我希望其他人能给出更好的答案,但我自己的答案往往是否定的。我不建议尝试创建非标准 GPT/MBR 格式,如果您希望保证数据安全,则不建议这样做。