A maneira mais rápida de formatar um disco com o Linux?

0

É para um script bash / shell. Basicamente, quero formatar ou apagar um dispositivo de armazenamento USB (ou SD); com uma única linha de comando.

Eu usaria fdisk , mas parece exigir interação do usuário onde eu quero automação.

Então, decidi tentar zerar com:
dd if=/dev/zero of=/dev/<target disk> ;
mas parece apenas zero 2,0 GB de espaço livre em disco ou vazio.

root@linux:~# dd if=/dev/zero of=/dev/mmcblk0
dd: writing to '/dev/mmcblk0': No space left on device
3842249+0 records in
3842249+0 records out
1967230976 bytes (2.0 GB, 1.8 GiB) copied, 2.9054 s, 677 MB/s

O ideal é que eu esteja re-formatando qualquer dispositivo de armazenamento removível e / ou preparando-o para ser visualizado com um arquivo de imagem .iso (via dd ).

Re-formatação não será sempre necessária, mas também apaga os dados; e limpar o dispositivo de qualquer dado armazenado provavelmente deveria ser o procedimento padrão / comportamento padrão, para esse tipo de coisa de qualquer maneira.

    
por tjt263 15.02.2017 / 08:27

1 resposta

1

Então, isso depende de

  1. sua definição de "formatar" uma unidade;
  2. o tipo dessa unidade.

"Formato" pode ser um dos termos mais confusos na tecnologia do consumidor, na verdade. Até o seu post já confunde duas ou três ações diferentes ...

Normalmente, abrange três níveis:

  1. Preparando a própria mídia (por exemplo, escrevendo marcadores de setor para um HDD) - hoje em dia geralmente feito pela fábrica, mas pelo menos nos dias do IBM PC isso poderia ser feito pelo próprio PC. Isso geralmente é chamado de "formatação de baixo nível".

  2. Escrevendo uma tabela de partição (em branco ou com algumas partições) para os primeiros setores do disco - é isso que o fdisk faz.

  3. Escrevendo um sistema de arquivos em branco em cada partição - é isso que format c: ou mkfs fazem. Isso costumava ser chamado de "formatação de alto nível".

Exceto que algumas pessoas chamam o passo # 2 de "formato de baixo nível" agora que não há mais # 1. E às vezes as pessoas chamam de apagar todo o disco "formatado" mesmo que ele não escreva nada com um formato real . Às vezes, as pessoas chamam a reinstalação de "formatação" do Windows, mesmo que todos os arquivos não sejam afetados.

De qualquer forma, o resto da resposta depende do resultado que você quer:

  • Se você quiser que o disco fique completamente em branco (por exemplo, nada que um aplicativo de recuperação de dados possa encontrar), você tem duas opções: descartar ou apagar manualmente.

    O recurso "discard" é chamado TRIM em SSDs e também suportado por cartões SD - ele diz ao próprio disco para descartar todos os dados. No Linux, a ferramenta blkdiscard pode ser usada para essa finalidade - especifique um dispositivo e, em segundos, ele fica vazio. (Ferramentas como mkfs.ext4 também descartarão automaticamente o conteúdo da partição antes de gravar o novo sistema de arquivos.)

    Se o disco não suportar descarte - por exemplo, se é um HDD magnético, ou se é uma unidade flash USB cuja interface de armazenamento em massa não compreende este comando - então sua única outra opção é apagar manualmente todo e qualquer setor, ou seja, preenchê-lo com /dev/zero como você já fez.

    Enquanto o descarte geralmente leva apenas alguns segundos, o preenchimento zero manual não pode ir mais rápido do que o próprio disco pode aceitar gravações (afinal, você está gravando muitos dados).

  • Se você não se importa com dados residuais, mas apenas quer que o OS veja um disco vazio, você pode simplesmente apagar a área onde tabela de partições reside. Para o MBR, que é sempre setorial 0, mas não se esqueça de que muitos discos usam uma tabela de partições GPT.

    Este é um método muito rápido, já que você só precisa apagar alguns kilobytes no máximo. No Linux, o comando wipefs fará cirurgicamente o conteúdo do disco não mais reconhecível para o sistema operacional. (Por padrão, a ferramenta só exibe o que seria apagado - use a opção --all para fazer isso realmente.)

Eitehr, agora você tem um disco que o sistema operacional considera vazio.

  • Se você quiser que o disco apagado tenha algumas partições , use ferramentas de particionamento como fdisk ou parted. Embora o fdisk regular seja interativo, há muitas ferramentas que podem ser facilmente criadas em scripts - sfdisk , sgdisk , parted são alguns exemplos. O Windows tem diskpart .

  • Se você também quiser que as partições tenham sistemas de arquivos , use ferramentas como mkfs.ext4 ou mkfs.vfat (equivalente ao Windows ' format ).

Finalmente, como mencionado nos comentários acima: Se você está planejando apenas escrever uma imagem (um arquivo .iso) no disco, então você não precisa para fazer qualquer preparação em tudo.

Tal gravação de imagem começa no setor 0, por isso, elimina tudo o que estava no disco anteriormente (até o tamanho da imagem). Se tinha partições e arquivos, ou se estava em branco, não importa - simplesmente é sobrescrito com as partições próprias da imagem e tudo mais.

Tudo além do tamanho da imagem ficará como estava, mas o sistema operacional não vai se importar com isso - já que a tabela de partições da imagem diz que não há nenhuma partição lá. Embora, é claro, descartar ou apagar o disco, ainda é uma boa idéia se você for dar a outra pessoa.

    
por 15.02.2017 / 11:07