Gru*_*bel 9 filesystem partitioning lvm btrfs
如何在 Linux 中找出文件系统的大小?我的意思是从分区中使用的确切字节数,而不仅仅是 的输出df,因为在文件系统上使用压缩或重复数据删除时,这可能与真实大小不同。
分区本身的大小可以打印为:
$ lsblk -b
Run Code Online (Sandbox Code Playgroud)
或者
$ blockdev --getsize64 /dev/sda
Run Code Online (Sandbox Code Playgroud)
我正在为文件系统寻找类似的东西。
PS:这是用于 LVM 增长/收缩的东西。我最感兴趣的是 ext2/3/4 和 btrfs,但也欢迎任何其他文件系统信息。
mur*_*uru 13
如果您想要文件系统信息而不是分区/卷信息,我认为您必须使用特定于文件系统的工具。
在 extN 系统的情况下,这将是dumpe2fs. 并dumpe2fs没有直接打印的字节大小,据我可以告诉。但是,它确实会打印块计数和块大小,因此您可以改为解析输出:
$ dumpe2fs -h /dev/sda1 |& awk -F: '/Block count/{count=$2} /Block size/{size=$2} END{print count*size}'
29999980544
Run Code Online (Sandbox Code Playgroud)
就我而言,此大小与分区大小略有不同:
$ 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
Run Code Online (Sandbox Code Playgroud)
分区大小为 29999983104 字节,比块大小的倍数多 2560 字节,这就是为什么报告的大小dumpe2fs较小的原因。
这取决于您要调查的文件系统:
dumpe2fs -h /dev/sda1 | grep '^块'
您必须将块数和块大小相乘才能获得字节数。
isoinfo -d -i ubuntu-18.10-desktop-amd64.iso | grep -A1 '^逻辑块大小'
卷大小的单位是逻辑块,因此您必须将卷大小和逻辑块大小相乘才能得到字节数。
由于一个 btrfs 可以包含多个设备,因此该命令将挂载点作为参数
btrfs 文件系统使用 -b /mnt/mountpoint | grep '设备大小'