From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020625 Description of problem: Multiple kernels fail to boot (e.g. 2.4.18-5.58) on both a Pentium 4 and an Athlon XP, with the read out Error 15: File not found. The kernels that do work all seem to have been installed before the problem started: rawhide kernels up to 2.4.18-6.55 on the Pentium 4 and 2.4.18-5 on the Athlon XP. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.Install or build a new kernel 2.boot 3.boot fails Actual Results: The read out that is given: root (hd0,0) Filesytem type is ext2fs, partition type 0x83 kernel /vmlinuz-2.4.18-5.58 ro root=/dev/hda2 [Linux-bzImage, setup=0x1400, size=0x111923] initrd /boot/initrd-2.4.18-5.58.img Error 15: File not found Expected Results: The kernels should work fine. Additional info: I originally thought that it was a hard ware problem on the Athlon, since it is new and built by me. However, the problem occurs on the Pentium 4 which has been working fine for months. I do not think that this is actually a problem with GRUB, but I do not know where else to look. I have read about the Grub error and it was not very useful (and I do not think that the file that it thinks is missing is actually missing). Additionally I am baffled that the old kernels work fine on both machines, but the new kernels do not. A stock 2.4.17 kernel also fails. Ordinarily I would not care that much, but I am trying to run openMosix and this requires installing a new kernel.
Based on the error, I'm guessing that you have /boot as a separate partition -- you need to specify the initrd as /initrd-foo instead of /boot/initrd-foo because grub's root is set such that it's already looking in the /boot partition. Does this solve the problem?
Beautiful. Such a simple solution. Everything works perfectly now. However, souldn't the installer script for the kernel RPM packages be changed to install the initrd images without the "/boot" part. I thought that the default installation creates a boot partition separate from the root partition?
They should be properly detecting whether or not you have a separate /boot or not -- what were the contents of your /boot/grub/grub.conf file and what version of the mkinitrd package do you have installed?
I am using mkinitrd 3.4.12-1, which looks like the newest version of the package. My /boot/grub/grub.conf file: # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/hda2 # initrd /initrd-version.img #boot=/dev/hda default=2 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Linux (2.4.18-5.58) root (hd0,0) kernel /vmlinuz-2.4.18-5.58 ro root=/dev/hda2 initrd (/boot)/initrd-2.4.18-5.58.img title Red Hat Linux (2.4.18-5) root (hd0,0) kernel /vmlinuz-2.4.18-5 ro root=/dev/hda2 initrd /initrd-2.4.18-5.img title Red Hat Linux (2.4.18-3) root (hd0,0) kernel /vmlinuz-2.4.18-3 ro root=/dev/hda2 initrd /initrd-2.4.18-3.img title Red Hat Linux (2.4.17-openmosix2) root (hd0,0) kernel /vmlinuz-2.4.17-openmosix2 ro root=/dev/hda2 initrd (/boot)/initrd-2.4.17-openmosix2.img The boots in parentheses were inserted by the script/mkinitrd and prevented those kernels from booting. When the "/boot" was eliminated the kernels were able to boot up perfectly.
mkinitrd was broken in rawhide for this at one point but has since been fixed.