Příkaz je:
blockdev --getsize64 /dev/mmcblk0p1
Výsledek udává v bajtech jako 64bitové celé číslo. Dotazuje se na velikost bajtů blokového zařízení , jak jádro vidí jeho velikost.
Důvod, proč fdisk -l /dev/mmcblk0p1
nefungovalo, bylo to fdisk
dělá něco úplně jiného:čte tabulku oddílů (=první sektor) blokového zařízení a vytiskne, co našel . Nic nekontroluje, pouze říká, co je v tabulce oddílů.
Neobtěžuje se ani, pokud je tabulka oddílů poškozená nebo blokové zařízení žádnou nemá:vypíše varování, že kontrolní součet není v pořádku, ale stále vypíše, co se najde, i když hodnoty zjevně nejsou -smysl.
Toto se stalo ve vašem případě:/dev/mmcblk0p1
nemá tabulku oddílů. Jak název zařízení ukazuje, jedná se již o první oddíl fyzického disku /dev/mmcblk0
. Tento disk obsahuje tabulku oddílů, pokud jste se na ni dotazovali pomocí fdisk -l /dev/mmcblk0
, fungovalo to (za předpokladu, že mělo tabulku oddílů msdos).
Zkuste lsblk
, ani to nevyžaduje 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
-b
parametr říká, že má vypsat velikost v bajtech.
Chcete-li získat přesnou hodnotu celkové velikosti oddílu, spusťte:
awk '{print $1*512}' /sys/class/block/mmcblk0p1/size