загрузчик GRUB

Grub-customizer  - загрузчик линукс удобно редактировать GUI 


 Grub-customizer - deb-пакетGrub-customizer можно установитьиспользуя программу GDEBI


Установить программу можно через терминал:


sudo add-apt-repository ppa:danielrichter2007/grub-customizer 

sudo apt-get update 

sudo apt-get install grub-customizer


 


Создаём GRUBable CD за пять минут

Чтобы установить GRUB на CD, нужно совсем немного. Первым делом раздобудьте бинарный дистрибутив GRUB. Скорее всего, он уже есть или на вашем диске, или среди дистрибутивов. (Как скомпилировать GRUB самостоятельно, мы ещё обсудим.) Найдите в нём файл-образ stage2_eltorito. Всё, больше от GRUB вам ничего не понадобится.

Создаём конфигурационный файл

Теперь создадим файл-меню. Предлагаю рассмотреть следующий вариант:

default 0

timeout 300

color light-green/black black/green

 

# FreeBSD

title FreeBSD /dev/ad0s1a

root (hd0,0,a)

kernel /boot/loader

title FreeBSD /dev/ad0s2a

root (hd0,1,a)

kernel /boot/loader

title FreeBSD /dev/ad0s3a

root (hd0,2,a)

kernel /boot/loader

title FreeBSD /dev/ad0s4a

root (hd0,3,a)

kernel /boot/loader

 

# Linux

title  Linux (/boot/vmlinuz) /dev/hda1

root (hd0,0)

kernel /boot/vmlinuz root=/dev/hda1

title Linux (/boot/vmlinuz) /dev/hda2

root (hd0,1)

kernel /boot/vmlinuz root=/dev/hda2

title Linux (/boot/vmlinuz) /dev/hda3

root (hd0,2)

kernel /boot/vmlinuz root=/dev/hda3

title Linux (/boot/vmlinuz) /dev/hda4

root (hd0,3)

kernel /boot/vmlinuz root=/dev/hda4

 

# Windows

title Windows

rootnoverify (hd0,0)

chainloader +1

makeactive

 

# halt/reboot

title REBOOT

reboot

title HALT

halt

Я не буду здесь даже пытаться пересказать документацию на GRUB. Ограничусь только краткими комментариями.

Самые первые директивы задают глобальные параметры: default – секция, загружаемая по прошествии тайм-аута; timeout – тайм-аут в секундах (его в данном случае лучше сделать побольше, чтобы было время сориентироваться); color – цвета, их можно было оставить «умолчательными», но лично мне нравится зелёный. Кроме того, использованиеhttps://sites.google.com/a/xdeb.ru/it/proekty/ubuntu---kak-rabocaa-stancia/zagruzcik-grub/grub_customizer.zip?attredirects=0&d=1https://sites.google.com/a/xdeb.ru/it/proekty/ubuntu---kak-rabocaa-stancia/zagruzcik-grub/grub_customizer.zip?attredirects=0&d=1 необычного цвета позволит вам быстро сориентироваться, если вы загрузитесь с компакт-диска по ошибке или случайно.

Секция «FreeBSD» состоит из четырёх блоков, каждый из которых позволяет загрузить ОС с одной из четырёх партиций (это придаст нашему диску некоторую универсальность). Директива title задаёт заголовок, который будет фигурировать в меню. Root задаёт корневое устройство. GRUB нумерует устройства от нуля и партиции тоже от нуля(!). Команда kernel загружает и выполняет загрузчик ядра FreeBSD.

Аналогично построена и секция «Linux». Здесь тоже имеется четыре подобные записи. Следует сделать только одну оговорку относительно директивы kernel. В Linux нет чёткого места в файловой системе для ядра. В старых дистрибутивах ядро находилось в корне файловой системы /vmlinuz. Именно на это ориентировались создатели документации на GRUB. Но сейчас, как мне кажется, ядро чаще хранится в директории /boot. Имя vmlinuz тоже уходит в прошлое. Сейчас можно встретить имя bzImage и другие. Все эти обстоятельства следует учесть при создании конфигурационного файла. В тексте title лучше оставить напоминание, где GRUB будет искать ядро. Так вы избежите многих недоразумениhttps://sites.google.com/a/xdeb.ru/it/proekty/ubuntu---kak-rabocaa-stancia/zagruzcik-grub/grub_customizer.zip?attredirects=0&d=1й и неожиданностей.

Секция «Windows» устроена иначе. Это связано с тем, что в данном случае GRUB может взять на себя только функции первого загрузчика (MBR). Командой rootnoverify мы устанавливаем корневое устройство, но не монтируем его. Далее загружаем первый сектор (команда chainloader), в котором и содержится загрузчик. И в заключение делаем партицию активной (makeactive), DOS/Windows к этому не равнодушен.

Вообще-то по такой же схеме можно загружать и другие ОС. Например, загрузить FreeBSD, заменив только первый загрузчик, можно так:

title FreeBSD

rootnoverify (hd0,0)

https://sites.google.com/a/xdeb.ru/it/proekty/ubuntu---kak-rabocaa-stancia/zagruzcik-grub/grub_customizer.zip?attredirects=0&d=1chainloader +1

После выполнения этих команд GRUB передаст управление boot1-процедуре, и загрузка пойдёт по естественному для FreeBSD сценарию.

Чаще всего такие приёмы не оправданы, и лучше использовать все имеющиеся возможности GRUB, но бывают и исключения. Например, вы можете обновить Windows на машине с двумя ОС: Windows и Linux. При этом обновлении теряется только MBR-запись, но основной код LILO, находящийся за пределами MBR, цел. Зачастую LILO выполняет довольно сложные функции, например, подгружает initrd (с этим может справиться и GRUB). Возможно, LILO запускает ядро с опциями, которые вы просто забыли, или вам просто лень их снова набирать. Одним словом, вы потеряли MBR, но хотите запустить LILO, а не просто «сырое» ядро. Здесь-то вам и пригодится указанная возможность, надо только правильно указать партицию:

title LILO on hda2

https://sites.google.com/a/xdeb.ru/it/proekty/ubuntu---kak-rabocaa-stancia/zagruzcik-grub/grub_customizer.zip?attredirects=0&d=1rootnoverify (hd0,1)

chainloader +1

Если вы планируете загружать другие ОС, то рекомендую обратиться к документации на GRUB. Практически любая ОС имеет собственную специфику. Linux допускает использование команды initrd. Ядра NetBSD и OpenBSD не распознаются, если они скомпилированы не как a.out, а как ELF. Чтобы загрузить ELF-ядро, его тип следует указывать явно:

kernel --type=netbsd /boot/netbsd-elf

ċ
grub_customizer.zip
(1823k)
Виктор Евдокимов,
14 июн. 2016 г., 12:03
Comments