sys
我可以使用或等系统文件找到已卸载分区的可用空间吗proc
?
我知道如何找到总空间,但不知道可用空间。请建议仅使用系统文件。对于未安装分区的总空间,我使用/proc/partitions
文件。
答案1
没有通用的方法,但有一种在大多数情况下都有效的方法。
没有通用方法的原因是内核也不知道它。要知道它,首先需要分析分区。
如果不挂载分区,内核只知道它的存在,但不知道更多。本质上,它是一行包含随机数据的块。内核知道它在哪里以及如何访问它,但不知道如何处理它。
然而,还有一些用户空间工具可以分析文件系统的内容而无需安装它。由于所有文件系统都有非常不同的数据结构,因此您需要不同的工具来处理它们。
对于 ext2/3/4 的情况是
# dumpe2fs /dev/sdxN|grep '^Free blocks'
dumpe2fs 1.42.13 (17-May-2015)
Free blocks: 5721580
或者(迄今为止更快的)tune2fs
工具:
# tune2fs -l /dev/sdxN|grep '^Free blocks:'
Free blocks: 14227371
答案2
procfs 应该专门用于进程相关信息。 (因为它没有被严格遵循,但为了安全起见,不要依赖它,因为它有可能被弃用)。
所以 sysfs 会给我们系统信息。这将提供完整磁盘大小的信息[以扇区为单位,而不是以字节为单位]。
cat /sys/block/sda/size
将 sda 替换为您的分区名称。
ls /sys/block/sda/
将提供有关可用检查目录命名 sda1、sda2 ... 的分区的信息
与 sda 相同的东西可用于检查这些分区的大小[扇区]。
cat /sys/block/sda/sda1/size
您也可以使用检查您的输出
sudo fdisk -l /dev/sda1
这是真实的例子: 与上面的监视分区名称相同的注释。根据您的要求将 sda 更改为 sdb、sdc 等。
如果您想获取驱动器或分区大小(以字节为单位),请使用区块开发者。
答案3
这取决于文件系统类型,但您可以尝试使用它fsck
来找出剩余的可用空间。查找可用空间需要一个了解文件系统结构的工具,除了 fsck 之外,通常没有很多这样的工具。