我试图擦除用作 Raspberry Pi 硬盘驱动器的 4GB SD 卡,因此我进入 Mac OS X 磁盘实用程序* 并Erase
删除整个磁盘,并指定整个磁盘为一个大的 FAT-32 分区。
的输出fdisk /dev/disk2
:
Disk: /dev/disk2 geometry: 975/128/63 [7866368 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: 0B 1023 254 63 - 1023 254 63 [ 8192 - 7858176] Win95 FAT-32
2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
我的问题是,为什么第一个分区从8192扇区开始,而不是紧接在引导扇区之后?
*对不起。我的fdisk
能力并不完全是宗师级别的。
答案1
这与SD卡底层物理扇区有关。简而言之:第一个“块”经过优化以托管文件分配表,该表描述了具有 1 个 vfat 分区的 MS 硬盘的结构。
这是一个不正确的假设,但许多设备、相机、电话等只是在单个分区上使用 vfat 存储。这些卡片就是为这个市场制作的。其他块针对写入大的连续文件(图片、视频等)进行了优化。
SD 卡使用几种类型的逻辑块,其中最重要的是“擦除块”,即一次可以擦除的最小数据量。要在卡上写入任何内容,卡控制器(SD 内部)必须先读取整个擦除块,然后将其擦除,然后用更新的内容写入。
我有一张带有 1M 块的旧 4G 卡,大多数最新卡都有 4M 块。
那是 8192 个 512 字节的扇区。
因此,您必须对齐分区,以便在卡上写入文件时不会导致擦除 1 个额外的块。否则,当您写入一些小文件时,您最终会得到一张写入速度较慢的卡。
更多信息请访问 lwn.net:
使用廉价闪存驱动器优化 Linux
我不知道 Mac OS X 磁盘实用程序。也许这是一个安全的默认值,或者它发挥了一些魔力。看闪存测试台有关您的卡的更多信息。