Esta não é a solução mais educada para este problema, mas funciona e mybe deve ser útil para outros, por isso descrevo aqui como resolvi o meu problema para ter um DOM capaz de o alterar automaticamente.
Dentro do linuxrc, o script do initrd, eu detecto qual dispositivo está disponível e baseado nesse resultado eu configurei a opção de inicialização padrão usada pelo grub
meu linuxrx eu gosto disso
#!/bin/ash
restart=0
mntdev=""
target="hda"
echo "--> check fdisk ${target} "
mount -t ext2 /dev/${target}1 /mnt/tmp
if [ -f /mnt/tmp/etc/slackware-release ]; then
echo "Found $target "
mntdev="/dev/${target}1"
olddef=$( cat /mnt/tmp/boot/grub/default )
if [ $olddef -ne 0 ]; then
echo "0" > /mnt/tmp/boot/grub/default
restart=1
fi
fi
umount /mnt/tmp
# ================================
if [ -z $dskroot ]; then
target="hdc"
echo "--> check fdisk ${target} "
mount -t ext2 /dev/${target}1 /mnt/tmp
if [ -f /mnt/tmp/etc/slackware-release ]; then
echo "Found $target "
mntdev="/dev/${target}1"
olddef=$( cat /mnt/tmp/boot/grub/default )
if [ $olddef -ne 1 ]; then
echo "1" > /mnt/tmp/boot/grub/default
restart=1
fi
fi
umount /mnt/tmp
fi
# ================================
if [ $restart -eq 1 ]; then
echo "Changed grub default : Rebooting PC "
echo "===================================="
sleep 2
mount -t ext2 $mntdev /mnt/tmp
chroot /mnt/tmp <<EOF
/sbin/reboot -f
EOF
fi
E dentro do menu grub, eu resermo as duas primeiras entradas, o 0 para o dispositivo hda e o 1 para o dispositivo hdc
default saved
title Linux-2.4.37.9_CCL_20130122 with INITRD hda pos 0
root (hd0,0)
kernel /boot/vmlinuz-2.4.37.9_CCL_20130122 ro root=/dev/hda1 console=ttyS0,9600 console=tty0 apm=off
initrd /boot/initrd-CCL.img.gz
title Linux-2.4.37.9_CCL_20130122 with INITRD hdc pos 1
root (hd0,0)
kernel /boot/vmlinuz-2.4.37.9_CCL_20130122 ro root=/dev/hdc1 console=ttyS0,9600 console=tty0 apm=off
initrd /boot/initrd-CCL.img.gz