直接给结论:100GiB 的系统盘,在 Linux 系统下通常显示为约 93.15 GiB(或 95.37 GB),在 Windows 系统下通常显示为约 93.15 GiB。
这里涉及两个核心概念混淆:二进制单位(GiB)与十进制单位(GB)的换算,以及文件系统预留空间。
1. 为什么“100”变成了“93.x”?
这是最常被误解的地方。阿里云控制台显示的“100GiB”,指的是 Binary Gibibyte (GiB),而操作系统(无论是 Windows 还是 Linux)默认以 Binary Gigabyte (GiB) 来显示容量,但很多用户习惯用十进制的思维去理解。
-
阿里云/国际标准定义:
- 1 TiB = 1024 GiB
- 1 GiB = 1024 MiB
- 1 MiB = 1024 KiB
- 1 KiB = 1024 Bytes
- 所以,100 GiB = 100 × 1024 × 1024 × 1024 = 107,374,182,400 字节
-
Windows 系统的显示逻辑:
Windows 使用二进制前缀,但它把1024 MB称为1 GB。- 计算方式:
107,374,182,400 Bytes / 1024 / 1024 / 1024 ≈ 93.15 GiB - 所以在 Windows 磁盘管理中,你会看到大约 93.15 GB 的可用空间。
- 计算方式:
-
Linux 系统的显示逻辑:
Linux 命令如df -h同样基于二进制计算。100 GiB的磁盘分区,格式化后,df -h显示的大小也是 93G 左右。
✅ 简单记忆公式:
云厂商标称的 GiB 数 ÷ 1.074 ≈ 操作系统看到的 GiB 数
100 ÷ 1.074 ≈ 93.15
2. 实际可用空间还会更少吗?——文件系统开销
上面算出的 93.15 GiB 是分区总大小,不是“你能存文件的可用空间”。因为文件系统本身需要占用少量空间用于元数据管理。
(1)ext4 文件系统(Linux 主流)
- ext4 默认会预留 5% 的空间给 root 用户,防止普通用户写满磁盘导致系统崩溃。
- 如果非 root 用户登录,可用空间会更少。
- 计算公式:
93.15 GiB × (1 - 0.05) ≈ 88.5 GiB - 但你可以通过命令调整这个比例:
sudo tune2fs -m 0 /dev/vda1 # 将预留比例设为 0%设置后,可用空间接近 93.15 GiB。
(2)NTFS 文件系统(Windows 主流)
- NTFS 也有少量元数据开销,但相比 ext4 的 5% 预留,它没有强制保留 5% 给管理员。
- 实际可用空间略低于 93.15 GiB,大约在 93.0 ~ 93.1 GiB 之间,差异极小,可忽略不计。
(3)XFS 文件系统(部分新实例推荐)
- XFS 几乎不预留空间,可用空间非常接近分区总大小,即 ~93.15 GiB。
3. 特殊情况:快照与备份
如果你开启了自动快照策略或手动创建了快照,这些快照不会立即占用额外磁盘空间(因为是 CoW 写时复制),但随着时间推移和文件变更,快照数据会存储在 OSS 或底层存储中,不影响本地磁盘可见容量。
但如果你的磁盘类型是ESSD PL0/PL1/PL2 等高性能盘,且启用了云盘加密,也不会影响可见容量。
4. 如何验证你服务器的实际可用空间?
Linux 用户:
# 查看各分区使用情况
df -h
# 示例输出:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 93G 20G 73G 22% /
这里的 Avail 就是当前剩余可用空间。注意看 Size 列是否为 93G 左右。
Windows 用户:
- 打开“此电脑” → 右键 C 盘 → “属性”
- 查看“已使用空间”和“可用空间”
- 或者打开“磁盘管理”,查看 C 盘卷的总容量是否约为 93.15 GB
总结
| 项目 | 数值 |
|---|---|
| 阿里云购买规格 | 100 GiB |
| 操作系统识别总容量 | ~93.15 GiB(因 1024 vs 1000 换算) |
| Linux ext4 默认预留 5% 后 | ~88.5 GiB |
| Linux ext4 关闭预留后 | ~93.15 GiB |
| Windows NTFS 实际可用 | ~93.0–93.1 GiB |
✅ 最终答案:
你买的是 100 GiB,系统里看到的是 约 93.15 GiB。这是正常现象,不是缩水,也不是 Bug,而是计算机存储单位换算的标准规则。如需最大化可用空间,建议在 Linux 上执行 tune2fs -m 0 取消 5% 预留。
云技术博客