Usei um comando dd para gravar diretamente em /dev/sdc (um HDD de 1 TB montado externamente) para testar várias velocidades de gravação em modo bruto. (Não me importo com nenhum dado no disco). Agora, o tamanho do disco relatado por fdisk ou gparted é o tamanho dos dados que escrevi e não consigo descobrir como recuperar o tamanho total do disco.
O comando que usei foi:
dd if=/dev/urandom of=/dev/sdc bs=4096 count=[grande número]
Conforme mostrado abaixo, se eu gravar 128 KB de dados usando este comando, o fdisk relatará a unidade com apenas 128 KB de tamanho. Quando tento gravar até 1 TB de dados, ele para em 30 GB com erro de dispositivo cheio.
Tentei excluir e recriar tabelas de partição, mas como o software reconhece apenas o tamanho menor da unidade, isso não ajuda.
Como obtenho o tamanho total da unidade de volta?
PS Eu também tentei escrever de if=/dev/zero. Isso vai a 5 GB/s e para no mesmo ponto de 32 GB.
PPS Eu também tentei remover a energia da unidade e reiniciá-la, pensando que havia algo na memória causando o problema. O mesmo problema.
# fdisk -l /dev/sdc
Disk /dev/sdc: 29.5 GiB, 31633203200 bytes, 61783600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
#try to write to entire drive:
# dd if=/dev/zero of=/dev/sdc bs=65536 count=15258788 status=progress
26753171456 bytes (27 GB, 25 GiB) copied, 5.00001 s, 5.4 GB/s
dd: error writing '/dev/sdc': No space left on device
482685+0 records in
482684+0 records out
31633203200 bytes (32 GB, 29 GiB) copied, 5.89003 s, 5.4 GB/s
# dd if=/dev/urandom of=/dev/sdc bs=65536 count=2 status=progress
2+0 records in
2+0 records out
131072 bytes (131 kB, 128 KiB) copied, 0.000660426 s, 198 MB/s
# fdisk -l /dev/sdc
Disk /dev/sdc: 128 KiB, 131072 bytes, 256 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
# dd if=/dev/urandom of=/dev/sdc bs=65536 count=15258788 status=progress
31624462336 bytes (32 GB, 29 GiB) copied, 136 s, 233 MB/s
dd: error writing '/dev/sdc': No space left on device
482685+0 records in
482684+0 records out
31633203200 bytes (32 GB, 29 GiB) copied, 136.038 s, 233 MB/s
Por algum motivo, o arquivo de dispositivo especial do bloco /dev/sdc não existia, talvez porque a unidade não estava conectada no momento. O
dd
comando então criou o arquivo como um arquivo normal, provavelmente no sistema de arquivos raiz, que fornece os resultados observados.