#StackBounty: #linux #filesystems #btrfs btrfs "unable to zero output file"

Bounty: 50

I’m trying to create a btrfs file system with a single volume from a directory ‘root’, over mtd and nandsim.

With a few token files and directories in my root directory, and successfully created and mounted the filesystem:

sudo modprobe mtdblock
sudo flash_erase /dev/mtd0 0 0
sudo mkfs.btrfs -m single -s 2048 -r root /dev/mtdblock0

All is well in the world. Now, I add in the actual contents of my root directory: a few metadata files, and just under 128k binary files at 2k each. When I try the same approach again, mkfs.btrfs fails with “ERROR: unable to zero the output file”.

In the source code, the offending method at line 407 fails if either call to pwrite64() fails. I can’t see why this would fail, unless the system call has some limit on the overall size it will allow?

That said, my device is only 256MB, on a system with plenty of RAM and disk space — it seems unlikely.

Could anyone please point me in the right direction? Have I missed some key step?

If it matters, I’m using btrfs-progs v4.15.1, on bionic 18.04 kernel 4.15.0-99-generic

Get this bounty!!!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.