2007-04-16, 07:34 PM
So, over the past while i have been working on getting a new kernel working on my system. The problem i was having is that the newer kernels i use are not loading the sata modules properly from the initrd images.
When trying to fix this i would run into the scnenario whereas, i reboot using the new kernel and if it kernel panics, i then have to file a ticket with my hosting provider to reboot the system and select the old kernel.
I have now found 2 ways around this that might be useful for anyone who does a lot of kernel testing.
1.) Booting once-only - (same as lilo -R)
In reference to [/url][url=http://www.gnu.org/software/grub/manual/gr...g-once_002donly]http://www.gnu.org/software/grub/manual/gr...g-once_002donly
in grub.conf, add the following line to the beginning.
default saved
If for example your grub.conf looks like the one i have below. This boots into the 2.6.20-1.2944 by default.
Code:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.20-1.2944.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.20-1.2944.fc6 ro root=LABEL=/ acpi=off
initrd /initrd-2.6.20-1.2944.fc6.img
title Fedora Core (2.6.20-FluKex.com)
root (hd0,0)
kernel /vmlinuz-2.6.20-FluKex.com ro root=LABEL=/ acpi=off
initrd /initrd-2.6.20-FluKex.com.img
If you want to have it so that 2.6.20-FluKex.com boots on next boot, run the following command from the console before rebooting.
echo "savedefault --default=1 --once" | grub --batch
then
reboot
Now, if you have a kernel that panics and need it to reboot if it panics. change your config and add the panic=# (# being seconds before auto reboot) to the kernel line. Example file below
Code:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.20-1.2944.fc6)
root (hd0,0)
kernel /vmlinuz-2.6.20-1.2944.fc6 ro root=LABEL=/ acpi=off panic=5
initrd /initrd-2.6.20-1.2944.fc6.img
title Fedora Core (2.6.20-FluKex.com)
root (hd0,0)
kernel /vmlinuz-2.6.20-FluKex.com ro root=LABEL=/ acpi=off panic=5
initrd /initrd-2.6.20-FluKex.com.img
so the order of operations on this are as follows.
1.) Add new kernel to grub.conf
2.) set default=# in grub.conf to the failsafe kernel (the one you want it to try if the other fails)
3.) run the following:
echo "savedefault --default=1 --once" | grub --batch
4.) reboot
This will try the flukex.com kernel, and if it panics, it will reboot and use the normal default kernel.
BLAM works for me.