Como usar o comando mkfs no Linux

Um terminal Linux em um laptop com um desktop estilo Ubuntu.
Fatmawati Achmad Zaenuri / Shutterstock

Você deve criar um sistema de arquivos antes de usar qualquer dispositivo de armazenamento de dados conectado a um computador Linux. Aprenda como usar mkfse outros utilitários para fazer exatamente isso em todos os tipos de sistemas de arquivos. Nós mostramos como.

 mkfs Faz sistemas de arquivos

O mkfscomando cria sistemas de arquivos . Em outros sistemas operacionais, a criação de um sistema de arquivos é chamada de formatação . Independentemente do nome, é o processo que prepara uma partição para armazenar dados. A partição precisa de uma maneira de armazenar arquivos, sim. Mas também precisa de um mecanismo para armazenar os nomes e locais desses arquivos, junto com seus metadados, como o carimbo de data / hora de criação do arquivo, o carimbo de data / hora modificado do arquivo, o tamanho do arquivo e assim por diante. Depois de mkfsconstruir a estrutura necessária para manipular e armazenar metadados de arquivos, você pode começar a adicionar arquivos à partição.

A sintaxe é muito simples. Você apenas informa mkfsa partição do dispositivo em que deseja que o sistema de arquivos seja criado e que tipo de sistema de arquivos deseja. É isso mesmo. Nos bastidores, é um pouco diferente. Já há algum tempo na maioria das distribuições Linux mkfstem sido um wrapper para mke2fs. O mkfscomando chama o mke2fscomando e passa as opções que você especificou. O pobre velho mke2fs faz todo o trabalho, mas não ganha nada da glória.

A sintaxe de mkfsfoi atualizada e o formato antigo foi descontinuado. Ambos os formulários funcionarão, mas usaremos o estilo moderno neste artigo.

A escolha dos sistemas de arquivos

A maneira moderna de usar mkfsé digitar “mkfs”. e depois o nome do sistema de arquivos que deseja criar.

Para ver os sistemas de arquivos que mkfs podem ser criados, digite “mkfs” e pressione a tecla Tab duas vezes. Não há espaço depois de “mkfs”, apenas pressione Tab duas vezes.

Lista de sistemas de arquivos suportados em uma janela de terminal

A lista de sistemas de arquivos disponíveis é exibida na janela do terminal. A imagem é do Ubuntu 18.04 LTS. Outras distribuições podem oferecer mais ou menos opções. Iremos examiná-los e descrever cada um brevemente. Depois de uma palavra rápida sobre registro no diário.

O registro no diário é um conceito importante em sistemas de arquivos. Os sistemas de arquivos registram as gravações de arquivos pendentes em um diário. À medida que cada arquivo é gravado, o diário é atualizado e os registros de gravação pendentes são atualizados. Isso permite que o sistema de arquivos repare arquivos corrompidos parcialmente gravados que ocorreram devido a um evento catastrófico, como um corte de energia. Alguns dos sistemas de arquivos mais antigos não suportam registro no diário. Aqueles que não o fazem, gravam no disco com menos frequência, porque não precisam atualizar o diário. Eles podem ter um desempenho mais rápido, mas estão mais sujeitos a danos devido a gravações de arquivo interrompidas.

  • Ext2 : O primeiro sistema de arquivos para Linux foi o sistema de arquivos MINIX. Posteriormente, foi substituído pelo primeiro sistema de arquivos escrito especificamente para Linux, o  Ext . Ext2 foi o sucessor de Ext . Ext2 não é um sistema de arquivos com diário.
  • Ext3 : este foi o sucessor do Ext2 e pode ser considerado Ext2 com journaling, que protege seu sistema de arquivos contra corrupção de dados causada por travamentos e perda repentina de energia.
  • Ext4 : Ext4 é o sistema de arquivos padrão para muitas distribuições Linux. É um sistema de arquivos sólido, testado e confiável. Ele possui recursos que reduzem a fragmentação de arquivos e pode ser usado com unidades, partições e arquivos maiores que o Ext3.
  • BFS : Este é o sistema de arquivos de inicialização , que é projetado para um único trabalho: lidar com os arquivos na partição de inicialização. É raro você criar manualmente um sistema de arquivos de inicialização. Seu processo de instalação do Linux fará isso por você.
  • FAT : O sistema de arquivos File Allocation Table foi projetado para disquetes por um consórcio de pesos pesados ​​da indústria de computadores. Ele foi introduzido em 1977. O único motivo pelo qual você usaria este sistema de arquivos sem registro em diário é para compatibilidade com sistemas operacionais não Linux.
  • NTFS : O New Technology File System é um sistema de arquivos com diário da Microsoft introduzido com o Windows NT. Foi o sucessor do FAT. O único motivo pelo qual você usará este sistema de arquivos é para compatibilidade com sistemas operacionais não Linux.
  • MINIX : Originalmente criado por Andrew S. Tanenbaum como uma ajuda educacional, o MINIX é um sistema operacional “mini-Unix”. Hoje em dia, ele tem como objetivo fornecer um sistema operacional de autocura e tolerante a falhas . O sistema de arquivos MINIX foi projetado como uma versão simplificada do sistema de arquivos Unix . Talvez se você estiver desenvolvendo em um computador Linux e visando uma plataforma MINIX, você pode usar este sistema de arquivos. Ou talvez você precise de compatibilidade com um computador MINIX por outros motivos. Os casos de uso para este sistema de arquivos em um computador Linux não estão aparecendo para mim, mas está disponível.
  • VFAT : Virtual File Allocation Table , foi introduzido com o Windows 95 e removeu o limite de oito caracteres para nomes de arquivo. Nomes de arquivos de até 255 caracteres tornaram-se possíveis. O único motivo pelo qual você usará este sistema de arquivos é para compatibilidade com sistemas operacionais não Linux.
  • CRAMFS : O Compressed ROM File System é um sistema de arquivos somente leitura projetado para sistemas embarcados e usos especializados somente leitura, como nos processos de inicialização de computadores Linux. É comum ter um sistema de arquivos pequeno e temporário carregado primeiro para que os processos de bootstrap possam ser iniciados para preparar a montagem do sistema de boot “real”.
  • MSDOS : O sistema de arquivos do Microsoft Disk Operating System . Lançado em 1981, é um sistema de arquivos elementar o mais básico possível. A primeira versão nem tinha diretórios. Ele ocupa um lugar de destaque na história da computação, mas, além da compatibilidade com sistemas legados, há poucos motivos para usá-lo hoje.
Recomendado:  Google não está feliz com mensagens de texto verdes

Uma maneira segura de fazer experiências com sistemas de arquivos

A criação de um sistema de arquivos em uma partição é destrutiva para quaisquer dados que já possam residir nessa partição. Usar um disco rígido sobressalente – ou mesmo um computador sobressalente – é a maneira perfeita de experimentar a criação e o uso de diferentes sistemas de arquivos. Mas é claro que muitas pessoas não têm hardware sobressalente por aí, esperando para serem experimentados.

No entanto, podemos criar um arquivo de imagem e sistemas de arquivos dentro dele. Depois de montá-lo, podemos usá-lo como se fosse uma partição normal. Podemos explorar e experimentar sistemas de arquivos sem a necessidade de hardware sobressalente. Usaremos o ddcomando para criar nosso arquivo de imagem .

O arquivo de imagem é criado pegando os dados de origem e colocando-os em uma imagem. Precisamos dizer ddonde obter seus dados de origem. Usaremos a opção if(arquivo de entrada) para dizer ddpara usar / dev / zero como fonte de dados de entrada. Este será um fluxo de zeros.

A opção of(arquivo de saída) nos permite fornecer um nome para o arquivo de imagem. Vamos chamá-lo de “howtogeek.img”.

O tamanho do arquivo de imagem é determinado pelo tamanho e número de blocos que adicionamos a ele. Estamos usando a opção bs(tamanho do bloco) para solicitar um tamanho de bloco de 1 MB e a count opção para solicitar 250 blocos. Isso nos dará um sistema de arquivos de 250 MB. Ao emitir este comando, ajuste o número de blocos para atender às suas necessidades e a capacidade sobressalente que você tem em seu computador Linux.

dd if = / dev / zero de = ~ / howtogeek.img bs = 1M contagem = 250

dd if = / dev / zero de = ~ / howtogeek.img bs = 1M contagem = 250

O arquivo é criado para nós e ddinforma que foram criados 250 blocos para nós, conforme solicitado.

Recomendado:  Veja por que as reticências são tão assustadoras ao enviar mensagens de texto...

Saída do comando dd em uma janela de terminal

Podemos olhar nosso arquivo de imagem com ls:

ls -hl

ls -hl em uma janela de terminal

É 250 MB como esperado, o que é encorajador.

Criação do sistema de arquivos

Vamos escolher um sistema de arquivos para usar. Voltaremos no tempo e usaremos Ext2, que é a versão mais antiga do Ext que esta implementação mkfspode criar. Este é um sistema de arquivos sem registro em diário, portanto, não armazene nada precioso nele sem ter backups em outro lugar. Usamos a mkfs.ext2variante do mkfscomando e dizemos a ele para usar nosso arquivo de imagem como destino.

mkfs.ext2 ~ / howtogeek.img

mkfs.ext2 ~ / howtogeek.img em uma janela de terminal

O sistema de arquivos é criado e alguns detalhes do sistema de arquivos são exibidos.

Saída do comando mkfs.ext2 em uma janela de terminal

Como você pode ver pelo texto destacado, mke2fsfaz uma aparição.

Agora temos um contêiner para o sistema de arquivos – o arquivo de imagem – que está substituindo um disco rígido neste cenário. Dentro desse contêiner, criamos um sistema de arquivos. Agora precisamos montar o sistema de arquivos para que possamos usá-lo.

Esta é uma configuração temporária, então faremos um ponto de montagem em / mnt chamado “geek”. Removeremos quando terminarmos.

sudo mkdir / mnt / geek

mkfs.ext2 ~ / howtogeek.img em uma janela de terminal

Agora podemos montar nosso arquivo de imagem.

sudo mount ~ / howtogeek.img / mnt / geek

mkfs.ext2 ~ / howtogeek.img em uma janela de terminal

Precisamos alterar a propriedade do arquivo do ponto de montagem para que tenhamos acesso de leitura e gravação a ele.

sudo chown dave: users / mnt / geek /

sudo chown dave: users / mnt / geek / em uma janela de terminal

E agora devemos ser capazes de usar nosso novo sistema de arquivos. Vamos mudar para o sistema de arquivos e copiar alguns arquivos para ele.

cd / mnt / geek
cp ~ / Documentos / Código / *.? .

cp ~ / Documentos / Código / *.?  .  em uma janela de terminal

Isso copiará todos os arquivos com uma extensão de uma letra do diretório ~ / Documents / Code para nosso novo sistema de arquivos. Vamos verificar se eles foram copiados.

ls

está em uma janela de terminal

Os arquivos foram copiados, portanto nosso sistema de arquivos foi criado, montado e usado. Ou assim pensamos. Vamos verificar novamente. Em nosso diretório inicial, desmontaremos o sistema de arquivos . Observe que há apenas um “n” em umount .

sudo umount / mnt / geek

sudo umount / mnt / geek em uma janela de terminal

Agora, se voltarmos para / mnt / geek e verificarmos os arquivos, não devemos encontrar nenhum porque eles estão dentro de nosso arquivo de imagem e este foi desmontado.

cd / mnt / geek
ls

cd / mnt / geek em uma janela de terminal

Exploração Adicional

Agora que o processo está resolvido, tentar outro sistema de arquivos deve ser fácil. Usaremos o sistema de arquivos MINIX desta vez. Em nosso diretório inicial, podemos criar um novo sistema de arquivos dentro de nosso arquivo de imagem existente.

Recomendado:  Como verificar a saúde da bateria do seu iPhone

Seja cuidadoso!  Se houver arquivos importantes no sistema de arquivos dentro do arquivo de imagem, monte o arquivo de imagem e recupere-os  antes de criar um novo sistema de arquivos.

mkfs.minix ~ / howtogeek.image

mkfs.minix ~ / howtogeek.image em uma janela de terminal

Sem qualquer sugestão de perguntar “se você tem certeza”, o novo sistema de arquivos é criado sobre o antigo. Podemos montar nosso arquivo de imagem exatamente com o mesmo comando de antes:

sudo mount ~ / howtogeek.img / mnt / geek

sudo mount ~ / howtogeek.img / mnt / geek em uma janela de terminal

Vamos mudar para o novo sistema de arquivos em / mnt / geek e ver se podemos criar um arquivo.

touch geek.txt

toque em geek.txt em uma janela de terminal

ls -ahl geek.txt

ls -ahl geek.txt em uma janela de terminal

E, de forma simples e rápida, criamos um novo sistema de arquivos, montamos e podemos usá-lo.

Removendo o Ponto de Montagem

Quando estiver tudo pronto, podemos remover o ponto de montagem “geek”. Para fazer isso, usaremos rmdir :

cd / mnt
sudo rmdir geek

sudo rmdir geek em uma janela de terminal

Malabarismo com fogo

Com o Linux, como com a maioria das coisas, você aprende fazendo. O problema com alguns comandos é que eles são potencialmente destrutivos. O dilema é como praticá-los sem colocar seu sistema ou dados em risco?

Agora você tem um método simples de criar e testar sistemas de arquivos mkfsque deixa o seu computador intocado.