Зачем нам нужно указывать тип раздела в fdisk, а потом снова в mkfs?

11

Я немного запутался в fdisk и mkfs .

Итак, вот типичное разделение и форматирование USB-накопителя:

umount /dev/sdb
fdisk fdisk /dev/sdb

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-960, default 1): ↵
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-960, default 960): ↵
Using default value 960 

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)

Command (m for help): a
Partition number (1-4): 1

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x 
partitions, please see the fdisk manual page for additional
information.

mkfs -t vfat /dev/sdb1

Мой вопрос:

Почему мы даже должны использовать опцию t, чтобы указать тип раздела при выполнении шага fdisk ? Как это влияет на все? Создает ли это какую-то метку на USB-диске, означая, что там должен быть только раздел vfat? Или это безопасно пропустить т шаг вообще? AFAIK - разделение - это только разделение диска на области - не так ли?

Просто пытаюсь понять, почему это работает так, как работает :)

Стан
источник

Ответы:

9

Потому что mkfs не знает и не заботится о таблицах разделов. Вы можете использовать его на любом желаемом блочном устройстве, включая те, которые не имеют ничего общего с жестким диском, и, следовательно, с разделами. Код типа раздела, который fdisk помещает в таблицу разделов msdos, является лишь подсказкой и в значительной степени игнорируется операционными системами не Microsoft.

psusi
источник
5

Тип раздела менее специфичен, чем тип файловой системы. Большинство «родных» файловых систем Linux используют, например, тип раздела 83: все ext*варианты, ReiserFS, XFS и другие.

Вы должны попробовать переключиться на partedили gParted. Для некоторых типов файловых систем он может создать раздел и создать файловую систему в одном инструменте. (С некоторыми файловыми системами вам все равно придется работать mkfsотдельно.)

Уоррен Янг
источник
3

Тип раздела предназначен для устройств, которым необходимо знать, какую файловую систему вы помещаете в этот раздел. Linux кажется достаточно умным, чтобы просто игнорировать тип, и знает, что такое файловая система, несмотря ни на что. Однако есть некоторые устройства, которые смогут читать ваш диск, только если тип файловой системы соответствует фактической файловой системе, которую вы поместили на диск.

mkfsсоздает фактическую файловую систему. Он не знает, на что вы кладете эту файловую систему, поэтому он не может просто догадываться. Вы должны точно сказать, какую именно файловую систему вы пытаетесь создать, чтобы она знала, что делать.

Недавно я выяснил, почему имеет значение тип файловой системы. Я установил USB-флешку для размещения песен для использования в медиаплеере, однако я не правильно установил тип файловой системы, хотя реальной файловой системой был vfat. Музыкальный проигрыватель понятия не имел, как читать диск, он работал, когда тип раздела был установлен правильно. У меня также была такая же проблема на Mac: USB-флешка с неправильным типом раздела не читалась, даже если реальная файловая система была в порядке.

Jarryd
источник