summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2003-04-02 19:06:11 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2003-04-02 19:06:11 +0000
commit1c37b3c7aafa49a79d0308133023153542274746 (patch)
treed9e252af19b7d0c23b232e17aa33c12ceb991f81
parentfd88d964bbeee723dc2a7ecf60e33aec95dfcfaa (diff)
downloaddrakx-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.pl18
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";
+};