Linuxでマウントされていないパーティションのサイズを見つける方法


14

tune2fsを使用していますが、ブロック単位でデータを提供するため、パーティションの合計サイズの正確な値を取得できません。

私も使用fdisk -l /dev/mmcblk0p1しましたが、ここから取得するサイズも異なる値です。

正確なパーティションサイズを見つけるにはどうすればよいですか?


8
tune2fsはパーティションのサイズを出力せファイルシステムのサイズを出力することに注意してください。(パーティション上の未使用領域がある場合)、ファイルシステムがパーティションよりも小さくすることができる、それはパーティションよりも大きくすることができる(場合パーティションが何とか切り捨てた。明らかに、ファイルシステムは、その場合には破損しているが、まだそれがあるよりも大きいですパーティション)。また、複数のパーティションにまたがったり、「仮想」であったりすることもあります。つまり、バッキングデバイス(sysfs、procfs、tmpfsなど)さえありません。
ヨルグWミットタグ

回答:


22

コマンドは次のとおりです。

blockdev --getsize64 /dev/mmcblk0p1

結果をバイト単位で64ビット整数として返します。カーネルがそのサイズを確認すると、ブロックデバイスのバイトサイズを照会します

なぜ動作fdisk -l /dev/mmcblk0p1しなかったのかという理由は、まったくfdisk異なることをしているからです。ブロックデバイスのパーティションテーブル(=最初のセクター)を読み取り、見つかっものを出力します。何もチェックせず、パーティションテーブルの内容のみを示します。

パーティションテーブルが破損していたり​​、ブロックデバイスに破損していても気にしません:チェックサムが大丈夫ではないという警告を出力しますが、値が明らかに非表示であっても、検出したものを出力します-センス。

これはあなたのケースで起こったことです:パーティションテーブル/dev/mmcblk0p1 ありません。デバイスの名前が示すように、それはすでに物理ディスクの最初のパーティションです/dev/mmcblk0。このディスクにはパーティションテーブルが含まれており、クエリを実行した場合fdisk -l /dev/mmcblk0、動作していました(msdosパーティションテーブルがあると仮定)。


私のパーティション領域は、正確に2ギガバイトが、BLOCKDEVおよびより少ない残りのスペースであり、また、その値取得するためのコマンドを教えてくださいどこよりも、両方の弾力値をFDISKである
Sarthak_Bhutani

@Sarthak_Bhutaniあなたが必要とする情報は印刷されfdisk -l /dev/mmcblk0ませんか?1つのブロックのサイズ、デバイス上のブロックの総数、パーティションのサイズ、および各パーティションの開始ブロックと終了ブロックが表示されます。その情報から、どのパーティションにも割り当てられていないブロック範囲を把握することもできます。
ブラックジャック

9

試してみてくださいlsblk、それはルートさえ必要としません:

$ 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パラメーターは、サイズをバイト単位で出力するように指示します。


これはとてもいいツールです!!! ありがとう!+1!
rmbianchi

5

パーティションの合計サイズの正確な値を取得するには、次を実行します。

awk '{print $1*512}' /sys/class/block/mmcblk0p1/size

2
セクターサイズが512であるかどうかにも依存すると思います(今日のケースの圧倒的多数)。
peterh -復活モニカ

1
@peterhブロックデバイスが物理セクターサイズを512のままにしているのは実際には珍しいことですが、多くのこと(/ sys / class / blockで明確な情報が見つかりません)は、512バイト単位でレポートするように設計されています実際のブロックサイズに関係なく。
Random832
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.