В очередной раз поковырялся с Grub'ом.
Уяснил для себя одну специфическую вещь (и хочу её зафиксировать).
GRUB имеет одну команду оригинальную команду - drivemap.
Суть её состоит в том, что некое имеющееся устройство отображается на другое устройство.
Но только после команды boot и начала загрузки!
Скажем, пусть у нас имеются диски (hd0), (hd1) и (hd2) (я употребляю синтаксис GRUB).
На устройстве (hd1) у нас имеется майкрософтовская система, которая может загрузиться только если этот диск будет самым первым, т.е. (hd0). Для этого необходимо исполнить:
drivemap (hd1) (hd0)
Получается, что синтаксис команды подобен команде копирования - мы как-бы копируем первый операнд во второй.
Ещё раз отмечу, что до выполнения команды boot или исполнения загрузки другим путём (отработка меню, F10 в консоли) - отображение дисков работать не будет. Т.е. при выполнении команды ls в консоли GRUB все диски остануться на своих местах.
Из этого следует, что все остальные команды загрузки GRUB должны писаться в прежних обозначениях.
Т.е., в описанном примере последовательность команд загрузки будет выглядеть вот так:
drivemap (hd1) (hd0)
set root=(hd1)
chainloader +1
boot
Из этого, кстати, становится понятным "странный" синтаксис отображения типа:
drivemap (hd1) (hd0)
drivemap (hd0) (hd1)
Здесь мы не "гоняем" (hd1) на (hd0) и обратно - мы обмениваем диски (hd1) и (hd0) местами.
Того же эффекта можно достичь опцией -s (swap):
drivemap -s (hd1) (hd0)
И ещё нюанс.
Команда drivemap, запущенная в консоли без параметров - или с опцией -l (list) - выведет на экран список отображений. Следует отметить, что список выводится в порядке, обратном задаваемому в команде. Скажем для drivemap (hd1) (hd0) будет выведено что-то вроде:
Disk #0 -------------> hd1
Такое поведение интуитивно неочевидно, да и стрелочка как-бы сбивает с толку - но следует внимательно читать заголовки. В левой колонке указываются номера дисковых устройств при загрузке ОС, в правой - номера дисковых устройств, какими они будут для BIOS'а GRUB'а.
P.S. Вышесказанное гарантированно для GRUB 1.99.