为什么分区大小和 df 输出不同?

为什么分区大小和 df 输出不同?

我有一个分区/dev/sda1。
磁盘实用程序显示其容量为 154 GB。
df-h节目

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             123G  104G   14G  89% /
devtmpfs             1006M  280K 1006M   1% /dev
none                 1007M  276K 1006M   1% /dev/shm
none                 1007M  216K 1006M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw

为什么结果不同?丢失的 31 GB 去哪儿了?

答案1

分区容量可能不同的原因之一是为根保留了一些空间,以防分区已满。如果没有为根保留空间,并且分区已满,系统将无法运行。然而,这种差异通常约为 1%,因此这并不能解释您的案例中的差异。来自 df 的手册页

如果参数是包含已安装文件系统的磁盘设备节点的绝对文件名,则 df 显示该文件系统上的可用空间,而不是包含该设备节点的文件系统(始终是根文件系统)上的可用空间。

因此 df 实际上显示了文件系统的大小,通常是设备的大小,但在您的情况下可能并非如此。您的文件系统是否扩展到整个分区?

resize2fs /dev/sda1

有什么区别吗?此命令尝试增加文件系统以覆盖整个分区。但如果您尝试此操作,请确保您有备份。

答案2

主要区别是因为有些人说 1 KB 是 1000 字节,而另一些人说 1 KB 是 1024 字节。

Gnome 磁盘实用程序使用 1 KB = 1000 字节显示容量,因为磁盘制造商以这种方式描述磁盘大小。这意味着您的磁盘容量接近154,000,000,000 字节

另一方面,大多数操作系统表示 1 KB = 1024 字节。所有工具都喜欢dffdisk使用这个约定。所以 154,000,000,000 字节 / 1024 / 1024 / 1024 =143.4GB

正如 jlliagre 正确指出的那样(Gilles 在询问您的fdisk输出时暗示),磁盘实用程序会告诉您整个硬盘的大小。但/dev/sda1它是硬盘上的单个分区。例如,您的硬盘上可能还有一些其他分区,例如 4-8 GB 的交换分区(也称为虚拟内存),以及通常约为 100 MB 的引导分区。

您没有发布 的​​输出fdisk -l /dev/sda,因此我们假设您的交换分区为 8 GB。现在我们要做的是135GB

然后,还有一些其他因素导致了这种差异。

例如,文件系统使用某些磁盘分区来存储元数据。元数据是诸如文件名、文件权限、分区的哪些部分属于哪些文件以及分区的哪些部分是空闲的等信息。在我的系统上,大约 2% 的分区用于此目的。假设你的类似,它会将可用空间减少到大约132GB

文件系统还可以保留一些只能由root用户使用的空间。在我的系统上,它占分区的 5%,因此在您的情况下,这意味着总容量约为125GB

确切的数字取决于您是否使用 ext2、ext3、ext4、fat、ntfs、btrfs 等,以及格式化分区时使用的设置。

如果您使用的是 ext2 或 ext3,sudo tune2fs -l /dev/sda1可以帮助了解空间的去向。

答案3

可能它们被 inode 使用。 MBR 可能会用完一些量。

答案4

sda1 不是您的整个磁盘,而是它的第一个主分区。您可能创建了其他未安装的分区,这些分区未显示在 df 输出中,或者只是由于某种原因 sda1 未填充所有可用空间,或者文件系统未使用其分区中的所有可用空间。

fdisk -l会告诉你你的分区表是什么样子的。

相关内容