aso

Грубые игры

Apr 28, 2013 23:45

В очередной раз поковырялся с 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.

профессиональное, компьютер, программистское, линух

Previous post Next post
Up