Introdução ao sistema de arquivos BTRFS – parte 1

Neste artigo pretendo descrever algumas das capacidades básicas que descobri ao começar a usar e me familiarizar com o sistema de arquivos Btrfs, no meu laptop de trabalho, rodando o Debian 8.3 “Jessie”, com o kernel Linux 4.3 (instalado via backports).
Desde que você esteja usando um sistema operacional atualizado, todas as informações dadas neste texto são universais.

A pronúncia do nome, em inglês, é alvo de uma (bem leve) polêmica.
Pode ser Butter FS, Better FS ou B-Tree FS — sendo que, este último, está mais próximo de ter um significado técnico.

Esta é a primeira parte de 2 artigos voltados para iniciantes no sistema de arquivos Btrfs.
Neste, pretendo explorar os aspectos teóricos básicos, que possam ajudar a decidir se a tecnologia dispõe dos recursos que a tornam ideal para você.
Na segunda parte, pretendo introduzir alguns comandos administrativos básicos, voltados a quem deseja iniciar já o uso do sistema.
Sistema de arquivos Btrfs - logo

Alguns dos temas tratados superficialmente aqui, são descritos com mais profundidade nos links, encontrados no decorrer do texto — clique neles.

A proposta e a história do sistema de arquivos Btrfs

Por anos, os sistemas de arquivos da série Ext predominou nas principais distribuições GNU/Linux — passando pelas gerações do Ext2, Ext3 e, mais recentemente, Ext4.
Houve uma evolução significativa no hardware de armazenamento, o que inclui o aumento da capacidade de armazenamento e o surgimento da tecnologia das unidades flash.
Embora o Ext4 ainda esteja evoluindo, não há planos, até o momento, para lançamento de uma versão Ext5.
Se quiser entender melhor as diferenças entre o Ext4 e o Btrfs, clique aqui.
Atualmente, o desenvolvimento caminha na direção de outros sistemas de arquivos, como o ZFS, o Btrfs e o F2FS.
As equipes de desenvolvimento do Btrfs procuram dar respostas às necessidades crescentes de armazenamento de arquivos cada vez maiores, a sistemas “clusterizados” entre outros.
Entre as capacidades avançadas do Btrfs, citam-se:

  • Suporte a sistemas e arquivos grandes.
  • Oferece gestão integrada de múltiplos volumes e subvolumes.
  • Tem funcionalidades de RAID incorporadas.
  • Garante a segurança dos seus dados usando técnicas copy-on-write e de verificação de soma (checksumming).
  • Provê snapshots alteráveis.

Criado por Chris Mason, dentro da Oracle, a proposta inicial estava ligada a uma apresentação de Ohad Rodeh, sobre implementações B-tree que facilitassem o copy-on-write (COW)

Os snapshots têm várias utilidades: se recuperar de remoção acidental de arquivos, reverter um sistema corrompido a um estado em que ele estava bom, mineração de dados, backup eficiente e muito mais.
Clones ou writeable-snapshots são uma extensão do conceito de snapshot, em que ele pode ser alterado para incluir novos dados.
Um clone pode ser usado para criar um ponto de retorno seguro para quem deseja experimentar softwares novos no sistema.

Mason tem experiência prévia com o desenvolvimento do sistema de arquivos ReiserFS — armazenamento baseado em extensão, empacotamento de pequenos arquivos, armazenamento de dados e metadados em estruturas B-tree etc.
O Btrfs foi apresentado à comunidade Linux em 2007. A partir deste momento, os engenheiros da Oracle têm continuado a manter e desenvolver os novos recursos do sistema — em estreita colaboração com outros contribuidores da comunidade Linux, o que inclui engenheiros das distribuições (Red Hat, SuSE etc.) e outras companhias, como Dreamhost, Fujitsu, HP, IBM e Intel.
Atualmente, todas as grandes distribuições Linux dão-lhe suporte.
Chris Mason - Oracle - Btrfs File System

Explorando o Btrfs

A partir do momento em que comecei a fazer uso do Btrfs, na unidade SSD do meu laptop, comecei a descobrir uma série de funcionalidades contidas no sistema, que eu ainda não conhecia.
Algumas destas funcionalidades não se aplicam ao uso em notebooks ou desktop workstations, uma vez que são desenvolvidas para uso em sistemas de armazenamento em servidores de grande porte.
Outras são ótimas opções para se ter a mão em um pequeno computador de trabalho.
Vejamos algumas:

  1. Escalabilidade e gestão de volumes. É importante dizer que o Btrfs é um sistema de arquivos 64-bit, escalável e que pode abranger vários volumes para prover arquivos e sistemas de arquivos até 16 exabytes.
    Incluída a possibilidade de gestão de vários dispositivos de armazenamento subjacentes — similar ao tradicional LVM.
    Por exemplo, o Btrfs permite a um sistema de arquivos abarcar vários dispositivos e representados por um único endereço.
    Os dispositivos do sistema podem ser adicionados ou removidos enquanto este permanece online e disponível.

  2. Metodologia de escrita e acesso. O Btrfs armazena tipos de dados e aponta para informações dentro da unidade em uma estrutura B-tree.
    Diferente de outros sistemas de arquivos, não faz journaling de transações. Como resultado, sua escrita é feita uma única vez — o que remove limitações consequentes do espaço ocupado pelo journal e reduz desgaste causado por gravações repetitivas na mesma seção do disco rígido ou do SSD.
    A técnica copy-on-write garante que blocos e extensões não sejam sobrescritos.
    Atributos estendidos e ACLs limitam o acesso e a manipulação do conteúdo do sistema de arquivos por usuários e aplicações.
  3. Tunables ou possibilidades de ajustes.
    O Btrfs provê ajustes mínimos para proteger o sistema de mau uso ou de erros de configuração.
    Uma das opções interessantes de montagem de uma unidade Btrfs, é -o autodefrag .
    Este parâmetro ativa a auto desfragmentação do volume.
    Outra possibilidade é a desativação do COW, com o uso do parâmetro nocow, que pode ajudar a reduzir fragmentação dos arquivos no sistema — particularmente para arquivos que requeiram acesso sequencial, tais como os produzidos por bancos de dados e mídias para transmissão (streaming media).
    No modo nocow, blocos de arquivos são sobrescritos, tal como em qualquer outro sistema de arquivos tradicional.

Integridade de dados

O Btrfs tem recursos nativos para garantir a integridade de dados no volume.
Veja alguns:

  • Configurações redundantes. Suporta espelhamento de dispositivos e configurações RAID para aumentar chances de sobrevivência de dados e facilitar a recuperação de informações destruídas.
    Por padrão, ele espelha os metadados por entre 2 dispositivos e distribui os dados entre todos os dispositivos sob a camada do sistema de arquivos.
    Mesmo dentro de uma única unidade de armazenamento, os metadados são duplicados
  • Verificação de somas. Gera checksums para dados e metadados para preservá-los de corrompimento.
    Os checksums são verificados a cada leitura de blocos de dados do volume.
    Havendo detecção de erros, o sistema tenta obter ou criar uma cópia boa do bloco defeituoso de algum outro dispositivo espelho.
    Se encontrar uma cópia boa, ela será usada e o bloco ruim corrigido.
  • Isolamento de falhas e algoritmos de verificação de somas. O Btrfs provê isolamento de falhas através do armazenamento separado dos metadados dos dados dos usuários.
    Adicionalmente, provê proteção através dos CRCs.
    Os CRCs são armazenados em um B-tree, separado dos dados — para oferecer isolamento de possíveis falhas.
  • Tempo de reconstrução. Mason chama a atenção para o fato de que o Btrfs só reconstrói os blocos ativamente usados pelo sistema de arquivos.
    À medida em que a capacidade de armazenamento dos drives aumenta, esta característica constitui uma vantagem considerável sobre sistemas de arquivos tradicionais e mecanismos RAID de proteção.
    Nas abordagens tradicionais, o tempo de reconstrução de unidades de alta capacidade de armazenamento pode ser medido em dias — e durante este processo, a proteção do sistema estará suspensa.
  • Encriptação. Não há funcionalidade de criptografia embutida ainda.
    Um sistema de arquivos Btrfs pode ser criado sobre um subsistema de encriptação de discos dm_crypt e sob uma camada LUKS (Linux Unified Key Setup) — que dá suporte a uma boa variedade de padrões de criptografia.
    Esta configuração, contudo, desabilita algumas das capacidades e vantagens do sistema — tais como suporte avançado a dispositivos de bloco raw e detecção de unidades SSD.

Otimização de espaço

O Btrfs suporta algoritmos de compressão, já na montagem de um dispositivo — ou seja, após a criação de um volume ou subvolume, você pode ativar facilmente a compressão de dados a qualquer momento.
Este assunto é discutido com mais profundidade no artigo Como ativar a compressão de dados no Btrfs.
No atual estágio de desenvolvimento, o sistema tem suporte aos algoritmos de compressão LZO e zlib.
Se um arquivo não consegue atingir taxas de compressão decentes, ele é marcado como “não comprimível” e gravado sem o uso do recurso.
Existe a opção de montagem force-compression que, tal como o nome indica, aplica o recurso arbitrariamente.

Aprimoramento do desempenho

O Btrfs tem funcionalidades e suporte a dispositivos projetados para melhorar o desempenho do sistema de arquivos. Conheça algumas:

  1. Suporte a unidades de estado sólido (SSDs). As memórias flash, tais como os cartões de memória que usamos nos smartphones e nas câmeras (além dos pendrives USB), têm baixo custo de aquisição.
    São dispositivos não voláteis, cujo conteúdo pode ser alterado eletricamente.
    O uso de drives SSD tem aumentado em desktop workstations, notebooks e servidores. Tudo indica que este movimento se intensificará.
    Dispositivos de armazenamento, com tecnologia flash têm desempenho muito superior a dos drives mecânicos.
    O Btrfs é SSD-aware, ou seja, reconhece nativamente o ambiente flash, evita otimizações de busca desnecessárias e envia gravações agressivamente aos clusters — mesmo que sejam de arquivos não relacionados ao contexto.
    Este comportamento resulta em largas operações de escrita e taxas de transferência mais altas.
  2. Desfragmentação online. Ao longo dos anos, temos notado que unidades que experimentam grande rotatividade de arquivos, sofrem com uma crescente fragmentação, o que resulta em desempenho inferior ao que estão capacitadas a oferecer.
    O Btrfs tem a opção de montagem autodefrag, que habilita o helper de auto desfragmentação.
    Quando um bloco é copiado e gravado no disco, o helper marca os fragmentos e realiza o trabalho de desfragmentação em uma thread, executada em segundo plano.
    Esta capacidade pode beneficiar significantemente sistemas com cargas de trabalho de pequenos bancos de dados, caching de navegadores etc.

Como o Btrfs lida com subvolumes, snapshots e dispositivos seed

A característica de ser copy-on-write faz do Btrfs um sistema de arquivos capaz de prover recursos que facilitam replicação, migração, backup e restauração de informações.

  1. Subvolumes. Ponto fulcral da concepção do Btrfs, os subvolumes, são chamados B-trees. É onde se guardam arquivos e diretórios.
    Opcionalmente, os subvolumes podem ter quotas e são montados como se fossem discos.
  2. Snapshots. Na essência, são clones de um subvolume.
    Se deixada inalterada, uma snapshot representa uma cópia fiel do estado do subvolume no momento em que foi criada.
    Do que foi dito no parágrafo anterior, entenda-se que é possível alterar uma snapshot, de forma que são como clones que evoluem em relação a seus subvolumes.
    Pode ser criada quase instantaneamente e, virtualmente, não consome espaço adicional no disco, inicialmente — uma vez que se constitui de pequena quantidade de metadados.
    Este recurso é útil em várias situações — como manter cópias de versões anteriores de uma hierarquia de arquivos ou movê-las para outros sistemas, como cópias de segurança.
    Arquivos individuais podem também ser clonados com o comando cp -reflink, que tem o mesmo efeito sobre arquivos que os snapshots têm sobre volumes.
  3. Seed devices ou dispositivos semente. Este tipo de dispositivo provê uma fundação (não alterável) para criar ou constituir múltiplos outros sistemas de arquivos.
    Em outras palavras, um dispositivo pode ser usado como um sistema de arquivos template (um CD, contendo uma imagem, por exemplo).
    A partir deste dispositivo novos sistemas de arquivos, em outros dispositivos, podem ser criados (usando o copy-on-write).
    Este processo pode ser considerado uma outra forma de clonagem.
  4. Backup e recuperação de cópias de segurança. Não há suporte incorporado ao Btrfs para criar cópias de segurança.
    Neste caso, a melhor prática é criar um snapshot de um volume e usar utilitários tradicionais de backup.
    Para ajudar há o recurso btrfs subvolume find-new, que identifica os arquivos que sofreram alguma mudança em um dado subvolume.
    Testes mostram que ele é mais eficiente que varrer todo o sistema de arquivos com o comando find -mtime, para destacar arquivos modificados.
  5. Ferramenta de conversão de sistemas de arquivos Ext. Há suporte à conversão local de sistemas de arquivos Ext3 e Ext4.
    Os metadados originais dos sistemas antigos são mantidos em um snapshot, de forma que a conversão possa ser revertida, se necessário.
    Obviamente, se o sistema tiver passado por muitas alterações as possibilidades de reversão são limitadas.
    Quando tiver certeza de que não vai voltar atrás na conversão de um sistema Ext para Btrfs, remover o snapshot ajuda liberar espaço em disco.

Referências

https://wiki.debian.org/Btrfs.
https://btrfs.wiki.kernel.org/index.php/Glossary.
http://www.oracle.com/technetwork/articles/servers-storage-admin/gettingstarted-btrfs-1695246.html.

Ative o Internal Mode para aumentar a memória interna no Android

O Android 6.0 Marshmallow introduziu uma nova maneira de usar cartões de memória SD externos.
Escolher o recurso Internal Mode significa permitir que o sistema operacional mova seus apps, bem como os dados dos aplicativos, fotos, vídeos para o cartão de memória SD externo.
Em outras palavras, o Internal Mode, fará do seu cartão de memória uma extensão da memória interna do aparelho, dando-lhe os benefícios que você teria se pudesse ampliá-la.
Quem tem aparelho com menos de 8 Gigabytes de memória interna, pode se beneficiar muito, se usar um cartão de alta velocidade, como extensão — onde vai poder instalar inclusive seus aplicativos.
Se você tiver algum problema, no decurso deste procedimento, recomendo verificar a autenticidade do seu cartão de memória SD — no mínimo, para eliminar a possibilidade de você ter sido enganado pelo vendedor.

Antes de se decidir pelo processo, sugiro ler o post Perguntas e respostas sobre o Armazenamento Interno no Android — onde tiramos várias dúvidas de leitores sobre o assunto.


Android armazenamento interno ou externo
Este recurso extingue virtualmente a limitação do espaço à instalação de novos aplicativos no seu aparelho.
Fazendo as contas: Se você tem 8 Gb de memória interna e incorporar um cartão SD com capacidade de 16 GB, vai passar a contar com 24 Gb.
Por mais rápido que o seu cartão de memória seja, ele não irá alcançar a velocidade dos chips de memória interna, contudo.
Portanto, à medida em que este espaço de armazenamento for sendo preenchido, espere por uma degradação no carregamento dos aplicativos.

Mesmo que você opte por instalar primeiro os seus principais apps, na esperança de que sejam colocados no espaço correspondente à memória interna real, em algum momento o caching e os dados dos apps irão ser guardados no espaço correspondente ao cartão.

A solução só é boa para quem não pode adquirir um aparelho com mais de 8 Gb de memória de armazenamento interna — e se puder instalar um cartão de alto desempenho.
Pelo fato de que o cartão SD será formatado com o sistema de arquivos Ext4 e, ainda, criptografado, não será possível tirá-lo para usar em outro lugar.

O Ext4 é um sistema de arquivos avançado e é padrão em muitas distribuições Linux.

Ao aplicar este método, o seu cartão só servirá dentro do seu aparelho.
Ele precisará ser formatado novamente para poder ser usado em outro lugar.


Use a caixa de busca do site para encontrar artigos sobre criptografia

Como aplicar o recurso de armazenamento Internal ao seu cartão SD

Ao inserir um cartão de memória pela primeira vez, você será apresentado ao recurso — o Android irá perguntar o que você deseja fazer com ele.
Se você tirar o cartão atual e o inserir de volta, este menu também será apresentado — neste caso, não esqueça de desmontar o cartão ou desligar o aparelho, antes de remover a mídia.
Um outro caminho, para chegar a este painel é através do menu de configurações/Armazenamento e USB.
Screenshot_20160107-140233
Se você tiver arquivos importantes dentro do cartão, faça backup deles, antes de iniciar o procedimento.
Se preferir, o artigo Passo a passo para formatar o cartão de memória como interno, contém instruções mais detalhadas (para iniciantes) sobre a tarefa, em si. Além disto, explica como você pode facilmente reverter o processo.
Ao optar pelo Armazenamento interno, não será mais possível usar os dados contidos no cartão fora do seu aparelho.
Ele será formatado, criptografado e passará a integrar a memória interna do seu smartphone ou tablet — tal como já explicamos.


Leia mais sobre como lidar com cartões de memória SD em smartphones e tablets Android.

Comparação entre o Portable Mode e o Internal Mode

Com o uso do Internal Mode, naturalmente, você perderá o acesso independente à mídia de armazenamento externa.
Como você pode ver, na imagem abaixo, o sistema passa a contar com toda a memória, de todas as mídias, do aparelho.

Android Marshmallow Portable Mode
Clique na imagem, para ver detalhes.

Já no caso do Portable Mode trata-se do uso tradicional do cartão de memória. Ou seja, é como o Android 5 ou anteriores já tratavam os cartões de memória externos — separados do restante.
Como você pode ver na imagem abaixo, a contagem da memória interna, neste caso, não inclui o espaço disponível no cartão SD.
Clique nas imagens, para ver mais detalhes.
Android 6.0 Marshmallow SD Card in Portable Mode
Clique para ver detalhes

A primeira figura, lá no início do artigo, mostra uma comparação entre as duas situações:

  • Internal Mode
  • Portable Mode

Em ambas, o cenário é de um aparelho com 16 Gb de memória interna e um cartão de memória de 16 Gb.
Ainda tem dúvidas? Então leia o post Perguntas e respostas sobre o armazenamento interno no Android.

Qual sistema de arquivos escolher pro meu novo drive SSD?

A cada vez que vai instalar o Linux, para experimentar uma nova distro ou testar algum lançamento, ainda em fase beta ou alfa, você costuma ter a dúvida sobre qual sistema de arquivos usar em cada uma das novas partições criadas?
O sistema de arquivos a ser usado é apenas a ponta do iceberg, dentre tantas dúvidas e opções possíveis de ajuste do sistema, já antes da sua instalação.
Para não te aborrecer com um artigo enorme, vou tentar responder apenas a principal pergunta: qual o sistema de arquivos ideal para instalar Linux no drive SSD?
Além disto, vou me restringir ao ambiente desktop comum de usuário.
SSD drive by Toshiba
Das várias opções disponíveis, no ato da instalação, há basicamente 4 a serem consideradas neste momento:

  • EXT4 — Esta é a escolha natural e recomendada se você deseja estar do lado mais seguro.
    O Ext4 tem suporte total ao hardware dos SSD e ao trimming.
    Até esta data, o Ext4 ainda está ganhando na maioria dos benchmarks realizados entre ele e os outros 3 sistemas de arquivos citados nesta lista.
    Portanto, é também a opção mais adequada para quem deseja mais performance — mas não vai ser sempre assim.
    O Ext4 está atingindo o pico da sua maturidade e deve ter várias melhorias e novos recursos implementados, no decurso dos próximos anos, pelos seus desenvolvedores.
    O ritmo de desenvolvimento dos outros sistemas de arquivos, contudo, está em ritmo mais acelerado.
    No Red Hat, o Ext4 tem suporte a arquivos com tamanho até 16 Tb. O sistema de arquivos pode chegar a 50 Tb.
  • BTRFS — O nome pode ser um acrônimo para “better fs” (ou seja, “sistema de arquivos melhorado”).
    No Ubuntu e nas outras distribuições GNU/Linux baseadas no Debian, ele desponta como natural sucessor do Ext4.
    É seguro para o uso da grande maioria dos clientes mas não tem a maturidade exigida para o ambiente de produção.
    Em alguns testes de benchmark, o Btrfs já ganha do Ext4 em eficiência.
    Por ser mais novo, já nasceu com seu código voltado para as novas tecnologias de armazenamento.
  • XFS — Muitos usuários não sabem que o XFS também tem suporte ao TRIM.
    Este é o sistema de arquivos padrão no Red Hat, a partir da versão 7.
    Seu desenvolvimento remonta à década de 90, nas famosas workstations da Silicon Graphics.
    É mais maduro do que o Btrfs, de modo geral, embora tenha começado a ter suporte no Linux, há menos tempo.
    Se você usa o Red Hat ou o Fedora, recomendo usar este sistema de arquivos, para usufruir de todo o suporte que a empresa oferece.
    O XFS pode trabalhar com arquivos de até 500 Tb de tamanho e o próprio sistema de arquivos pode chegar a vários exabytes.
  • JFS — Teve suporte ao TRIM, adicionado a partir da versão 3.7 do kernel Linux.
    Há pouca documentação sobre ele.
    Ele tem sido comparado aos outros em vários testes de performance e tem se saído muito bem em alguns.

Além destes, há vários outros sistemas de arquivos desenvolvidos para unidades SSD e dispositivos flash — o F2FS é um deles.
No artigo Introdução ao ZFS, abordamos este sistema de arquivos especificamente.

Os testes de benchmarking

Foge ao escopo deste artigo fazer análises de performance — cujos resultados mudam o tempo todo.
Neste sentido, sugiro que você dê uma olhada nos links, abaixo. Selecionei algumas análises de desempenho que eu achei interessantes.
Antes de decidir, sugiro dar uma olhada e procurar por testes mais atuais.
Sinta-se à vontade para compartilhar com os outros leitores links para testes mais recentes ou sua experiência com o uso de alguns destes sistemas de arquivos, na sessão de comentários.

Referências

O novo sistema de arquivos padrão no Red Hat é o XFS: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Migration_Planning_Guide/sect-Red_Hat_Enterprise_Linux-Migration_Planning_Guide-File_System_Formats.html.
Teste de performance do Phoronix: http://www.phoronix.com/scan.php?page=article&item=linux-40-hdd&num=1
Sistemas de arquivos otimizados para mídias flash e drives SSD: https://elias.praciano.com/2014/09/sistemas-de-arquivos-otimizados-para-midias-flash-cartoes-de-memoria-ssd-nand/.

Como esconder arquivos em um cartão de memória.

Quando você tem arquivos de conteúdo sensível, profissional ou pessoal, o uso de um cartão de memória flash (SD, MMC etc.) criptografado pode ser a melhor solução entre a discrição e o tamanho da mídia.
Cartão de memória com chaves
As dicas deste post servem para criptografar quase qualquer tipo de mídia — seja um pendrive USB, uma partição no disco, um mero arquivo, um disco virtual ou um cartão de memória microSD.
Ao executar corretamente este procedimento você impede o acesso a seus arquivos por pessoas não autorizadas.
Se você costuma acessar arquivos que gostaria de manter em segredo, você precisa usar mídias criptografadas.

O que você precisa ter em mãos para criptografar um cartão de memória

Neste texto vou mostrar como criptografar um cartão de memória formatado com o sistema de arquivos F2FS, no Linux. Só quem tem a senha de acesso poderá ver o conteúdo deste cartão.
Se você é preocupado com os diversos aspectos da segurança, vai entender por que a escolha do Linux é óbvia e necessária.
Você precisa ter instalado no seu sistema o módulo do kernel que permite manipular sistemas de arquivos F2FS — que é otimizado para cartões de memória flash.
O processo de formatar e criptografar o cartão ficará por conta do utilitário luksformat — ele simplesmente torna tudo mais fácil e rápido.
Clique nos links citados no texto e nas imagens para obter informações adicionais e maiores detalhes sobre algum assunto abordado neste texto.
Antes de prosseguir, faça backup de quaisquer arquivos que sejam importantes — os procedimentos de formatação e encriptação apagará todos os dados contidos na mídia de destino. Portanto, se você não sabe o que está fazendo, não faça.

Como formatar e criptografar uma mídia no Linux, com o luksformat

Como eu já disse, estes comandos podem ser aplicados a qualquer mídia — você só precisa adequá-los ao seu contexto.
Para formatar e criptografar um cartão de memória, localizando em /dev/sdc1, com o sistema de arquivos ext4, execute o seguinte comando:

sudo luksformat -t ext4 /dev/sdc1

Sim. Você precisa ter privilégios administrativos para rodar o luksformat.

captura de tela - comando luksformat formata e encripta uma midia flash
Clique para ver detalhes

Se você quiser usar qualquer um dos outros recursos do mkfs, basta acrescentar os parâmetros ao final da linha de comando. Por exemplo, se quiser rotular a mídia formatada com o nome Segredos, faça assim:

sudo luksformat -t ext4 /dev/sdc1 -L Segredos

* Sugiro usar nomes mais discretos que este.

Como criar uma partição f2fs criptografada

Com o comando abaixo, você pode criar um sistema de arquivos criptografado, na mesma mídia, com o nome de volume musicman

sudo luksformat -t f2fs /dev/sdc1 -l musicman

Fique atento: neste caso, o parâmetro -l fica em minúsculas.

Criando dispositivo criptografado em /dev/sdc1...

WARNING!
========
Isto irá sobrescrever os arquivos em /dev/sdc1 definitivamente.

Are you sure? (Type uppercase yes): YES
Informe a frase secreta: 
Verify passphrase: 
Digite sua senha novamente para verificação
Informe a frase secreta para /dev/sdc1: 

	F2FS-tools: mkfs.f2fs Ver: 1.2.0 (2013-10-25)

Info: Label = musicman
Info: sector size = 512
Info: total sectors = 3907583 (in 512bytes)
Info: zone aligned segment0 blkaddr: 512
Info: Discarding device
Info: This device doesn't support TRIM
Info: format successful

Se você tiver dificuldades com o sistema de arquivos F2FS, leia este artigo.
Você pode aplicar os mesmos princípios para criar sistemas de arquivos VFAT ou outros, que considerar mais interessantes.
Por fim, saiba mais sobre o assunto, clicando nos links contidos no artigo ou fazendo uma pesquisa — na caixa de busca, na seção direita deste site.

Como formatar um drive no Linux, com mkfs

O mkfs torna fácil formatar drives de vários tipos, no Linux, tais como pendrives, cartões de memória, HDs, SSDs etc.
O aplicativo permite várias opções e parâmetros de uso, que lhe conferem grande versatilidade para realizar a tarefa.
O mkfs pode criar uma variedade de sistemas de arquivos em um dispositivo — usualmente (mas não exclusivamente) um disco rígido.
sistema de arquivos - disco rígido - usb - pendrive

Como usar o mkfs

É importante ser cuidadoso.
— não é possível desfazer a formatação depois. Portanto tenha sempre a certeza de que está formatando o drive certo.
O nome (endereço) do drive vai ser algo parecido com “/dev/hda1” ou “/dev/sdc2”.
Você pode também formatar e criar um sistema de arquivos em um arquivo — semelhante a um disco rígido virtual.
Para formatar um pendrive, localizado em /dev/sdc1, comece por desmontar o dispositivo:

sudo umount /dev/sdc1

Agora já é possível criar um sistema de arquivos nele.
O comando, a seguir, formata e apaga todo o conteúdo do dispositivo — e cria um sistema de arquivos vfat nele:

sudo mkfs -t vfat -n pendrive -I /dev/sdc1

Sistemas de arquivo suportados pelo mkfs

Os sistemas de arquivos (filesystems) mais usados, são suportados pelo mkfs:

  • xfs,
  • ext2, ext3, ext4,
  • xia,
  • xfs
  • vfat, msdos, dos,
  • minix,
  • bfs etc.

O aplicativo tem opções apropriadas a cada sistema de arquivos em particular. Ele é um frontend para estes outros programas:

  • mkdosfs
  • mke2fs
  • mkfs.bfs
  • mkfs.ext2
  • mkfs.ext3
  • mkfs.ext4
  • mkfs.minix
  • mkfs.msdos
  • mkfs.vfat
  • mkfs.xfs
  • mkfs.xiafs

Cada um deles tem uma página de manual e um sistema de ajuda próprio — que vale a pena consultar sempre.
Você pode ver a relação deles no seu PC com o comando ls:

ls /sbin/mk*

Linux mkfs
Se você não especificar o sistema de arquivos a ser construído no dispositivo, o mkfs vai usar o ext2 como padrão.

Como verificar se há setores ruins no drive, antes de formatar

Alguns dos aplicativos, da lista acima, tem opções mais avançadas, que permitem verificar a saúde do dispositivo de armazenamento antes de formatar e criar um sistema de arquivos nele.
Para criar um sistema de arquivos VFAT em um pendrive que você pretenda usar para ver filmes, proceda da seguinte forma, para fazer uma checagem no sistema de arquivos do dispositivo após a formatação:

sudo mkfs -t vfat -c -v -n "meus_filmes" /dev/sdc1

O que produzirá uma saída semelhante a esta:

mkfs.fat 3.0.26 (2014-03-07)
mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
Auto-selecting FAT32 for large filesystem
/dev/sdc1 has 124 heads and 62 sectors per track,
hidden sectors 0x0002;
logical sector size is 512,
using 0xf8 media descriptor, with 7870462 sectors;
drive number 0x80;
filesystem has 2 32-bit FATs and 8 sectors per cluster.
FAT size is 7671 sectors, and provides 981886 clusters.
There are 32 reserved sectors.
Volume ID is aafb6b57, volume label meus_filmes.
Searching for bad blocks 106080... 212192... 318560... 424288... 530272... 636624... 743008... 849248... 955360... 1061472... 1167968... 1275104... 1381728... 1488096... 1594336... 1701200... 1808480... 1916256... 2022496... 2128864... 2234976... 2341344... 2448096... 2554720... 2661584... 2768864... 2875488... 2981984... 3087968... 3194208... 3300832... 3407456... 3514192... 3620576... 3727824... 3834080... 

Na linha de comando, acima:

  • a opção -c, pede para que o aplicativo faça uma checagem no drive, após a formatação.
  • a opção -v, liga a “verbosidade”.
  • a opção -n, nomeia o novo dispositivo (no máximo 11 letras)

Uma forma alternativa e equivalente de execução é a seguinte:

sudo mkfs.vfat -c -v -n "meus_filmes" /dev/sdc1

Os resultados são os mesmos.

Qual o sistema de arquivos mais recomendado

Se você tentar esta busca no Google, vai encontrar inúmeros fóruns, onde esta questão é debatida, às vezes intensamente e quase nunca com resultados 100% conclusivos.
O fato é que o tipo mais adequado de sistema de arquivos varia de acordo com o tipo de dispositivo — pendrive, HD, SSD etc —, de acordo com a aplicação — reproduzir filmes, guardar arquivos de backup etc —, entre tantos outros fatores.
Vou ser extremamente simplista na minha afirmação, a seguir, apenas para não te deixar sem resposta — mas você deve pesquisar antes de decidir, sempre.

Sistemas de arquivos mais indicados para pendrive

Se o seu dispositivo removível for para armazenar filmes em mp4, mkv etc., para assistir na TV, você vai precisar que ele use um sistema de arquivos reconhecido pelo aparelho: os mais comuns, portanto, são VFAT e NTFS.
Em pendrives maiores que 16 Gb, vá de NTFS.
Se não vai depender da compatibilidade com outros sistemas operacionais, pode usar o ext2 ou ext3 para pendrives ou cartões de memória de baixa capacidade e ext4 em dispositivos mais novos e com maior capacidade de armazenamento.
O ext4 é recomendado também para unidades SSD.

Como usar o ext4

Use a versão mais nova, ext4, sempre — a menos que você tenha motivos especiais para usar uma versão mais antiga.
As equipes de desenvolvimento do Fedora e do Red Hat têm optado pelo XFS — se uma destas é sua distro, mantenha a opção das equipes de desenvolvimento, por que você terá mais suporte.
O uso básico do mkfs, para formatar uma partição com o tipo ext4 é assim:

sudo mkfs -t ext4 /dev/sdd3

Tenha em mente que uma partição precisa estar desmontada sempre, antes de ser formatada — creio que o sistema irá lembrá-lo disto.

LEIA MAIS