ext2、ext3、ext4 文件系统

ext2、ext3、ext4 文件系统

如何在 Linux 中找出文件系统的大小?我的意思是分区使用的确切字节数,而不仅仅是 的输出df,因为当在文件系统上使用压缩或重复数据删除时,它可能与真实大小不同。

分区本身的大小可以用以下命令打印:

$ lsblk -b

或者

$ blockdev --getsize64 /dev/sda

我正在寻找类似文件系统的东西。

PS:这是关于 LVM 增大/缩小的内容。我最感兴趣的是 ext2/3/4 和 btrfs,但任何其他文件系统信息也值得赞赏。

答案1

如果您想要文件系统信息而不是分区/卷信息,我认为您必须使用特定于文件系统的工具。

对于 extN 系统,应该是dumpe2fsdumpe2fs据我所知,它不会直接打印字节大小。但是,它会打印块计数和块大小,因此您可以改为解析输出:

$ 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较小的原因。

答案2

这取决于您要调查的文件系统:

ext2、ext3、ext4 文件系统

dumpe2fs -h /dev/sda1 | grep '^Block'

您必须将块数和块大小相乘才能得到字节数。

ISO-9660 文件系统

isoinfo -d -i ubuntu-18.10-desktop-amd64.iso | grep -A1'^逻辑块大小'

卷大小的单位是逻辑块,因此您必须将卷大小与逻辑块大小相乘才能得到字节数。

BTRFS 文件系统

由于一个 btrfs 可以包含多个设备,因此该命令将挂载点作为参数

btrfs 文件系统使用 -b /mnt/mountpoint | grep '设备大小'

答案3

对于 btrfs,您可以使用:

sudo btrfs filesystem usage -b /mountpoint

相关内容