Linuxでファイルシステムのサイズを調べるにはどうすればよいですか?つまり、ファイルシステムで圧縮または重複排除を使用する場合の実際のサイズとは異なる可能性があるため、df
の出力だけでなく、パーティションから使用される正確なバイト数を意味します。
パーティション自体のサイズは、次のコマンドで印刷できます。
$ lsblk -b
または
$ blockdev --getsize64 /dev/sda
ファイルシステムに似たものを探しています。
PS:これはLVMの成長/縮小用です。私は主にext2/3/4とbtrfsに興味がありますが、他のファイルシステム情報も同様に高く評価されています。
パーティション/ボリューム情報ではなくファイルシステム情報が必要な場合は、ファイルシステム固有のツールを使用する必要があると思います。
ExtNシステムの場合、それはdumpe2fs
になります。そして、dumpe2fs
は、私が知る限り、サイズをバイト単位で直接出力しません。ただし、ブロック数とブロックのサイズは出力されるため、代わりに出力を解析できます。
$ dumpe2fs -h /dev/sda1 |& awk -F: '/Block count/{count=$2} /Block size/{size=$2} END{print count*size}'
29999980544
私の場合、このサイズはパーティションサイズとわずかに異なります。
$ parted /dev/sda u b p
Model: ATA ST500LT012-1DG14 (scsi)
Disk /dev/sda: 500107862016B
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17408B 30000000511B 29999983104B ext4 boot, esp
2 30000807936B 453049843711B 423049035776B ext4
5 453049843712B 495999516671B 42949672960B ext4
3 495999516672B 500102862847B 4103346176B linux-swap(v1)
4 500102862848B 500107845119B 4982272B bios_grub
パーティションサイズは29999983104バイトで、ブロックサイズの倍数よりも2560バイト多く、これがdumpe2fs
によって報告されるサイズが小さい理由です。
Btrfsの場合、次を使用できます。
Sudo btrfs filesystem usage -b /mountpoint
調査するファイルシステムによって異なります。
dumpe2fs -h/dev/sda1 | grep '^ Block'
バイト数を取得するには、ブロックカウントとブロックサイズを乗算する必要があります。
isoinfo -d -i ubuntu-18.10-desktop-AMD64.iso | grep -A1 '^論理ブロックサイズ'
ボリュームサイズの単位は論理ブロックであるため、バイト数を取得するには、ボリュームサイズと論理ブロックサイズを乗算する必要があります。
1つのbtrfsは複数のデバイスを含むことができるため、コマンドは引数としてマウントポイントを取ります
btrfsファイルシステムの使用法-b/mnt/mountpoint | grep 'デバイスサイズ'