La commande est :
blockdev --getsize64 /dev/mmcblk0p1
Il donne le résultat en octets, sous la forme d'un entier 64 bits. Il interroge la taille en octets d'un appareil de blocage , car le noyau voit sa taille.
La raison, pourquoi fdisk -l /dev/mmcblk0p1
n'a pas fonctionné, était-ce fdisk
fait quelque chose de totalement différent :il lit dans la table de partition (=premier secteur) du périphérique bloc et imprime ce qu'il a trouvé . Il ne vérifie rien, dit seulement ce qui se trouve dans la table de partition.
Cela ne dérange même pas si la table de partition est endommagée ou si le périphérique bloc n'en a pas :il affichera un avertissement indiquant que la somme de contrôle n'est pas correcte, mais il imprimera toujours ce qu'il trouve, même si les valeurs sont clairement non -sens.
Voici ce qui s'est passé dans votre cas :/dev/mmcblk0p1
n'a pas une table de partitions. Comme le nom du périphérique l'indique, il s'agit déjà de la première partition du disque physique /dev/mmcblk0
. Ce disque contient une table de partition, l'aviez-vous interrogé avec fdisk -l /dev/mmcblk0
, cela avait fonctionné (en supposant qu'il avait une table de partition msdos).
Essayez lsblk
, il n'a même pas besoin de 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
Le -b
lui dit de sortir la taille en octets.
Pour obtenir la valeur exacte de la taille totale de la partition, exécutez :
awk '{print $1*512}' /sys/class/block/mmcblk0p1/size