diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2003-04-02 19:06:11 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2003-04-02 19:06:11 +0000 |
commit | 1c37b3c7aafa49a79d0308133023153542274746 (patch) | |
tree | d9e252af19b7d0c23b232e17aa33c12ceb991f81 | |
parent | fd88d964bbeee723dc2a7ecf60e33aec95dfcfaa (diff) | |
download | drakx-1c37b3c7aafa49a79d0308133023153542274746.tar drakx-1c37b3c7aafa49a79d0308133023153542274746.tar.gz drakx-1c37b3c7aafa49a79d0308133023153542274746.tar.bz2 drakx-1c37b3c7aafa49a79d0308133023153542274746.tar.xz drakx-1c37b3c7aafa49a79d0308133023153542274746.zip |
Error scenario: When using a file for your / (a "loopback"), booting your newly
installed system will fail with a kernel panic with flashing keyboard lights
Why: The initrd needs to load the loop.o module to mount your / partition; but
since recently, loop.o depends on aes.o, and since mkinitrd doesn't handle
dependencies automatically and we didn't notice that change, we didn't update
mkinitrd accordingly
Solution: Format a floppy disk with a DOS filesystem (in Linux, you can use the
command "mkdosfs /dev/fd0"). Copy patch.pl to the floppy disk. Remove the floppy
and reboot using the Mandrake Linux 9.1 CD1 to do a CD-ROM installation. During
boot, press F1 at the splash screen, then place your floppy disk that contains
patch.pl in the floppy drive. At the prompt, type "patch", then follow the
installation as usual.
see bugzilla #3614
-rw-r--r-- | perl-install/patch/9.1/patch-loopback.pl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/perl-install/patch/9.1/patch-loopback.pl b/perl-install/patch/9.1/patch-loopback.pl new file mode 100644 index 000000000..d0f4185b3 --- /dev/null +++ b/perl-install/patch/9.1/patch-loopback.pl @@ -0,0 +1,18 @@ +use bootloader; +package bootloader; +log::l("PATCHING: fixing 9.1 aes.o missing in initrd for / on loopback"); + +*mkinitrd = sub { + my ($kernelVersion, $initrdImage) = @_; + + my $loop_boot = loopback::prepare_boot(); + + modules::load('loop'); + if (!run_program::rooted($::prefix, "mkinitrd", "--with=aes", "-v", "-f", $initrdImage, "--ifneeded", $kernelVersion)) { + unlink("$::prefix/$initrdImage"); + die "mkinitrd failed"; + } + loopback::save_boot($loop_boot); + + -e "$::prefix/$initrdImage"; +}; |