可能重复:
为什么 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
。传递时--si
,df
使用表示 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 用户保留的空间。