Red Hat Bugzilla – Bug 53679
mkinitrd 3.2.6-1 not backwards compatible with 2.2.19-7.0.8 kernel
Last modified: 2007-04-18 12:37:08 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.4.3-12smp i686)
Description of problem:
It appears as if mkinitrd-3.2.6-1 won't build a usable initrd for the
Version-Release number of selected component (if applicable):
Steps to Reproduce:
- Upgrade mkinitrd to 3.2.6-1
- Install 2.2.19-7.0.8 kernel rpm. Build initrd.
- Reboot into 2.2.19. Boot fails at pivot_root:
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 38
- Downgrade to mkinitrd-2.6-1 and retry.
- Everything's hunky-dory.
Here is some additional puzzling info. Mkinitrd-3.2.6-1 works fine for me
with 2.2.16-22 and all the 2.4.x kernels I tried. So, it is just the
2.2.19 based errata kernel that flunks.
I don't think this is a major problem. The only people who will get caught
are those who do a clean install of 7.2 and then want to install the 7.0
We got hit by this too.
IMO, it is important to be able to provide backward-compatibility via a switch
because there will be valid reasons for installing 2.2. w/ initrd on RHL7
systems; IMO, this
is much better than having to install RHL7 if you want to play with 2.2.
So raising severity.
do you know what's broken? is it ext3 stuff?
The problem IMO is that mkinitrd only supports 2.4.x pivot-root mechanism,
the old one used for 2.2 is no longer supported.
Pivot-root isn't implemented for 2.2...
(I think bmatthews made some accident there, I would be very suprised if new
mkinitrd works with 2.2.16-22)
I just added --nopivot to mkinitrd, which skips the pivot stuff. This should
result in initrd's that work just like the ones from old versions.
*Please* test this change; I don't have any machines I can test this on very
easily. You can get the sources from:
report back here if it works.
I tested this by installing latest errata kernel from 7.0 on a 7.2 system. The
system had root-raid so
initrd was necessary.
With --nopivot, it worked nicely, thanks!
Two additional notes:
1) new mkinitrd conflicts with older kernels' /sbin/install-kernel; no problem.
2) mkinitrd must BuildPreReq dietlibc :-)
Glad it works...
#2 can't be done as RPM doesn't support platform dependent build requires.