Grub, BIOS и порты SATA

Столкнулся вчера с интересной проблемой. Чуть мозг не сломал. А дело вот в чём. Есть у меня система с мультизагрузкой, где Gentoo стоит на отдельном винте. И, сам не знаю, отчего (то ли винт подкидывалс потом, толи еще что - не упомнишь всего), поставил я Grub в MBR жесткого с виндой. Т.е. всё работало так:

(SATA-1, в BIOS - 1й) /dev/sda  - Win7 + Grub
(SATA-2, в BIOS - 2й) /dev/sdb  - торренты
(SATA-3, в BIOS - 3й)/dev/sdc  - Gentoo    (sdc1 - /boot, sdc2 - /, sdc5 - /home)

Но вот сыпанулся слегка мой sda, и решил я перенести систему на SSD. Сказано - сделано. Подключен четвертым твердотельник, хотя и не без проблем - мать подкинула хлопот с двухслотовым видео. И вот тут начались проблемы с порядком устройств. Дело в том, что пришлось поперетыкать винты на другие порты, системник был закрыт и задвинут. Ну, думаю, не беда - настрою в Grub. Вот тут-то всё и началось. Итак, исходные данные:

(SATA-1, в BIOS - 2й) /dev/sda  - старый винт
(SATA-2, в BIOS - 1й) /dev/sdb  - новый SSD, куда я ставлю Grub
(SATA-3, в BIOS - 4й)/dev/sdc  - торренты
(SATA-4, в BIOS - 3й)/dev/sdd  - Gentoo    (sdd1 - /boot, sdd2 - /, sdd5 - /home)

Загрузился с флешки, за chroot-ился на Gentoo, поправил menu.lst: поставил root(hd3,0) - раздел /boot, поставил корневой раздел в опции ядра root=/dev/sdd2. Откорректировал fstab.

Ставлю GRUB:
grub --recheck --device-map /boot/grub/device.map
root (hd3,0)
setup(hd1) - MBR нового винта.

Загрузка: не может примонтировать партицию /boot (???)

После получаса разбирательств выясняется, что grub ориентируется на порядок винтов в BIOS, но монтирование партиции после загрузки ядра уже ориентируется на "реальные" порты SATA на матери.

Решение пришло на ум простое: поставить винт с Gentoo в BIOS четвертым, чтобы его порядковый номер соответствовал порту SATA.

Загрузка... и error 17. Вот тут уже я растерялся, и дальше пошел метод проб и ошибок. В итоге, вернул порядок винтов в BIOS на прежний, показанный выше, а в menu.lst сделал так:

root(hd2,0)
kernel .... root=/dev/sdd2

Вот так оно и заработало. Но почему??

Вопрос, который меня мучает до сих пор: почему GRUB не смог загрузиться, когда /dev/sdd реально был и в BIOS четвертым, и подключен к четвортому порту ??? Grub был успешно поставлен
root (hd3,0)
setup(hd1)

device.map переписан корректно за счет --recheck.
В ядре было - root(hd3,0) и kernel root=/dev/sdd2

Всё было логично.

Подскажите, пожалуйста, где копать. У меня идеи закончились.

Про копать не подскажу. Но

Про копать не подскажу.
Но переход на использование uuid'ов явно должен спасти вождя мирового пролетариата.

:wq
--
Live free or die

Anarchist написал(а): Про

Anarchist написал(а):
Про копать не подскажу.
Но переход на использование uuid'ов явно должен спасти вождя мирового пролетариата.

Да это понятно =) uuid - он и в Африке uuid, в какой порт не втыкай... Но сам факт интересен.

Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист

Тебя не будут мучить эти

Тебя не будут мучить эти вопросы на которые ты уже в принципе ответил
Просто в grub используй команду device, или сделай все тоже самое но поправь карту device.map сам и без --recheck

И если ты не хочешь пользоваться uuid, значит у тебя скорее всего нет initrd, следовательно в твоем случае uuid не спасет вождя мирового пролетариата

taho написал(а): Тебя не

taho написал(а):
Тебя не будут мучить эти вопросы на которые ты уже в принципе ответил
Просто в grub используй команду device, или сделай все тоже самое но поправь карту device.map сам и без --recheck

И если ты не хочешь пользоваться uuid, значит у тебя скорее всего нет initrd, следовательно в твоем случае uuid не спасет вождя мирового пролетариата

Карту правил, расставляя устройства руками - те же проблемы, что и были. В карту писал устройства так, как они подключены к SATA-портам.

initrd у меня есть, но там только splash.

Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".