Tudo bem com o mkfs sem o número da partição?

10

Eu tenho um pen drive e uma partição:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk 
└─sda1   8:1    0 931.5G  0 part /
sdb      8:16   1   7.5G  0 disk 
└─sdb1   8:17   1   7.5G  0 part

e eu formatei com o comando:

   # mkfs.fat -n A /dev/sdb

e funciona bem.

Mas depois disso, passei pela página de manual do mkfs:

   mkfs is used to build a Linux filesystem on a device,  usually  a  hard
   disk  partition.   The  device argument is either the device name (e.g.
   /dev/hda1, /dev/sdb2),  or  a  regular  file  that  shall  contain  the
   filesystem.   The  size argument is the number of blocks to be used for
   the filesystem.

Diz que mkfsdeve funcionar com o número da partição. E meu problema é por que minha operação funciona sem aviso de erro?

Alaneuler
fonte
1
não há problema em usar o dispositivo inteiro em vez de uma única partição. isso faria mais sentido se você quiser 3,5 G de gordura e 4G ext3 / luckfs / o que for, então você terá que dividir e formatar cada parte.
Archemar 22/02
1
Se você colocá-lo em um dispositivo que espera que exista uma tabela de partição, ele poderá solicitar que você formate ... geralmente é melhor ter uma tabela de partição, mesmo que não seja estritamente necessária.
Frostschutz
1
A página de manual diz que o dispositivo geralmente é uma partição do disco rígido . Um disco rígido inteiro também é um dispositivo de bloco adequado.
precisa

Respostas:

10

Criar um sistema de arquivos em um disco inteiro em vez de em uma partição é possível, mas incomum. A documentação apenas menciona explicitamente a partição porque esse é o caso mais comum ( geralmente é o caso ). Você pode criar um sistema de arquivos em qualquer coisa que atue suficientemente como um arquivo de tamanho fixo, ou seja, algo em que, se você gravar dados em um determinado local e ler a partir do mesmo local, retornará os mesmos dados. Isso inclui discos inteiros, partições de disco e outros tipos de dispositivos de bloco , além de arquivos regulares (imagens de disco).

Depois de fazer mkfs.fat -n A /dev/sdb, você não terá mais uma partição nesse disco. Cuidado que o kernel ainda pensa que o disco possui uma partição, porque mantém a tabela de partição em cache na memória. Mas você não deve tentar usar /dev/sdb1mais, pois ele não existe mais; escrever nele iria corromper o sistema de arquivos que você criou /dev/sdbdesde que /dev/sdb1faz parte /dev/sdb(tudo, exceto algumas centenas de bytes no começo). Execute o comando partprobecomo root para instruir o kernel a reler a tabela de partição.

Embora seja possível criar um sistema de arquivos em um disco inteiro, eu não o recomendo. Alguns sistemas operacionais podem ter problemas com ele (acho que o Windows suportaria, mas alguns dispositivos, como câmeras, não), e você perde a possibilidade de criar outras partições. Veja também Os méritos de um sistema de arquivos sem partição

Gilles 'SO- parar de ser mau'
fonte
8

Geralmente, é bom colocar um sistema de arquivos em um dispositivo inteiro, em vez de particionar e formatar as partições, se você não pretende ter mais de um sistema de arquivos no dispositivo. Você simplesmente terá que ser consistente; desde que você colocou o sistema de arquivos em sdavez de sda1, você terá que montar sdatambém, pois sda1não existirá.

O dispositivo em sua pergunta parece ser uma unidade removível no formato FAT: se for usado com dispositivos incorporados que possam ter uma noção mais ou menos detalhada de como os sistemas de arquivos podem ser montados, pode valer a pena testar o que eles fazem em fato suporta um sistema de arquivos de dispositivo inteiro sem uma tabela de partição. (Por exemplo, as câmeras tendem a criar uma única partição e formatar isso; é perfeitamente possível que elas declarem um cartão de memória sem partição inutilizável.)

dhag
fonte