From edd66ab64836b10192a182421996464ffe42df3f Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Fri, 1 Aug 2008 21:53:51 +0200 Subject: [PATCH] Add an emergency ramdisk with all storage drivers. --- config/grub/grub.conf | 13 +++++++++---- config/rootfiles/updater/update.sh | 7 +++++++ src/install+setup/install/main.c | 9 +++++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/config/grub/grub.conf b/config/grub/grub.conf index 814916344a..3cca7c046d 100644 --- a/config/grub/grub.conf +++ b/config/grub/grub.conf @@ -24,23 +24,28 @@ title IPFire (vesafb 1024x768, acpi=off) kernel /vmlinuz-KVER-ipfire-smp root=ROOT rootdelay=10 panic=10 vga=791 acpi=off MOUNT initrd /ipfirerd-KVER-smp.img savedefault 3 -title IPFire SMP/HT disabled +title IPFire - Single CPU root (hd0,0) kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 MOUNT initrd /ipfirerd-KVER.img savedefault 4 -title IPFire SMP/HT disabled (vesafb 1024x768) +title IPFire - Single CPU (vesafb 1024x768) root (hd0,0) kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 vga=791 MOUNT initrd /ipfirerd-KVER.img savedefault 5 -title IPFire SMP/HT disabled (acpi=off) +title IPFire - Single CPU (acpi=off) root (hd0,0) kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 acpi=off MOUNT initrd /ipfirerd-KVER.img savedefault 6 -title IPFire SMP/HT disabled (vesafb 1024x768, acpi=off) +title IPFire - Single CPU (vesafb 1024x768, acpi=off) root (hd0,0) kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 vga=791 acpi=off MOUNT initrd /ipfirerd-KVER.img savedefault 7 +title IPFire - Single CPU (emergency - all storage drivers) + root (hd0,0) + kernel /vmlinuz-KVER-ipfire root=ROOT rootdelay=10 panic=10 MOUNT + initrd /ipfirerd-KVER-emergency.img + savedefault 8 diff --git a/config/rootfiles/updater/update.sh b/config/rootfiles/updater/update.sh index 0d37940f99..b89b701759 100755 --- a/config/rootfiles/updater/update.sh +++ b/config/rootfiles/updater/update.sh @@ -79,6 +79,13 @@ echo "title Old Kernel" >> /boot/grub/grub.conf echo " configfile /grub/grub-old.conf" >> /boot/grub/grub.conf sed -i "s|/vmlinuz-ipfire|/vmlinuz-$OLDKERNEL-ipfire|g" /boot/grub/grub-old.conf # +# Made emergency - initramdisk +# +cp -f /etc/mkinitcpio.conf /etc/mkinitcpio.conf.org +sed -i "s| autodetect | |g" /etc/mkinitcpio.conf +mkinitcpio -k $KVER-ipfire -g /boot/ipfirerd-$KVER.img +cp -f /etc/mkinitcpio.conf.org /etc/mkinitcpio.conf +# # Made initramdisk # echo diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index 852819b176..fb394ce0c9 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -503,6 +503,15 @@ int main(int argc, char *argv[]) replace("/harddisk/boot/grub/grub.conf", "KVER", KERNEL_VERSION); + /* Build the emergency ramdisk with all drivers */ + mysystem("cp -f /harddisk/etc/mkinitcpio.conf /harddisk/etc/mkinitcpio.conf.org"); + + replace("/harddisk/etc/mkinitcpio.conf", " autodetect ", " "); + snprintf(commandstring, STRING_SIZE, "/sbin/chroot /harddisk /sbin/mkinitcpio -g /boot/ipfirerd-%s-emergency.img -k %s-ipfire", KERNEL_VERSION, KERNEL_VERSION); + runcommandwithstatus(commandstring, ctr[TR_BUILDING_INITRD]); + + mysystem("cp -f /harddisk/etc/mkinitcpio.conf.org /harddisk/etc/mkinitcpio.conf"); + /* mkinitcpio has a problem if ide and pata are included */ if ( scsi_disk==1 ) { /* Remove the ide hook if we install sda */ -- 2.39.2