工具/软件:Linux
我使用的是 Beaglbone Black、microSD 卡上有来自 TI SDK 的预构建二进制文件 04.00.00.04。
然后、我将从 MicroSD 引导 BBB。
然后、我使用"partition_eMMC.sh"脚本对 eMMC 进行分区。 随附此帖子。
然后我安装了更大的分区(~900MB)并开始提取包含4K 大小文件的大 tar (~390MiB)。
一旦利用了29%的分区空间,tar 就无法进一步提取报告设备上没有剩余空间。
我在下面粘贴了 df -h 的输出、您可以看到仅使用了29%的分区。
root@AM335x-EVM:/home# df -h 文件系统 尺寸 已在 /dev/root 上使用可用使用率% 1.7G 1.5 G 68.5M 96%/devtmpfs 223.6M 4.0K 223.6M 0%/dev/tmpfs 248.1M 0 248.1M 0%/dev/shm tmpfs 248.1M 17.5M 230.6M 7%/run tmpfs 248.1M 0 248.1M 0%/sys/fs/cgroup tmpfs 248.1M 0 248.1M 0%/tmp tmpfs 16.0万 0 16.0M 0%/media/ram tmpfs 50.0米 2.3m 47.7M 5%/var/volatile /dev/mmcblk0p1 68.9M 740.0K 68.2M 1%/run/media/mmcblk0p1 /dev/mmcblk1p1 673.0M 454.1M 169.8M 73%/var/firmware /dev/mmcblk1p3 99.6M 1.5米 90.6M 2%/mnt/extra /dev/mmcblk1p2 975.9M 259.4M 649.3M 29%/mnt/mnttest
甚至不可能接触该分区中的文件、请参阅下面的
root@AM335x-EVM:/home# uname -a Linux AM335x-EVM 4.9.28-geed43d1050 #1 preemeempt Wed Jun 28 17:20:01 EDT 2017 armv7l GNU/Linux root@AM335x-EVM:/home#触摸/mnt/mnttest/ankur :/mnt/mnttest/ankur:器件上没有剩余空间
可以按照以下步骤重复此测试。
在 Linux PC 中、使用附加的"generate_files"脚本生成大的 rootfs.tar.gz 文件。
我使用 了以下命令
generate_files.sh 4K 100000
输出为 rootfs.tar.gz
2.转接 partition_emmc.sh
在 BBB 上运行它、该脚本将创建三个分区。 第二个分区为~900MB
3.在 eMMC 的第一个分区或 SD 卡上传输大 rootfs.tar.gz。
4.传输并运行脚本"script_TO_removefiles_and_extractar_bbb.sh"、并将参数作为大 rootfs.tar.gz 的路径
我使用以下命令运行了它
/home/script_to_removefiles_and_extracttar_bbb.sh /var/firmware/rootfs.tar.gz
while 脚本停止抱怨没有剩余空间,但分区上有可用空间。
我计算了方向上的文件数为65525、
root@am335x-evm:/home# ls -l /mnt/mnttest /dev/mmcblk1p1 | wc -l 65525 root@am335x-evm:/home# blkid /dev/mmcblk1p3 /dev/mmcblk0p2:label="rootfs3" UUID ="b7c1f54c-9ee2-4e4f-a63a-decf7ffs02" type="bcpe4a1f3b5361de-4b5a130" :/dev/mmcblk1p2 /dev/mmcblk0p1
因此、它不会达到 ext4对每个目录的文件数量的限制。
参考文献: https://stackoverflow.com/questions/466521/how-many-files-can-i-put-in-a-directory
现在、我无法理解为什么会出现此错误。
是否有针对此错误的建议/更正/指导?