It's me again!
I remembered one more trick. If you use "initrd", it will always mount "/dev/hda5" even if you make all the changes in grub. In this case you need to create another initrd containing the proper device and script to boot when the partition number changes.
I would suggest you the following steps before the boot trial:
- uncompress the initrd to a temp file, mount it and cd to it:
gunzip -c /boot/initrd-XXX >/tmp/initrd.tmp
mount -o loop /tmp/initrd.tmp /mnt/tmpinitrd
, where "/boot/initrd-XXX" is your real initrd.
- Edit the file "linuxrc", changing all partition references from "hda5" to "hda6".
- copy the "hda6" device to this image or create it:
cp -a /dev/hda6 /mnt/tmpinitrd/dev
- unmount it:
- compress it to create a new initrd
gzip -c /tmp/initrd.tmp >/boot/inirtd-hda6.img
Now, edit grub, creating a new kernel entry, pointing to hda6 and giving this inirtd.