闪存驱动器的几何形状取决于什么?我可以根据自己的喜好进行更改吗?

闪存驱动器的几何形状取决于什么?我可以根据自己的喜好进行更改吗?

我有一个 USB 闪存驱动器。以下是fdisk(Linux) 生成的初始信息:

# fdisk -l /dev/sdc

Disk /dev/sdc: 8053 MB, 8053063680 bytes
16 heads, 60 sectors/track, 16384 cylinders, total 15728640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd297c0f1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    15728639     7863296    b  W95 FAT32

然后我用不同的工具(例如,,,,,)玩了一段时间,并badblocks想恢复驱动器的初始状态(相同的分区表,相同的分区号/类型/大小/位置,相同的文件系统和...几何形状。但是当我再次运行它时,fdisk 打印了不同的几何形状:partedfdiskgparteddisks

# fdisk -l /dev/sdc

Disk /dev/sdc: 8053 MB, 8053063680 bytes
232 heads, 46 sectors/track, 1473 cylinders, total 15728640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7a249df5

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    15728639     7863296    c  W95 FAT32 (LBA)

事实上,我所做的正是:

  • 使用坏块执行了测试:badblocks -w -s -o /tmp/output /dev/sdc
  • fdisk使用和创建新的分区表parted
  • fdisk创建了主分区parted
  • 将分区格式化为 FAT32 和 exFAT(mkfs.vfat -F32 /dev/sdc1mkfs.exfat /dev/sdc1
  • 更改了分区系统类型ID

当然,我知道闪存驱动器没有头、柱面等……并且拥有相同的扇区总数很重要。但无论如何,我是否想为闪存驱动器设置特定的几何形状?我该怎么做?这取决于使用的工具还是命令选项?

答案1

几何结构(磁柱、磁头、磁扇区)已过时,即使在现代硬盘中也无关紧要,更不用说闪存驱动器了。它在现代操作系统中基本不被使用;几乎所有东西都使用线性地址(逻辑块寻址 [LBA] 或其他特定于接口的方法)。它不会影响性能。

这些 CHS 值是虚构的,因为 MBR 分区表包含 CHS 地址。当前版本的 fdisk (util-linux 2.27.1) 甚至默认不显示这些令人困惑的信息。

答案2

您可以使用例如覆盖几何形状fdisk -H 32 -S 32 /dev/sda。这将导致所有柱面的长度为 512k。由于 msdos 分区方案中的分区从柱面边界开始,因此这是一种确保所有分区正确对齐大多数 SSD 的巧妙方法(第一个分区除外,它偏移一个轨道以保留引导加载程序的空间)。

然而,最好使用 GPT,而不要考虑伪几何图形。

相关内容