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. Поддержку скриптов с операторами условного перехода и функциями. Меню по умолчанию GRUB 2 будет выглядеть знакомым для пользователей GRUB, но в глубине много значительных отличий. 1. На новая установке Ubuntu 9.10 или более новой версии, когда больше нет установленных операционных систем, GRUB 2 будет сразу переходить к приглашению логина или выводить рабочий стол (Ubuntu Desktop), без вывода меню загрузки. Пользователи, у которых все еще установлен загрузчик 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 сразу перейдет к загрузке операционной системы по умолчанию, и никакое меню отображаться не будет. Время отображения меню: 1. Меню показывается в течение заранее определенного количества секунд. Пункт меню по умолчанию подсвечивается, и пользователю дается возможность выбрать другой вариант загрузки, пока не истечет таймаут. По умолчанию таймаут ожидания действий пользователя составляет 2 секунды. Таймер продолжит отсчет, пока не будет нажата любая клавиша, или не будет выбран подсвеченный вариант загрузки путем нажатия ENTER. Скрытое (Hidden). Включены обычные скрытые операции (Hidden Operations): 1. Никакие пункты меню не отображаются. Появится заставка, если она была сконфигурирована. Если никакая клавиша не была нажата, то по окончанию таймаута загрузится выбор по умолчанию, определяемый настройкой в /etc/default/grub. Скрытые операции не ожидаются (Abnormal): пользователь может отобразить меню одним из следующих способов. 1. Удерживая нажатой клавишу SHIFT на ранней стадии процесса загрузки, пока не отобразится меню. GRUB 2 ищет нажатый сигнал клавиши SHIFT во время загрузки. Если клавиша нажата, или 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 обратного отсчета нет, и меню будет отображено. Для применения сделанных изменений настроек запустите 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] См. документацию 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 следующими командами: sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer [Ссылки] 1. Ubuntu GRUB 2. |