未安装分区中的可用空间

未安装分区中的可用空间

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 之外,通常没有很多这样的工具。

答案4

# cfdisk /dev/sda 

此命令将显示 /dev/sda 中包含的未安装和未分区的空间,如下图所示:

在此输入图像描述

相关内容