插件窝 干货文章 linux磁盘大小单位有哪些

linux磁盘大小单位有哪些

基数 Bytes 1024 大小 269    来源:    2025-05-01

在 Linux 系统中,磁盘大小的单位有以下几种常见的表示方式:


1. 二进制单位 (IEC 标准)

  • KiB (Kibibyte): 1 KiB = 1024 Bytes
  • MiB (Mebibyte): 1 MiB = 1024 KiB = 1,048,576 Bytes
  • GiB (Gibibyte): 1 GiB = 1024 MiB = 1,073,741,824 Bytes
  • TiB (Tebibyte): 1 TiB = 1024 GiB = 1,099,511,627,776 Bytes

用途:Linux 内核和部分工具(如 fdisklsblk)默认使用 1024 为基数。


2. 十进制单位 (SI 标准)

  • KB (Kilobyte): 1 KB = 1000 Bytes
  • MB (Megabyte): 1 MB = 1000 KB = 1,000,000 Bytes
  • GB (Gigabyte): 1 GB = 1000 MB = 1,000,000,000 Bytes
  • TB (Terabyte): 1 TB = 1000 GB = 1,000,000,000,000 Bytes

用途:硬盘厂商常用十进制单位标称容量(如 1TB 硬盘实际约 931GiB)。


3. 命令中的单位差异

  • df -h:自动选择适合的单位(如 K/M/G),默认以 1024 为基数。
  • df -H:强制使用 1000 为基数(符合 SI 标准)。
  • ls -lh:显示文件大小时以 1024 为基数。
  • fdisk -l:通常以 1024 为基数显示分区大小。

4. 块大小 (Block Size)

  • 默认块大小:通常为 512 Bytes(传统)或 4KiB(现代高级格式磁盘)。
  • 查看块大小
    bash blockdev --getbsz /dev/sdX # 查看块设备块大小 stat -fc %s . # 查看文件系统块大小

5. 单位混淆的常见问题

  • 硬盘标称 vs 实际可用
    例如,1TB 硬盘在系统中显示为约 931GiB(因 1TB = 10^12 Bytes,而 931GiB = 931 × 1024^3 Bytes)。
  • 命令输出差异
    bash df -h # 显示 1G = 1024M df -H # 显示 1G = 1000M

6. 转换工具

  • 手动计算
    bash echo "scale=2; 1024^3 / 1000^3" | bc # 输出 1GiB 对应的 GB 数(1.07)
  • numfmt 命令(GNU coreutils):
    bash echo "1073741824" | numfmt --to=iec # 转换为 1G echo "1G" | numfmt --from=iec --to=si # 转换为 1.07G (SI)

总结

  • Linux 默认:多数工具使用 1024 基数(KiB/MiB/GiB)。
  • 硬盘厂商:使用 1000 基数(KB/MB/GB)。
  • 注意区分 KiB(二进制)和 KB(十进制),避免容量计算误差。

如果有具体场景(如分区调整、存储监控),可以进一步分析工具的输出逻辑!