Der Befehl lautet:
blockdev --getsize64 /dev/mmcblk0p1
Es gibt das Ergebnis in Bytes als 64-Bit-Integer aus. Es fragt die Bytegröße ab eines Blockgerätes , wie der Kernel seine Größe sieht.
Der Grund, warum fdisk -l /dev/mmcblk0p1
hat nicht funktioniert, war das fdisk
macht etwas ganz anderes:es liest die Partitionstabelle (=erster Sektor) des Blockgeräts ein und gibt aus, was es gefunden hat . Es überprüft nichts, sagt nur, was in der Partitionstabelle steht.
Es stört nicht einmal, wenn die Partitionstabelle beschädigt ist oder das Blockgerät keine hat:Es gibt eine Warnung aus, dass die Prüfsumme nicht in Ordnung ist, aber es druckt trotzdem, was gefunden wird, selbst wenn die Werte eindeutig nicht sind -Sinn.
Folgendes ist in Ihrem Fall passiert:/dev/mmcblk0p1
hat nicht eine Partitionstabelle. Wie der Name des Geräts zeigt, ist es bereits die erste Partition der physischen Festplatte /dev/mmcblk0
. Diese Platte enthält eine Partitionstabelle, wenn Sie diese mit fdisk -l /dev/mmcblk0
abgefragt haben , es hatte funktioniert (vorausgesetzt, es hatte eine msdos-Partitionstabelle).
Versuchen Sie es mit lsblk
, es ist nicht einmal root erforderlich:
$ 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
Die -b
Parameter weist ihn an, die Größe in Bytes auszugeben.
Um den genauen Wert der Gesamtgröße der Partition zu erhalten, führen Sie Folgendes aus:
awk '{print $1*512}' /sys/class/block/mmcblk0p1/size