[Libguestfs] [PATCH] make-fs: Don't use du --apparent-size to estimate input size.

Nikolay Ivanets stenavin at gmail.com
Tue Feb 18 14:15:36 UTC 2020


> I think it's a difficult problem and one which won't be solved using
> du.  For comparison we have some nbdkit plugins for creating
> filesystems and they are far more sophisticated, especially this one:
> https://github.com/libguestfs/nbdkit/tree/master/plugins/floppy
>
> I would note that the reason the test fails was nothing to do with
> free space.  It was actually running out of inodes.  With ext2/3/4 the
> number of inodes in the metadata is fixed at creation and based on the
> size of the disk (see /etc/mke2fs.conf inode_ratio and the mke2fs -i
> and -N options).  Because of the small size of the disk, mke2fs was
> choosing < 100 inodes, but because the test had 100+ files it failed
> when creating the later files even though there was enough disk space.
> There's no easy way to fix this.  I think it could even be considered
> as a bug in mke2fs.
>
> Rich.

I've did extra testing and the issue really appears for small file systems
composed from 100 x 10-bytes files or so because of lack of free inodes.
Nevertheless we cannot swear that virt-make-fs will work for any possible
file systems or set of files.--size=+N is for the rescue in such cases.

Your patch made things worse because of sparse files.
I think we cannot apply it.

--
    Mykola Ivanets





More information about the Libguestfs mailing list