单位定义

单位定义

可能重复:
为什么 Ubuntu 看不到任何可用空间?

我决定更换运行 Ubuntu 12.04 LTS 的机器上的硬盘。使用新硬盘几天后,我注意到新硬盘有坏道。所以我决定重新插入旧硬盘。

首先,我插入了两个硬盘,并将一些数据文件从新硬盘复制到旧硬盘。拔下新硬盘后,我用旧硬盘启动了电脑,结果让我大吃一惊:我的/home分区上可用字节为 0!

df实用程序显示/home分区有 0 个可用字节。我尝试移动一些文件。但仍然有 0 个字节/home!但是,GParted 正确显示可用大小接近 2Gb。

更新 1:

令我惊讶的是,系统监视器显示该/home分区上大约有 2 GB 是空闲的,而可用字节为 0。这让我有点震惊!“空闲”和“可用”不是一回事吗?

非常感谢您的帮助!

答案1

您的问题不清楚,但我会尽力回答。

当您尝试找出您拥有的可用空间量时,不同的应用程序会给出不同的答案。这是因为磁盘空间单位(KB、KiB、kB、K、k 等)的定义不同,并且术语“可用空间”和“可用空间”的定义也不同。此外,不同的实用程序可能给出不同的近似值。

单位定义

  • A少量是零或一。字节受到8位的影响。目前,这些定义已经达成共识。
  • 位的简写形式是小写的b,字节的简写形式是大写的B。许多人会混淆这一点,但大多数应用程序都能正确区分。因此,如果您的浏览器告诉您下载速度为8bps,则意味着每秒八位或每秒一个字节(速度极慢)。这与 不同8Bps
  • 根据 IEC 60027-2 标准,千字节是 1000 字节,单位表示为kB。然而,在实践中,许多旧版 Linux 应用程序和大多数 Windows 应用程序都认为 1 千字节等于 1024 字节,并使用 单位KB。然而,较新的 Linux 应用程序、OS X 和硬盘制造商使用正确的 1000 字节定义(称为 SI 定义,因为它与公制相似)。
  • 同样,根据标准,兆字节为1000000字节,单位记为MB。但实际应用中,很多应用都将其1MB理解为1048576字节,这样很容易让人混淆。
  • 根据标准,一个千字节为 1024 字节,表示为KiB。幸运的是,当应用程序使用该KiB单位时,不会造成混淆。不幸的是,许多应用程序仍然不使用该单位,KB而是使用 ,这很含糊。

您可以阅读更多内容此处单位混淆

空闲空间和可用空间

默认情况下,Linux 会为 root 用户保留 5% 的分区空间。这是一个好主意,因为它可以确保硬盘已满时磁盘至少可以启动。但是,您可能会发现 5% 的数字太高,您可以使用 进行调整tune2fs

您可以通过以下方式查看保留了多少磁盘空间:

$ sudo tune2fs -l /dev/sda6 | grep -i -e reserved -e 'block size' -e 'block count'
Block count:              487936
Reserved block count:     24396
Block size:               4096
Reserved GDT blocks:      119
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

本例中的块大小为 4096 字节。这意味着我们4096 * 24396在这个分区中保留了字节。

您可以像这样更改百分比:

$ sudo tune2fs -m 4 /dev/sda6 # change to 4%

不同的应用程序输出

自由度

以下是df我所看到的内容:

$ df /home
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/sda6        1921036 134604   1688848   8% /home

df有一个使用 SI 单位的选项:

$ df /home --si
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       2.0G  138M  1.8G   8% /home

最不令人困惑的可能就是使用字节数,如下所示:

$ df /home --block-size=1
Filesystem      1B-blocks      Used  Available Use% Mounted on
/dev/sda6      1967140864 137834496 1729380352   8% /home

因此,正如您所看到的,根据df,分区的大小为 1 967 140 864 字节,即 1.967140864GB,或大约 1.832042694091GiB。

根据df,可用空间大小为 1 729 380 352 字节,即 1.729380352GB,或约 1.61061096GiB。这是非 root 用户可用的可用空间量。root 用户可以使用额外 5% 的保留空间。

如果您将总磁盘空间减去可用空间和已用空间,您将得到保留空间:

1967140864B - (1729380352B + 137834496B) = 99926016B

如果你算一下,你就会发现,正如我们预期的那样,这相当于总磁盘空间的 5%。

因此,如您所见,默认情况下,df使用表示 1024 字节的单位K。传递时--sidf使用表示 1000000000 字节的单位G,并对结果进行四舍五入。

系统监视器

这是系统监视器告诉我的内容:

Device     Directory Type  Total   Free    Available Used
/dev/sda6  /home     ext4  1.8GiB  1.7GiB  1.6GiB    7%

系统监视器正确地将该单位GiB视为 1073741824 字节。它会对结果进行四舍五入,然后再将其显示给用户。

“空闲”空间是磁盘上未分配的空间,其中包括为 root 用户保留的磁盘空间。“可用”空间不包括为 root 用户保留的空间。

分区

GParted 告诉我的是:

Partition  File System  Mount Point Size     Used       Unused 
/dev/sda6  ext4         /home       1.86GiB  161.44MiB  1.70GiB

GParted 正确地将单位GiB设为 1073741824 字节。它会对结果进行四舍五入,然后再将其显示给用户。

“未使用”空间相当于系统监视器显示的“可用”空间:它是未分配的空间量,包括为 root 用户保留的空间。

相关内容