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).