Tune2fs kullanıyorum, ancak bloklar halinde veri veriyor ve bölümün toplam boyutunun tam değerini alamıyorum.
Ben de kullandım fdisk -l /dev/mmcblk0p1, ama boyutu buradan alıyorum da farklı bir değer.
Tam bölüm boyutunu nasıl bulabilirim?
Tune2fs kullanıyorum, ancak bloklar halinde veri veriyor ve bölümün toplam boyutunun tam değerini alamıyorum.
Ben de kullandım fdisk -l /dev/mmcblk0p1, ama boyutu buradan alıyorum da farklı bir değer.
Tam bölüm boyutunu nasıl bulabilirim?
Yanıtlar:
Komut:
blockdev --getsize64 /dev/mmcblk0p1
64 bit tam sayı olarak sonucu bayt cinsinden verir. Çekirdek boyutunu gördüğünden, bir blok aygıtın bayt boyutunu sorgular .
Nedeni, neden fdisk -l /dev/mmcblk0p1işe yaramadı, bunun fdisktamamen farklı bir şey yaptığıydı: blok cihazın bölme tablosunda (= ilk sektör) okuyor ve bulduklarını yazdırıyor . Hiçbir şeyi kontrol etmez, sadece bölüm tablosunda ne olduğunu söyler.
Bölümleme tablosu zarar görmüşse bile engellemiyor veya blok cihazında bir tane yok: sağlama toplamının iyi olmadığına dair bir uyarı yazdırır, ancak değerler açıkça olmayan olsa bile yine de bulunanları yazdırır -sense.
: Bu durumda ne oldu /dev/mmcblk0p1 yoksa bir bölüm tablosunun. Cihazın adından da anlaşılacağı gibi, zaten fiziksel diskin ilk bölümüdür /dev/mmcblk0. Bu disk, bir bölüm tablosu içeriyorsa, sorguyu sormuş olsaydınız fdisk -l /dev/mmcblk0, çalışmıştı (msdos bölüm tablosu olduğu varsayılarak).
fdisk -l /dev/mmcblk0? Size bir bloğun boyutunu, cihazdaki toplam blok sayısını, bölümlerin boyutunu ve ayrıca her bölümün başlangıç ve bitiş bloğunu söylemelidir. Ayrıca, bu bilgilerden herhangi bir bölüme atanmamış blok aralıklarını da belirleyebilirsiniz.
Deneyin lsblk, hatta kök gerektirmez:
$ 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
-bParametre çıkışına bayt boyutunu söyler.
Bölüm çalıştırmasının toplam boyutunun tam değerini almak için:
awk '{print $1*512}' /sys/class/block/mmcblk0p1/size
Çözümüm:
part_dev='/dev/hda2'
total_block=`tune2fs -l $part_dev | awk '/Block count/ {print $3}'`
block_size=`tune2fs -l $part_dev | awk '/Block size/ {print $3}'`
total_size=$(($total_block* $block_size))
echo $total_size
/dev/hda2zorunlu olarak bağlanmayan bölüm nerede . tune2fsver 1.42.4 ile test edilmiştir