卸载分区中的可用空间

Sar*_*ani 7 linux disk-usage

我可以使用sys或 之类的系统文件找到未挂载分区的可用空间proc吗?

我知道如何找到总空间,但不知道可用空间。请建议仅使用系统文件。对于卸载分区的总空间,我正在使用/proc/partitions文件。

小智 6

procfs 应该专门用于进程相关信息。(因为它没有被严格遵循,但为了安全起见,不要依赖它,因为它有可能被弃用)。

所以 sysfs 会给我们系统信息。这将提供完整磁盘大小的信息[以扇区为单位,而不是以字节为单位]。

cat /sys/block/sda/size
Run Code Online (Sandbox Code Playgroud)

将 sda 替换为您的分区名称。

ls /sys/block/sda/
Run Code Online (Sandbox Code Playgroud)

将提供有关可用检查目录命名 sda1、sda2 ... 的分区的信息

与 sda 相同的东西可用于检查这些分区的大小[扇区]。

cat /sys/block/sda/sda1/size
Run Code Online (Sandbox Code Playgroud)

您也可以使用检查您的输出

sudo fdisk -l /dev/sda1
Run Code Online (Sandbox Code Playgroud)

这是真实的例子: 在此输入图像描述 与上面的监视分区名称相同的注释。根据您的要求将 sda 更改为 sdb、sdc 等。

如果您想获取驱动器或分区大小(以字节为单位),请使用blockdev


pet*_*erh 6

对此没有通用的方法,但有一种方法适用于大多数情况。

之所以没有通用方法,是因为内核也不知道。要知道它,首先需要分析分区。

没有挂载分区,内核只知道它的存在,但不知道更多。本质上,它是一行带有随机数据的块。内核知道它在哪里以及如何访问它,但不知道如何处理它。

但是,也有用户空间工具可以在不挂载文件系统的情况下分析文件系统的内容。由于所有文件系统都有非常不同的数据结构,因此您需要不同的工具来处理它们。

在 ext2/3/4 的情况下,它是

# dumpe2fs /dev/sdxN|grep '^Free blocks'
dumpe2fs 1.42.13 (17-May-2015)
Free blocks:              5721580
Run Code Online (Sandbox Code Playgroud)

或者(快得多)tune2fs工具:

# tune2fs -l /dev/sdxN|grep '^Free blocks:'
Free blocks:              14227371
Run Code Online (Sandbox Code Playgroud)