Por que precisamos especificar o tipo de partição no fdisk e depois novamente no mkfs?

11

Estou um pouco confuso sobre fdisk e mkfs .

Então - aqui está o particionamento e a formatação típicos da unidade flash 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

Minha pergunta é:

Por que precisamos usar a opção t para especificar o tipo de partição ao executar a etapa fdisk ? Como isso afeta tudo? Ele cria alguma marca na unidade USB, o que significa que apenas deveria haver partição vfat? Ou será que é seguro para pular t passo por completo? AFAIK - particionamento está apenas dividindo disco em áreas - não é?

Apenas tentando entender por que funciona da maneira que funciona :)

Stann
fonte

Respostas:

9

Porque o mkfs não conhece nem se importa com tabelas de partição. Você pode usá-lo em qualquer dispositivo de bloco que desejar, incluindo aqueles que não têm nada a ver com um disco rígido e, portanto, partições. O código do tipo de partição que o fdisk coloca na tabela de partição msdos é apenas uma dica e é praticamente ignorado por sistemas operacionais que não são da Microsoft.

psusi
fonte
5

O tipo de partição é menos específico que o tipo de sistema de arquivos. A maioria dos sistemas de arquivos Linux "nativos" usa o tipo de partição 83, por exemplo: todas as ext*variantes, ReiserFS, XFS e outras.

Você deve tentar mudar para partedou gParted. Para alguns tipos de sistema de arquivos, ele pode criar a partição e criar um sistema de arquivos na mesma ferramenta. (Em alguns sistemas de arquivos, você ainda precisa mkfsseparar.)

Warren Young
fonte
3

O tipo de partição é para dispositivos que precisam saber que tipo de sistema de arquivos você está colocando nessa partição. O Linux parece ser inteligente o suficiente para simplesmente ignorar o tipo e sabe o que o sistema de arquivos não importa. No entanto, existem alguns dispositivos que somente poderão ler seu disco se o tipo de sistema de arquivos corresponder ao sistema de arquivos real que você coloca no disco.

mkfscria o sistema de arquivos real. Ele não sabe em que tipo de coisa você está colocando esse sistema de arquivos, por isso não pode adivinhar. Você precisa dizer exatamente que tipo de sistema de arquivos você está tentando criar para que ele saiba o que fazer.

Descobri recentemente por que importa qual é o tipo de sistema de arquivos. Eu configurei um pendrive para colocar músicas em um media player, mas não defini o tipo de sistema de arquivos corretamente, mesmo que o sistema de arquivos real fosse vfat. O music player não tinha idéia de como ler a unidade, funcionou assim que o tipo de partição foi definido corretamente. Eu também tive o mesmo problema em um mac, um pendrive com o tipo de partição errado não pôde ser lido, mesmo que o sistema de arquivos real estivesse bom.

Jarryd
fonte