Il comando è:
blockdev --getsize64 /dev/mmcblk0p1
Fornisce il risultato in byte, come numero intero a 64 bit. Interroga la dimensione in byte di un dispositivo a blocchi , poiché il kernel vede la sua dimensione.
Il motivo, perché fdisk -l /dev/mmcblk0p1
non ha funzionato, era fdisk
fa qualcosa di completamente diverso:legge nella tabella delle partizioni (=primo settore) del dispositivo a blocchi e stampa quello che ha trovato . Non controlla nulla, dice solo cosa c'è nella tabella delle partizioni.
Non si preoccupa nemmeno se la tabella delle partizioni è danneggiata o il dispositivo a blocchi non ne ha una:stamperà un avviso che il checksum non va bene, ma stampa comunque ciò che trova, anche se i valori sono chiaramente non -senso.
Questo è quello che è successo nel tuo caso:/dev/mmcblk0p1
non ha una tabella delle partizioni. Come mostra il nome del dispositivo, è già la prima partizione del disco fisico /dev/mmcblk0
. Questo disco contiene una tabella delle partizioni, se l'hai interrogata con fdisk -l /dev/mmcblk0
, aveva funzionato (supponendo che avesse una tabella delle partizioni msdos).
Prova lsblk
, non richiede nemmeno root:
$ 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
Il -b
parametro gli dice di emettere la dimensione in byte.
Per ottenere il valore esatto della dimensione totale della partizione eseguire:
awk '{print $1*512}' /sys/class/block/mmcblk0p1/size