# 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/mmcblk1p4
。df
将其与/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>
会告诉你文件系统类型。下一个:
- 选择正确的工具(
resize2fs
对于 ext2/ext3/ext4、btrfs filesystem resize
对于 btrfs,...)。 - 阅读手册。
- 检查该工具是否支持扩大已安装的文件系统。
btrfs filesystem resize
需要要挂载的文件系统。resize2fs
允许放大时要安装。特定于其他类型的工具可能需要卸载文件系统;在这种情况下,您无法调整安装的内容的大小/
。 - 扩大文件系统。有些工具可以自动检查底层块设备的大小,并根据要求使文件系统占用所有可用空间。检查手册以获得正确的语法。
我无法给您一个确切的放大命令,因为我不知道您的确切设置。无论如何,我对您提出的明确问题(“为什么df -h
显示更少的磁盘空间?”)的回答是:因为df
处理文件系统而fdisk
处理块设备;文件系统和块设备是不同的概念。