libata_switchover 20100110 rworkman /* Thanks to David Somero, Old_Fogie, gegechris99, and GazL for valuable feedback and enhancements to this document. */ This is written to provide one of several ways to retain a working system after upgrading from Slackware 13.0's kernel to the newer kernel in -current (which removes support for the "old" ide subsytem, thereby causing all /dev/hd* devices to have /dev/sd* names. 1. Upgrade the kernel and kernel-modules packages normally. 2. Edit /etc/fstab to reflect the change from hd* to sd*. If you have multiple SATA devices, and especially if you have some of both hd* and sd* devices present already, then you're basically going to be playing a guessing game right now, and you probably want to consider using some of the persistent symlinks in /dev/disk/by-*/ instead of raw device nodes. * If you are using one of the generic kernels (requiring an initrd), then use the sd* name for the root device when creating the image. * You will almost surely want to remove the udev rules file for cdrom devices (it will be regenerated on the next boot with correct information reflecting the new libata stuff): # rm -f /etc/udev/rules.d/70-persistent-cd.rules * Speaking of optical devices, if you have multiple disk drives and an optical drive using the old ide subsystem, then be aware that the optical drive will get a /dev/sr* name instead of /dev/sd* -- this is relevant because you might see something like this (if your optical drive is currently /dev/hdb): Old Name --> New Name /dev/hda /dev/sda /dev/hdb /dev/sr0 /dev/hdc /dev/sdb 3. Run lilo. Note that you have made no edits at all to it yet, unless you needed to edit it for the new kernel. Specifically, do not make any changes with respect to hd* --> sd*. 4. Reboot. At the lilo prompt, press and add an append for the real root device (which will no longer be /dev/hd*). For example, if the old root device was /dev/hda1, and it will now be /dev/sda1, and the name of your kernel image is "Linux" then you would do this: Linux root=/dev/sda1 5. Once the system comes back up, then fix /etc/lilo.conf, run lilo, and reboot again to be sure everything is correct.