Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Аналогично построена и секция «Linux». Здесь тоже имеется четыре подобные записи. Следует сделать только одну оговорку относительно директивы kernel. В Linux нет чёткого места в файловой системе для ядра. В старых дистрибутивах ядро находилось в корне файловой системы /vmlinuz. Именно на это ориентировались создатели документации на GRUB. Но сейчас, как мне кажется, ядро чаще хранится в директории /boot. Имя vmlinuz тоже уходит в прошлое. Сейчас можно встретить имя bzImage и другие. Все эти обстоятельства следует учесть при создании конфигурационного файла. В тексте title лучше оставить напоминание, где GRUB будет искать ядро. Так вы избежите многих недоразумений и неожиданностей.
Секция «Windows» устроена иначе. Это связано с тем, что в данном случае GRUB может взять на себя только функции первого загрузчика (MBR). Командой rootnoverify мы устанавливаем корневое устройство, но не монтируем его. Далее загружаем первый сектор (команда chainloader), в котором и содержится загрузчик. И в заключение делаем партицию активной (makeactive), DOS/Windows к этому не равнодушен.
Вообще-то по такой же схеме можно загружать и другие ОС. Например, загрузить FreeBSD, заменив только первый загрузчик, можно так:
title FreeBSD
rootnoverify (hd0,0)
chainloader +1
После выполнения этих команд GRUB передаст управление boot1-процедуре, и загрузка пойдёт по естественному для FreeBSD сценарию.
Чаще всего такие приёмы не оправданы, и лучше использовать все имеющиеся возможности GRUB, но бывают и исключения. Например, вы можете обновить Windows на машине с двумя ОС: Windows и Linux. При этом обновлении теряется только MBR-запись, но основной код LILO, находящийся за пределами MBR, цел. Зачастую LILO выполняет довольно сложные функции, например, подгружает initrd (с этим может справиться и GRUB). Возможно, LILO запускает ядро с опциями, которые вы просто забыли, или вам просто лень их снова набирать. Одним словом, вы потеряли MBR, но хотите запустить LILO, а не просто «сырое» ядро. Здесь-то вам и пригодится указанная возможность, надо только правильно указать партицию:
title LILO on hda2
rootnoverify (hd0,1)
chainloader +1
Если вы планируете загружать другие ОС, то рекомендую обратиться к документации на GRUB. Практически любая ОС имеет собственную специфику. Linux допускает использование команды initrd. Ядра NetBSD и OpenBSD не распознаются, если они скомпилированы не как a.out, а как ELF. Чтобы загрузить ELF-ядро, его тип следует указывать явно: