Eu estava atualizando um novo sistema operacional para um dispositivo, mas depois que o processo foi concluído, não consegui inicializá-lo. Em seguida, verifiquei o disco e notei algo estranho.
Ferramentas diferentes relatam tamanhos diferentes para o disco, mesmo que ele tenha aproximadamente 120 GB.
Então, decidi:
dd if=/dev/zero of=/dev/sda
Mas os resultados foram quase os mesmos.
Com lsblk
:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 115.2G 0 disk
├─sda1 8:1 1 243M 0 part
└─sda2 8:2 1 2.2G 0 part
Com fdisk
:
$ fdisk -l /dev/sda
Disk /dev/sda: 7.66 GiB, 8225689600 bytes, 16065800 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
Disklabel type: dos
Disk identifier: 0xaeaa381a
Com cfdisk
:
Disk: /dev/sda
Size: 7.66 GiB, 8225689600 bytes, 16065800 sectors
Label: dos, identifier: 0xaeaa381a
Device Boot Start End Sectors Size Id Type
>> Free space 2048 16065799 16063752 7.7G
Eu não toquei no hardware. Portanto, o disco provavelmente ainda está em ~ 120G.
O que devo fazer para recuperar o espaço livre?
Por "atualizar um novo sistema operacional para um dispositivo", você quis dizer escrever uma imagem de disco completa, incluindo tabelas de partição?
Observe que você
dd if=/dev/zero of=/dev/sda
certamente deve ter sobrescrito a tabela de partição do tipo DOS, mas se você não acionou uma nova varredura do disco posteriormente, o sistema ainda estará usando as informações da tabela de partição antiga.Como as informações da tabela de partição em cache também incluem o tamanho do disco original a partir do qual a imagem foi criada, isso engana as ferramentas
fdisk
e .cfdisk
Por outro lado,lsusb
analisa o tamanho real do disco, ignorando o tamanho total informado na tabela de partições.Tente
partprobe /dev/sda
, se disponível, ouecho 1 > /sys/block/sda/device/rescan
(ambos os comandos requerem privilégios de root).Se você precisava atualizar de forma não destrutiva uma tabela de partição existente para, por exemplo, reconhecer o tamanho total do disco após uma operação de criação de imagem, a
growpart
ferramenta pode ser a maneira mais fácil de fazer isso.