如何在 Linux 中找出文件系统的大小?我的意思是分区使用的确切字节数,而不仅仅是 的输出df
,因为当在文件系统上使用压缩或重复数据删除时,它可能与真实大小不同。
分区本身的大小可以用以下命令打印:
$ lsblk -b
或者
$ blockdev --getsize64 /dev/sda
我正在寻找类似文件系统的东西。
PS:这是关于 LVM 增大/缩小的内容。我最感兴趣的是 ext2/3/4 和 btrfs,但任何其他文件系统信息也值得赞赏。
答案1
如果您想要文件系统信息而不是分区/卷信息,我认为您必须使用特定于文件系统的工具。
对于 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
较小的原因。
答案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