Como encontrar o tamanho de uma partição desmontada no Linux?

13

Estou usando o tune2fs, mas ele fornece dados em blocos e não consigo obter o valor exato do tamanho total da partição.

Eu também usei fdisk -l /dev/mmcblk0p1 , mas o tamanho que estou obtendo daqui também é um valor diferente.

Como posso encontrar o tamanho exato da partição?

    
por Sarthak_Bhutani 28.09.2017 / 10:33

3 respostas

21

O comando é:

blockdev --getsize64 /dev/mmcblk0p1

Ele fornece o resultado em bytes, como um inteiro de 64 bits. Ele consulta o tamanho do byte de um dispositivo de bloco , enquanto o kernel vê seu tamanho.

O motivo, porque fdisk -l /dev/mmcblk0p1 não funcionou, foi que fdisk faz alguma coisa totalmente diferente: lê na tabela de partições (= primeiro setor) do dispositivo de bloco e imprime o que achou . Não verifica nada, apenas diz o que está na tabela de partições.

Ele nem se incomoda se a tabela de partição está danificada, ou o dispositivo de bloco não tem um: ele imprime um aviso de que a soma de verificação não está bem, mas ainda imprime o que é encontrado, mesmo que os valores são claramente não-senso.

Foi o que aconteceu no seu caso: /dev/mmcblk0p1 não tem uma tabela de partições. Como o nome do dispositivo mostra, já é a primeira partição do disco físico /dev/mmcblk0 . Este disco contém uma tabela de partições, se você o tivesse consultado com fdisk -l /dev/mmcblk0 , ele havia funcionado (supondo que ele tivesse uma tabela de partições msdos).

    
por 28.09.2017 / 10:41
8

Experimente lsblk , nem requer raiz:

$ lsblk -b
NAME    MAJ:MIN RM        SIZE RO TYPE MOUNTPOINT
xvda    202:0    0 34359738368  0 disk 
├─xvda1 202:1    0  1676673024  0 part [SWAP]
└─xvda2 202:2    0 32682016768  0 part /var/spool

O parâmetro -b informa a saída do tamanho em bytes.

    
por 29.09.2017 / 03:35
4

Para obter o valor exato do tamanho total da execução da partição:

awk '{print $1*512}' /sys/class/block/mmcblk0p1/size
    
por 28.09.2017 / 12:40

Tags