Absolutely no warranty - use at your own risk.
Since yaird is no longer available with Debian lenny, I consider this document obsolete.
If upgrading from etch to lenny and you are currently using yaird, you may have to "undo" this document and reinstall initramfs-tools.
Jun 18 2007. I did a fresh Debian Etch install on a system with an EIDE drive. Upon booting up I get:
Begin: Waiting for root file system... ...
and it stalls there (hangs). Eventually a BusyBox prompt comes up. It appears that
even though root was mapped to /dev/hda1 when I installed the system, GRUB (or something) now
wants to find root at /dev/hde1. If I repeatedly power down the system, occasionally
drive /dev/hda will enumerate instead of the nonexistent /dev/hde and the system will
boot. I also have another system that has a SATA drive where root was mapped to /dev/hde1.
After upgrading to an Etch kernel, that machine enumerates /dev/hde as /dev/hda
so it also will not boot. This is how I fixed both systems - YMMV. I would not attempt this on a RAID system,
it will likely leave you with an unbootable system.
When the GRUB menu appears I entered edit mode by pressing 'e'. Then down arrow to:
kernel /boot/vmlinuz-2.6.18-4-686 root=/dev/hde1 ro
Then 'e' to edit this. The arrow key was used to position the cursor so I could replace the "e"
in /hde1 with an "a". Then it was 'b' to boot. The system did come up. Once it came up I edited
/boot/grub/menu.lst and edited each incorrect entry I found, in my case replacing
each /dev/hde1 with /dev/hda1. I also edited /etc/fstab and did the same.
See what kernel we are using:
uname -r
I got: 2.6.18-4-686
See if we have needed modules for this kernel:
ls -l /lib/modules
I do:
drwxr-xr-x 3 root root 4096 2007-06-14 15:35 2.6.18-4-686
See if we have an initrd-image and other stuff for this kernel:
ls -l /boot
I do:
-rw-r--r-- 1 root root 70781 2007-05-09 16:14 config-2.6.18-4-686
drwxr-xr-x 2 root root 4096 2007-06-18 15:56 grub
-rw-r--r-- 1 root root 4488176 2007-06-18 14:36 initrd.img-2.6.18-4-686
-rw-r--r-- 1 root root 722037 2007-05-09 22:14 System.map-2.6.18-4-686
-rw-r--r-- 1 root root 1261213 2007-05-09 22:14 vmlinuz-2.6.18-4-686
Install Yaird:
apt-get update
apt-get install yaird
and remove initramfs-tools:
apt-get remove initramfs-tools
I suggest reading 'man yaird'
Use yaird to build a new initrd.img (after making a backup of the old one):
cp /boot/initrd.img-2.6.18-4-686 /boot/initrd.img-2.6.18-4-686-backup
mv /boot/initrd.img-2.6.18-4-686 /boot/initrd.img-2.6.18-4-686-backup2
yaird --output=/boot/initrd.img-2.6.18-4-686 2.6.18-4-686
Then you can reboot. Notice that the initrd.img that yaird creates is
much smaller that the one that update-initramfs makes. I'm sure this is
because yaird does not load every module known to man (it appears update-initramfs might).
I can't tell you whether this will be a problem for you or not. It appears configuration
files for yaird are in the /etc/yaird directory.
Other helpful links:
http://forums.debian.net/viewtopic.php?t=4703
http://www.debian.org/releases/etch/i386/release-notes/ch-information.en.html#s-upgrade-to-2.6
Gary V
mr88talent at yahoo dot com