Администрирование FreeBSD, Linux, ... Ubuntu Grub2 Sat, October 05 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Ubuntu Grub2 Печать
Добавил(а) microsin   

GRUB 2 это загрузчик (boot loader) и менеджер управления загрузкой по умолчанию начиная с версии 9.10 (Karmic Koala). При старте компьютера GRUB 2 либо показывает меню и ждет ввода пользователя, либо автоматически передает управление ядру операционной системы. GRUB 2 произошел от GRUB (GRand Unified Bootloader). Он был полностью переписан для повышения гибкости и производительности.

В этом руководстве (перевод документации [1]) описано поведение GRUB 2 версии 1.98 и более новой. Устаревший GRUB (версии 0.97) будет упоминаться просто как GRUB. Чтобы определить вашу версию, используйте команду grub-install -V. Grub версии 1.99 стал загрузчиком по умолчанию на Ubuntu 11.04 (Natty Narwhal), и в нем были введены некоторые основные изменения в содежимом файла Grub. Это руководство раскрывает использование Grub 1.98, релиза Grub в Ubuntu 10.04 LTS (Lucid Lynx) и Grub 1.99, встроенный в Ubuntu 12.04 LTS (Precise Pangolin). Содержимое, отражающие поведение других версий Grub 2 будет упомянуто в соответствующем разделе.

Основные улучшения GRUB 2 по сравнению с оригинальным GRUB включают:

1. Поддержку скриптов с операторами условного перехода и функциями.
2. Динамическая загрузка модуля.
3. Rescue mode.
4. Пользовательские меню.
5. Темы.
6. Поддержка графического меню загрузки и улучшенный функционал заставки.
7. Непостредственная загрузка образов LiveCD ISO с жесткого диска.
8. Новая структура конфигурационного файла.
9. Поддержка платформы, не относящейся к x86 (такой как PowerPC).
10. Универсальная поддержка для идентификаторов UUID (загрузка не только для Ubuntu).

Меню по умолчанию GRUB 2 будет выглядеть знакомым для пользователей GRUB, но в глубине много значительных отличий.

1. На новая установке Ubuntu 9.10 или более новой версии, когда больше нет установленных операционных систем, GRUB 2 будет сразу переходить к приглашению логина или выводить рабочий стол (Ubuntu Desktop), без вывода меню загрузки.
2. Долгое удержание правого SHIFT при загрузке отобразит меню. В некоторых случаях нажатие клавиши ESC также может показать меню.
3. Нет файла /boot/grub/menu.lst, он заменен на /boot/grub/grub.cfg.
4. Теперь нет "/find boot/grub/stage1" на grub prompt. Stage 1.5 была убрана.
5. Основным файлом конфигурации Grub 2, нормально размещенным в каталоге /boot/grub, является grub.cfg. Этот файл является результатом работы нескольких скриптов, и он не должен редактироваться напрямую.
6. grub.cfg перезаписывается определенными пакетами обновления Grub 2, каждый раз при добавлении или удалении ядра (kernel), или когда пользователь запускает update-grub.
7. Список меню для доступных ядер Linux автоматически генерируется при запуске update-grub.
8. Пользоватеь может создать свой файл, в котором находятся его пункты меню. Этот файл не будет перезаписан. По умолчанию пользовательский файл с именем 40_custom доступен в папке /etc/grub.d.
9. Основной конфигурационный файл для изменения настроек отображения меню называется grub, и по умолчанию находится в папке /etc/default.
10. Существует несколько файлов для конфигуирования меню - упомянутый выше /etc/default/grub, и все файлы в директории /etc/grub.d/.
11. Изменена нумерация разделов. Первый раздел теперь 1, а не 0. Первое устройство/привод (device/drive) все еще по умолчанию hd0 (это не поменялось). Эти назначения могут быть при необходимости изменены в файле device.map, который находится в папке /boot/grub.
12. При выполнении update-grub выполняется поиск других операционных систем, таких как Windows. Найденные операционные системы будут помещены в меню Grub 2.
13. Изменения, сделанные в конфигурационных файлах, не вступят в силу, пока не будет выполнена команда update-grub.

Пользователи, у которых все еще установлен загрузчик Grub 0.97 на их операционной системе Ubuntu, могут произвести обновление до GRUB 2 путем установки поддерживаемых в настоящее время релизов Ubuntu, или путем разрешения репозиториев, которые содержать GRUB 2 пакет grub-pc.

За дополнительной информацией и инструкциями обратитесь к документации и Grub2/Upgrading [2].

Структура файлов. В GRUB 2 была полностью переработана иерархия файлов и директорий. Основные папки GRUB 2 включают /etc/grub.d, где хранятся основные скрипты GRUB 2, и /boot/grub, где находятся модули GRUB 2 и файл меню (grub.cfg). Пользовательские кастомизации нормально выполняются файлом /etc/default/grub (нужны права sudo).

Описание основных папок и файлов можно найти в разделе "File Structure" на странице документации Grub2/Setup [3].

[Конфигурирование GRUB 2]

Изменения конфигурации обычно вносятся в файл /etc/default/grub и в пользовательские сценарии, расположенные в файле /etc/grub.d. Никакие изменения в меню GRUB 2 не вносятся до тех пор, пока команда update-grub не будет запущена с правами root (через sudo). Эта команда запускает сценарии конфигурации GRUB 2 и обновляет файл /boot/grub/grub.cfg.

Описания опций GRUB 2 и способов их изменения представлены в разделе "Configuring GRUB 2" на странице документации Grub2/Setup [3].

[Поведение экрана загрузки]

GRUB 2 загружается до любой операционной системы. Его модульные компоненты загружаются по мере необходимости. Поведение экрана меню в основном определяется настройками в /etc/default/grub. Руководство по формату настроек для каждой опции см. в разделе "Configuring GRUB 2" документации [3].

Начальные умолчания:

1. Если никакая другая операционная система не была обнаружена, то GRUB 2 сразу перейдет к загрузке операционной системы по умолчанию, и никакое меню отображаться не будет.
2. Если была обнаружена другая операционная система, то GRUB 2 отобразит меню.

Время отображения меню:

1. Меню показывается в течение заранее определенного количества секунд. Пункт меню по умолчанию подсвечивается, и пользователю дается возможность выбрать другой вариант загрузки, пока не истечет таймаут. По умолчанию таймаут ожидания действий пользователя составляет 2 секунды. Таймер продолжит отсчет, пока не будет нажата любая клавиша, или не будет выбран подсвеченный вариант загрузки путем нажатия ENTER.
2. Если пользователь ничего не выбрал, то GRUB 2 загрузит выбор по умолчанию после истечения таймаута.
3. После нажатия клавиши отсчет таймаута деактивируется, и пользователь должен вручную выбрать вариант загрузки.
4. Выбираемый по умолчанию вариант загрузки определяется настройкой GRUB_DEFAULT= в файле /etc/default/grub. У первого пункта меню значение "0".

Скрытое (Hidden). Включены обычные скрытые операции (Hidden Operations):

1. Никакие пункты меню не отображаются. Появится заставка, если она была сконфигурирована.
2. Время, в течение которого экран остаеся пустым, но доступным для просмотра, определяется настройкой GRUB_HIDDEN_TIMEOUT в /etc/default/grub.
3. GRUB 2 может отображать таймер обратного отсчета, чтобы дать информацию о времени, которое осталось до загрузки выбора по умолчанию. Настройка таймаута разрешается GRUB_HIDDEN_TIMEOUT_QUIET в /etc/default/grub.
4. Пользователь может активировать отображение меню, нажав любую клавишу. После появления меню начнется обратный отсчет GRUB_TIMEOUT. Нажатие любой клавиши остановит обратный отсчет.

Если никакая клавиша не была нажата, то по окончанию таймаута загрузится выбор по умолчанию, определяемый настройкой в /etc/default/grub.

Скрытые операции не ожидаются (Abnormal): пользователь может отобразить меню одним из следующих способов.

1. Удерживая нажатой клавишу SHIFT на ранней стадии процесса загрузки, пока не отобразится меню. GRUB 2 ищет нажатый сигнал клавиши SHIFT во время загрузки. Если клавиша нажата, или GRUB 2 не может определить состояние клавиши, то отображается меню.
2. Нажатием клавиши ESC в течение 3 секунд, пока работает GRUB 2.

Сохраненное состояние. Можно выполнить сохранение OS запуском sudo grub-set-default, если установлено GRUB_DEFAULT=saved в /etc/default/grub. Это может быть также сохранено, если GRUB_SAVEDEFAULT=true также установлено в /etc/default/grub. В этом случае умолчание выбора OS сохранится до тех пор, пока не будет выбран другой вариант загрузки в меню GRUB 2, или пока не будет выполнена команда grub-set-default.

Last Boot Failed или загрузка в режим восстановления (Recovery Mode). Если последняя загрузка была неудачной, или после загрузки в Recovery Mode будет отображаться меню загрузки до тех пор, пока пользователь не сделает свой выбор.

Чтобы изменить это поведение, отредактируйте /etc/default/grub, и добавьте переменную GRUB_RECORDFAIL_TIMEOUT. Установите её значение подобно установке GRUB_TIMEOUT.

1. Для -1 обратного отсчета нет, и меню будет отображено.
2. Для 0 меню отображатся не будет даже для сбоя старта (failed startup).
3. Для >=1 меню будет отображаться на указанное количество секунд.

Для применения сделанных изменений настроек запустите update-grub.

В некоторых случаях трюк с GRUB_RECORDFAIL_TIMEOUT не работает. Тогда отредактируйте /etc/grub.d/00_header, и поменяйте значение наймаута на строке 236 (на этой строке находится функция make_timeout()) на значение, описанное выше.

set timeout=-1

Запустите update-grub после внесения изменений. Однако это изменение все еще приведет к загрузке GRUB 2 в текстовый режим. Так что потребуется дополнительное изменение. Отредактируйте /etc/grub.d/10_linux, и поменяйте строку 188 на

set linux_gfx_mode=keep

И снова, запустите update-grub после внесения изменений.

GRUB 2 может защитить паролем редактирование меню, доступ к терминалу GRUB 2, и к определенным или всем пунктам меню. Это также ограничит доступ к определенным элементам для определенных пользователей, и может для повышения безопасности зашифровать открытые пароли. См. документацию Grub2/Passwords.

GRUB 2 позволяет создавать кастомизированные варианты выбора в меню, которые будут автоматически добавлены в основное меню после запуска sudo update-grub. Для этой цели имеется файл 40_custom в каталоге /etc/grub.d/, в нем можно найти пример создания пользовательского меню. Информацию по построению и исопльзованию кастомизированного меню GRUB 2 можно найти по ссылке Grub2/CustomMenus.

GRUB 2 предоставляет отличиные возможности по решению проблем с загрузкой из boot menu или терминала GRUB 2. Процедуры утранения проблем и восстановления детально описаны в документации Grub2/Troubleshooting, где также есть секция по обнаруженным проблемам и ошибкам Selected_Problems_and_Bugs.

Исправление зависания, перезагрузки, выключения. Если ваша машина пытается выключиться или уйти в перезагрузку, попробуйте изменить /etc/default/grub. Откройте файл командой gksudo gedit /etc/default/grub (в графическом интерфейсе) или sudo nano /etc/default/grub (в командной строке). Также подойдет другой редактор простого текста (Vim, Emacs, Kate, Leafpad). Найдите строку с GRUB_CMDLINE_LINUX_DEFAULT, и добавьте reboot=bios в конец.

Если все сделано правильно, то это долно выглядеть примерно так:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=bios"

После этого сохраните файл и выполните sudo update-grub, и после этого перезагрузитесь любым возможным способом. После перезагрузки и выключения нормальная работа должна восстановиться.

На определенном железе (в частности на DELL) добавляемый параметр ядра должен быть reboot=pci (вместо reboot=bios), а процедура остается прежней.

GRUB 2 может предложить нечто большее, чем просте черно-белое меню. Меню можно настроить и сделать более привлекательным, изменяя цвета шрифта, фон и режим разрешения экрана.

Для информации по использования картинок заставок, изменения цвета шрифта, режима разрешения экрана меню см. документацию Grub2/Displays.

Темы. Эта фича GRUB 2 все еще находится в разработке как интеграция с gfxmenu. Элементы темы включают цвета, шрифты, индикаторы процесса, меню и метки.

grub2.theme.dinxter grub2.theme.bennett

[Установка, переустановка, перенос GRUB2]

См. документацию Grub2/Installing [4]. Информацию по обновлению GRUB 0.97 (Legacy) на GRUB 2 теперь можно найти по ссылке Grub2/Upgrading [2].

[Загрузка ISO выбором пункта меню]

Ubuntu ISO, как и многие утилиты ISO и некоторые другие операционные системы, могут быть загружены с жесткого диска выбором в меню GRUB 2. Это устраняет необходимость в создании CD/DVD/флешки, и позволяет сохранять загружаемые файлы образа на жесткий диск.

Информацию по этой фиче Grub 2 см. в документации Grub2/ISOBoot [5].

[Безопасность]

Предотвращение от загрузки через командную строку Grub. Возможность ручной загрузки с использованием командной строки Grub представляет для Linux большую дыру в безопасности. Любую OS можно загрузить таким способом с флешки USB или привода CD/DVD, в обход ограничений BIOS. Размещение паролей или блокировка элементов меню (в конфигуриационных файлах Grub) не проедотвращают пользователя от риска загрузки вручную командами, введенными в консоль grub (само собой, после загрузки чужой OS можно получить доступ к любой части не зашифрованного жесткого диска).

В нестоящий момент не существует опций по предотвращению использования строки команд Grub. Это ограничит загрузку только опциями меню, что не может считаться разумным.

Если вы хотите работать с GRUB через последовательную консоль, то понадобится раскомментировать опцию GRUB_TERMINAL в /etc/default/grub и установить её в serial (вместо консоли по умолчанию). Альтернативно вы можете добавить GRUB_TERMINAL="console serial" в меню grub и для serial console, и для local console. Настройки по умолчанию для serial console работают на первом последовательном порту (ttyS0) со скоростью 9600 бит/сек, 8 data bit, 1 stop bit, no parity.

Если вы хотите использовать другой последовательный порт, или если ваша консоль использует другие настройки, то вы должны добавить строку GRUB_SERIAL_COMMAND для дополнительных параметров. В GRUB 2 используется такой же синтаксис, как и у предка GRUB Legacy [6]. Например, для самой часто используемой скорости 9600 бит/сек (бод), 8 data bit, 1 stop bit, no parity:

GRUB_SERIAL_COMMAND="serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1"

Пример для настройки 4800 бит/сек, 7 data bit, 1 stop bit, even parity:

GRUB_SERIAL_COMMAND="serial --unit=0 --speed=4800 --word=7 --parity=even --stop=1"

[Загрузка FreeBSD, NetBSD, chainload или multiboot]

Обратитесь к документации Grub2 Other Os [7].

[Графическая оболочка для настройки GRUB 2]

Существует графическая утилита Grub Customizer (команда grub-customizer) упрощающая настройку скриптов GRUB2.

grub customizer

Устанавливается grub-customizer следующими командами:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

[Ссылки]

1. Ubuntu GRUB 2.
2. Grub2/Upgrading.
3. Grub2/Setup.
4. Grub2/Installing.
5. Grub2/ISOBoot.
6. 16.2.1 serial.
7. Grub2 Other Os.

 

Добавить комментарий


Защитный код
Обновить

Top of Page