Está ok para o mkfs sem o número da partição?

8

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 tenho formatado com o comando:

   # mkfs.fat -n A /dev/sdb

e funciona bem.

Mas depois, eu passei o dedo na página man 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.

Ele diz que mkfs deve funcionar com o número da partição. E meu problema é por que minha operação funciona sem um prompt de erro?

    
por Alaneuler 22.02.2017 / 14:35

2 respostas

8

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

Depois de fazer mkfs.fat -n A /dev/sdb , você não tem mais uma partição nesse disco. Tenha em atenção que o kernel ainda pensa que o disco tem uma partição, porque mantém a tabela de partição em cache na memória. Mas você não deve tentar usar /dev/sdb1 , já que ele não existe mais; gravar nele corromperia o sistema de arquivos criado em /dev/sdb , pois /dev/sdb1 é parte de /dev/sdb (tudo, exceto algumas centenas de bytes no início). Execute o comando partprobe as root para dizer ao kernel para reler a tabela de partições.

Embora seja possível criar um sistema de arquivos em um disco inteiro, não o recomendo. Alguns sistemas operacionais podem ter problemas com ele (acho que o Windows iria lidar, mas alguns dispositivos, como câmeras, talvez 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

    
por 23.02.2017 / 00:56
7

Geralmente, é bom colocar um sistema de arquivos em um dispositivo inteiro, de particionar e formatar as partições, se você não pretende ter mais de um sistema de arquivos no seu dispositivo. Você simplesmente terá ser consistente; desde o seu colocar o sistema de arquivos em sda em vez de sda1 , você terá que montar sda , já que sda1 não será existe de todo.

O dispositivo em sua pergunta parece ser um removível formatado em FAT drive: se vai ser usado com dispositivos embarcados que podem ter noção mais ou menos detalhada de como os sistemas de arquivos podem ser montados, valeria a pena testar que eles de fato suportam um dispositivo inteiro sistema de arquivos sem uma tabela de partição. (Por exemplo, as câmeras tendem a crie uma única partição e formate isso; é perfeitamente possível que eles declarariam um cartão de memória sem partição inutilizável.)

    
por 22.02.2017 / 14:48