O dd sem outras opções além de um arquivo de saída e um arquivo de entrada /dev/urandom pode fazer com que outros arquivos na partição sejam sobrescritos?

O dd sem outras opções além de um arquivo de saída e um arquivo de entrada /dev/urandom pode fazer com que outros arquivos na partição sejam sobrescritos?

Eu tenho um disco rígido montado em USB com7GBde espaço livre que tentei preencher com dados pseudo-aleatórios usando estes comandos:

$ cd /media/username/volume_name
$ sudo dd if=/dev/urandom of=random_data_file.txt

random_data_file.txtanteriormente não existia. Eu esperava que o comando criasse o arquivo, escrevesse dados pseudo-aleatórios nele e parasse quando a partição que o continha ficasse cheia. A barra de status do gerenciador de arquivos eventualmente exibiu 0 bytesespaço livre. Mas o ddcomando não parou e nem o emulador de terminal nem o gerenciador de arquivos apresentaram qualquer notificação de que a unidade estava cheia. Depois que terminei o comando com Ctrl+C, a saída do terminal declarou40 GBtem sido escrito. Selecionei o arquivo no gerenciador, cuja barra de status também exibia seu tamanho como40 GB, que é 33 GB a mais que a quantidade anterior de espaço livre.

  1. Existe alguma chance de este comando ter substituído ou modificado alguns dos meus outros arquivos, a partição ou outras partições? Ou isso significa que random_data_file.txtfoi gravado e substituído 40 GB/7 GB = 5,7 vezes? Neste último caso, por que o gerenciador de arquivos exibiu seu tamanho superior a 7 GB? Após a exclusão random_data_file.txtusando o gerenciador de arquivos, sua barra de status volta a exibir o espaço livre como 7 GB.
  2. Qual é a maneira correta de usar o ddcomando para criar e gravar dados pseudo-aleatórios em um arquivo de saída até que a partição que o contém esteja cheia, sem sobrescrever nada (além do espaço livre na mesma partição), incluindo o arquivo de saída?

Responder1

Supondo que o hardware do seu disco seja bom (e não um cartão SD fraudulento mostrando espaço disponível falso) e que seu sistema de arquivos não esteja corrompido com freelists corrompidas e arquivos cujos blocos ainda estão na freelist, então dd if=/dev/urandom of=random_data_file.txtnão corromperia o disco nem sobrescreveria nada (outros do que random_datafile.txt).

Provavelmente você não precisava do sudo na frente e se não tiver certeza de que seu comando dd está correto, certamente não deveria executá-lo como sudo.

Uma possível razão pela qual ele gravou mais dados do que o esperado é que a maioria dos sistemas de arquivos reserva um pouco de espaço livre (normalmente 5%) para que o root possa continuar gravando quando usuários regulares virem o disco cheio. (Novamente, não faça isso com sudo...)

informação relacionada