summaryrefslogtreecommitdiffstats
path: root/perl-install/patch/9.1/patch-loopback.pl
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 /perl-install/patch/9.1/patch-loopback.pl
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
Diffstat (limited to 'perl-install/patch/9.1/patch-loopback.pl')
-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";
+};