Bug 2929 - genext2fs: couldn't allocate a block (no free space)
Summary: genext2fs: couldn't allocate a block (no free space)
Status: RESOLVED INVALID
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: Other Linux
: P5 critical
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-10 09:28 UTC by Andy Gibbs
Modified: 2013-05-26 14:21 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andy Gibbs 2010-12-10 09:28:02 UTC
fs/ext2/genext2fs.sh is incorrectly calculating the size required to create an ext2 image file, and it seems to happen when the size of the image exceeds 500Mb (but I haven't done precise testing to determine this).

This is the command genext2fs.sh is using:

genext2fs -d /home/test/buildroot-2010.11/target -U /home/test/buildroot-2010.11/images/rootfs.ext2 -b 525096 -N 5242

du on the target directory returns 508712
find | wc -l in the target directory returns 4842

Modifying the call to genext2fs with -b 529712 (i.e. 508712+21000) makes an image without errors and e2fsck rootfs.ext2 tells me "4440/5720 files, 529506/529712 blocks", so it should be possible to create the image with 529506 blocks, but 21000 seems a good enough "guess".

Does this information help?  If you need further information or testing, let me know.

Thanks
Andy
Comment 1 Peter Korsgaard 2010-12-30 22:35:48 UTC
Hi,

I've implemented better ext2 size estimation in git (eeea3ea6a88a8) - Could you give it a try?
Comment 2 Sean Mathews 2012-07-07 03:36:58 UTC
 genext2fs presumes block sizes are 1024 but genext2fs.sh looks at the total blocks on the local file system where the block size may be different. In my case it was 4096 so this error shows up still in this case.
Comment 3 Yann E. MORIN 2013-05-26 14:21:11 UTC
Sean,

Estimating the number of blocks is done with a call to: 'du -k' where '-k' means 'assume 1KiB blocks' (see: man du). So your issue is probably /slightly/ different.

If you manage to reproduce this issue, please reopen this bug and report back with a bit more information: buildroot's .config file, host file system...

Regards,
Yann E. MORIN.