Re: Upgrading Sarge to Etch - failing to boot new kernel
I've tried the uuid approach - the effect is the same - 2.6.18 runs,
2.6.26. But I managed to find the real issue. MILO fails to load the
initrd image: "initdisk too large, would overwrite kernel.", apparently
the same issue as described here:
the best is to not use the (I call it "deprecated") old-style linux device names. Use /dev/disk/by-uuid/.... for the specification of the root filesystem (each filesystem has a unique ID assigned on creation). Alternatively assign a name to the file system using tune2fs/e2label and specify as /dev/disk/by-name/...., so it has a nice name. The management of the symbolic links in /dev is done by UDEV which is booted by the initrd.
Here is my aboot config of the kernel line on my AlphaStation (should be similar with MILO):
0:2/vmlinuz ro initrd=/initrd.img root=/dev/disk/by-label/root
These directory listings are dynamically created by UDEV, so you should prefer these ones. Recent installations of Ubuntu (not sure if also Debian) automatically use them:
thetaphi@alpha:~$ ls -l /dev/disk/by-label/ insgesamt 0 lrwxrwxrwx 1 root root 10 8. Jun 07:27 boot -> ../../sda2 lrwxrwxrwx 1 root root 10 8. Jun 07:27 root -> ../../sdb1
thetaphi@alpha:~$ ls -l /dev/disk/by-uuid/ insgesamt 0 lrwxrwxrwx 1 root root 10 8. Jun 07:27 09311049-3762-4d4d-877e-a4b02a4db4f1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 8. Jun 07:27 b8c0bb84-297a-44e5-b83e-d7aa1e352248 -> ../../sda2
If you have multiple network cards it's also a good idea to assign static names using UDEV configuration based on their MAC address, ethX is ugly :-)
So, the upgrade to Lenny went without problems. It also installed
automatically the 2.6.26. The problem with 2.6.26 is, it panics because it can't
find my SCSI drive (the 2.6.18 still boots fine). It will print the message to add
the correct 'root' parameter, then the available partitions message, after
which it doesn't print any. I assume something has changed in the order
things are initialized? I found this:
Tried mv /etc/rcS.d/S40hotplug /etc/rcS.d/S25hotplug but it didn't work
(neither proceeds further nor prints any available partitions). I also know,
that IDE drives where moved from hda... to sda..., so I expect to find what
previously was /dev/sdb7 at /dev/sdf7, but setting this as root does not help.
Any clue what should be done now?
I took a look at MILO source and it seems the LOADER_AT in Makefile
should be changed (the image has to fit between the kernel and LOADER_AT
address, at least that's what I understood). But there's a comment, that
other code depends on it, so I won't even try to touch this. The other
solution would be to build a custom smaller kernel, but this will have
to wait until I have more time.
Anyway, thanks for help.