Showing posts with label gentoo. Show all posts
Showing posts with label gentoo. Show all posts

Wednesday, December 23, 2009

Using ext4 when compiling your own kernel

My parents finally upgraded to a new computer this past weekend so I took their old one (PIII, 384MB SDRAM) and turned it into a file server. I used gentoo to build it and was surprised how little time it took to actually configure (compiling was a different story...). I had an old 120 GB PATA hard drive lying around so I partitioned it as follows:
  • /dev/sda1 | ext2 | 100MB (/boot)
  • /dev/sda2 | ext4 | 15GB (root)
  • /dev/sda3 | swap | 1GB
  • /dev/sda4 | ext4 | 104GB (/mnt/whatever)
It was all pretty standard: upgrade to sys-devel/gcc-4.4.2 and sys-libs/glibc-2.11-r1, `make menuconfig`'d sys-kernel/hardened-sources-2.6.28-r9, made sure I included baked-in support for ext4, and compiled. After waiting half an hour (literally -- `time make` took ~32 mins!), I rebooted and was welcomed by an unfamiliar message in my system log:
EXT4-fs: dm-5: Filesystem with huge files cannot be mounted read-write without CONFIG_LSF.
Fortunately, my root partition mounted cleanly and the error only applied to /dev/sda4. Googling around*, I discovered that the "huge_file" feature is implicit when running mkfs.ext4. I saw 'CONFIG_LSF' in the kernel config and the documentation said it was only necessary for files 2TB or larger -- clearly nothing I'd need to worry about -- so I didn't include it in the kernel.

Instead of recompiling my kernel, I figured I'd just reformat the partition without huge_file support. Yes, recompiling the kernel would've been a pain, but reformatting seemed like the more ideal/elegant solution -- especially considering this partition was barely 100GB. The default behavior for mke2fs.ext* can be found in /etc/mke2fs.conf (on gentoo, at least), and the culprit looks like this under the ext4 block:
features = has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize

* http://old.nabble.com/Bug-509893:-e2fsprogs:-mkfs.ext4-produces-unusable-filesystem-td21193293.html