Натолкнулся на такой глюк при установке XUbuntu и KUbuntu на внешний диск (USB HDD). Возможно это ваш случай.
Ошибка в том что, при установке внешний диск является /dev/sdc, и загрузочный раздел соответственно /dev/sdc1 (sda - встроенный диск, sdb - LiveUSB, с которой ставится система). Так вот во время инсталляции в конфиг GRUBа так все и прописывается!!!! И когда я выдергиваю флешку, и гружусь с внешнего HDD то он становится /dev/sd
b !!!!

Но ядро не через UUID диска грузится, а почему-то через прямой путь (/dev/sdc1).

Почему инсталлятор так прописывает - не понятно, потому, что если загрузится в систему поправив параметры загрузки ядра и сделать update-grub, то в кофиг пропишутся именно UUIDы загрузочного диска. Это явный глюк инсталлятора, не искал, но уверен он уже есть на ланчпаде.
Что делать:
В меню GRUB выбрать пункт загрузки и нажать "е" - откроется редактор параметров загрузки ядра - там вы увидите строчку
linux /boot/vmlinuz-2.6.32-31-generic root=..... ro
Вот в нее, за нужно вписать root=/dev/sdXY, где sdXY - верный путь к загрузочному разделу. После этого жмем F10 и загружаемся. После того как система успешно загрузится, первым делом, идем в терминал и выполняем
sudo update-grub
Все. В конфиг груба пропишется UUID загрузочного диска в параметры загрузки ядра и система будет грузится без привязки к нумерации дисков в системе.
Пользователь решил продолжить мысль 17 Мая 2011, 15:39:04:
Вот кстати и баг на ланчпаде
https://bugs.launchpad.net/ubuntu/+source/grub-installer/+bug/384633Если это ваш случай - стоит отметится, что он вас тоже затронул.