我正在制作一个“大”非嵌入式图像,用于模拟而不是真实设备,我一直在遇到错误:
*** Maybe you need to increase the filesystem size (BR2_TARGET_ROOTFS_EXT2_SIZE)
然后我必须在du
上执行output/target
以了解我需要做多大BR2_TARGET_ROOTFS_EXT2_SIZE
。
有没有办法实现自动化,或者是一个不错的解决方法?
我正在考虑的一些解决方法:
-initrd
http://lists.busybox.net/pipermail/buildroot/2018-March/215622.html
答案 0 :(得分:1)
http://lists.busybox.net/pipermail/buildroot/2018-March/215636.html说:
不,因为它不可靠,请参阅commit:
c6bca8cef fs/ext2: Remove support for auto-calculation of rootfs size
最后,进行自动计算是没有意义的,因为在 嵌入式设备,您现在必须具有存储的布局和大小。 所以,你知道你想要你的ext文件系统的大小。
因此,Buildroot从根本上不可能/不值得这样做。
https://github.com/buildroot/buildroot/commit/c6bca8cef0310bc649240b451989457ce94a8358
然后我进一步搜索了一下,并且遇到了https://unix.stackexchange.com/questions/353156/how-to-calculate-the-correct-size-of-a-loopback-device-filesystem-image-for-debo,这表明可能有resize2fs -M
+稀疏文件。
libguestfs还可以自动最小化图像大小,如https://serverfault.com/questions/246835/convert-directory-to-qemu-kvm-virtual-disk-image/916697#916697所示,并显示vfs-minimum-size
函数:http://libguestfs.org/guestfish.1.html#vfs-minimum-size