为什么 df -h 显示的磁盘空间比主板实际拥有的空间少?

为什么 df -h 显示的磁盘空间比主板实际拥有的空间少?
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       4.3G  1.9G  2.2G  47% /
devtmpfs        980M     0  980M   0% /dev
tmpfs           981M     0  981M   0% /dev/shm
tmpfs           981M   33M  948M   4% /run
tmpfs           981M     0  981M   0% /sys/fs/cgroup
tmpfs           981M     0  981M   0% /tmp
tmpfs           981M   16K  981M   1% /var/volatile
# fdisk -l
Disk /dev/mmcblk1: 7.3 GiB, 7818182656 bytes, 15269888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier:

Device         Start      End  Sectors  Size Type
/dev/mmcblk1p1 16384    24575     8192    4M unknown
/dev/mmcblk1p2 24576    32767     8192    4M unknown
/dev/mmcblk1p3 32768    69859    37092 18.1M unknown
/dev/mmcblk1p4 81920 15269854 15187935  7.2G unknown

该图像是用 yocto 构建的。
我预计 /dev/root 的大小为 7.2GB,但它只显示 4.3GB。
谁能解释为什么df -h显示的 /dev/root 磁盘空间比主板实际拥有的磁盘空间少(与 相比fdisk)?

答案1

谁能解释为什么df -h显示的磁盘空间/dev/root比主板实际拥有的少(与 相比fdisk)?

4.3G是安装在 下的文件系统的大小/7.2G是块设备的大小/dev/mmcblk1p4,是(?)的分区/dev/mmcblk1

文件系统和块设备是不同的概念(比较我的这个答案)。文件系统通常存在于某个块设备内。可能比块设备小;这种情况是完全有可能的,而且很可能就是这里的情况。

请注意,您的问题中没有任何内容真正表明挂载的文件系统/直接或间接存在于内部/dev/mmcblk1p4df将其与/dev/root可能是符号链接的/dev/mmcblk1p4;关联起来。但也可能是别的东西。

mmcblk1p4和之间可能有附加层(甚至是层)/dev/root,例如 LVM。

查看ls -l /dev/root。如果它显示,root -> mmcblk1p4那么是的,安装在下面的文件系统/直接存在,/dev/mmcblk1p4但它的大小较小。如果/dev/root是其他情况,则需要进一步调查。

这个答案的其余部分假设/dev/root是一个符号链接/dev/mmcblk1p4

有一些工具可以扩大文件系统。首先您需要知道文件系统类型。调用mount并检查相关条目。它看起来像这样:

/dev/root on / type <type> …

<type>会告诉你文件系统类型。下一个:

  1. 选择正确的工具(resize2fs对于 ext2/ext3/ext4、btrfs filesystem resize对于 btrfs,...)。
  2. 阅读手册。
  3. 检查该工具是否支持扩大已安装的文件系统。btrfs filesystem resize 需要要挂载的文件系统。resize2fs 允许放大时要安装。特定于其他类型的工具可能需要卸载文件系统;在这种情况下,您无法调整安装的内容的大小/
  4. 扩大文件系统。有些工具可以自动检查底层块设备的大小,并根据要求使文件系统占用所有可用空间。检查手册以获得正确的语法。

我无法给您一个确切的放大命令,因为我不知道您的确切设置。无论如何,我对您提出的明确问题(“为什么df -h显示更少的磁盘空间?”)的回答是:因为df处理文件系统而fdisk处理块设备;文件系统和块设备是不同的概念。

相关内容