flockm...@gmx.at posted 200904090657.08422.flockm...@gmx.at, excerpted below, on Thu, 09 Apr 2009 06:57:08 +0200:
> i have a quite big initramfs, kernel size is approx. 5,7 MB. Adding new > things to my initramfs does not work, because grub fails to load kernels > with >6MB. so, does anybody know the exact limit of the kernel file > size, that grub is able to load? is it platform-specific? What grub version are you running? Stable or ~arch? As I recall, patches fixing this and other issues including ext4 and large inode ext3 support have been introduced into the latest ~arch grub, but whether it has been stabilized yet I'm not sure. (Actually, given the below, it hasn't been.) FWIW, I'm running ~arch (~amd64 of course, given the list), but on the no-multilib profile, where grub itself is masked and grub-static is used instead. But the rX revisions are supposed to be synced. Here's what I'm running and what's available for both grub and grub-static, along with keywording: ~$equery l grub [ Searching for package 'grub' in all categories among: ] * installed packages [I--] [ ~] sys-boot/grub-static-0.97-r9 (0) ~$epkginfo grub Package: sys-boot/grub Herd: base-system Maintainer: base-system Location: /p/sys-boot/grub Keywords: grub-0.92-r1: Keywords: grub-0.94-r1: -* Keywords: grub-0.96-r1: Keywords: grub-0.96-r2: Keywords: grub-0.96-r3: Keywords: grub-0.97: Keywords: grub-0.97-r2: Keywords: grub-0.97-r3: Keywords: grub-0.97-r4: Keywords: grub-0.97-r5: Keywords: grub-0.97-r6: amd64 x86 Keywords: grub-0.97-r8: Keywords: grub-0.97-r9: ~amd64 ~x86 ~x86-fbsd Keywords: grub-1.96: Keywords: grub-9999: ~$epkginfo grub-static Package: sys-boot/grub-static Herd: amd64 Maintainer: amd64 Location: /p/sys-boot/grub-static Keywords: grub-static-0.96-r1: Keywords: grub-static-0.97: Keywords: grub-static-0.97-r6: amd64 Keywords: grub-static-0.97-r9: -* ~amd64 ~x86 ~$ So try either grub or grub-static-0.97-r9. **ALSO**NOTE** When you upgrade grub(-static) using portage (or other Gentoo PM), it installs in the system but does **NOT** install to the MBR or wherever. You must do that after the upgrade, following the elog instructions spit out by the ebuild or otherwise handling it as you normally do. If you fail to do so, the version in the MBR remains the old one, which may or may not continue to work with what's in /boot. It's thus possible you could leave your system unbootable (well, except from rescue disk, etc) if you don't follow the MBR upgrade procedure, or, more likely with a simple revision update, it'll be bootable but you'll be using partly or entirely the old version, not the upgrade, and thus won't get the fixes in the upgrade. So, before you upgrade grub at all, ensure you have a (tested working) rescue disk or similar solution in case something goes wrong with the upgrade. Then when you upgrade, after doing the normal package upgrade, verify that what exists in /boot matches what exists in /lib/grub/i386-pc/* (the ebuild will try to mount /boot and update that if it can, but may fail under certain conditions). Finally, use grub-install or similar procedure to install to the MBR (or wherever else you have it installed if not the MBR), thus upgrading the actual first-stage boot module to match what's now on /boot and in /lib/ grub. Once you finish upgrading (all the way) to 0.97-r9, if the changelog entries are correct and you haven't hit a different bug, you should have no further issues with too large kernel images. For more information, see the package changelogs and the bugs they refer to. (According to the changelog, -r8 fixed most of the bugs, -r9 apparently simply added ext4 support, but while you're upgrading you might as well get it all.) -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman