От чего зависит геометрия флешки? Могу ли я изменить его по своему усмотрению?

1155
gumkins

У меня есть флешка. Вот его начальная информация, сгенерированная 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, parted, fdisk, gparted, disks) и хотел восстановить исходное состояние диска (тот же partion таблицы, такой же номер раздела / тип / размер / местоположение, то же файловой системы и ... геометрия Но fdisk напечатал другую геометрию, когда я запустил ее снова:

# 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/sdc1, mkfs.exfat /dev/sdc1)
  • изменен тип системы разделов

Конечно, я знаю, что у флэш-накопителей нет заголовков, цилиндров и т. Д. И что важно иметь одинаковое общее количество секторов. Но в любом случае, я хотел бы установить конкретную геометрию для флешки, как бы я это сделал? Зависит ли это от используемого инструмента или параметра команды?

1

2 ответа на вопрос

1
Metabolix

The geometry (cylinders, heads, sectors) is deprecated and irrelevant even in modern hard disks, let alone flash drives. It is mostly not used in modern operating systems; practically everything uses linear addresses (logical block addressing [LBA], or other interface-specific methods). It will not affect performance.

These CHS values are made up because the MBR partition table contains CHS addresses. Current versions of fdisk (util-linux 2.27.1) don't even show this confusing information by default.

0
András Korn

You can override the geometry using e.g. fdisk -H 32 -S 32 /dev/sda. This will cause all cylinders to be 512k long. Since partitions in the msdos partitioning scheme begin on cylinder boundaries, this is a somewhat nifty way of ensuring all partitions are properly aligned for most SSDs (except the first partition, which is offset by one track to reserve room for the bootloader).

However, it's better to use GPT and forget about faux geometries.