grub2 настройка меню загрузчика

Настройка загрузчика Grub

Загрузчик системы выполняет очень важную функцию. Он позволяет выбрать какую операционную систему стоит загружать, также инициализирует параметры ядра Linux и подготавливает его к загрузке. В большинстве дистрибутивов Linux используется загрузчик Grub. Он поддерживает все необходимые функции, в том числе и UEFI, а также очень настраиваемый.

В одной из предыдущих статей мы рассматривали установку загрузчика Grub в Linux. В этой же будет будет продолжена тема и более детально рассмотрена настройка загрузчика Grub. Мы рассмотрим как графическую настройку с помощью Grub Customizer, так и более сложный, но более гибкий вариант с помощью ручного редактирования конфигурационных файлов.

Настройка Grub с помощью Grub Customizer

Это самый легкий путь конфигурации загрузчика. Графическая программа настройки Grub Customizer позволяет настроить все основные параметры загрузчика, например, фоновое изображение, шрифт, порядок пунктов загрузки, параметры ядра и многое другое. Все это делается в пару кликов.

Программа доступна в официальных репозиториях большинства дистрибутивов, и вы можете ее оттуда легко установить. Для установки в Ubuntu выполните:

sudo apt install grub-customizer

В Fedora, Red Hat и CentOS команда будет немного отличаться:

sudo yum install grub-customizer

После завершения установки вы можете запустить программу из главного меню или в терминале:

Перед тем, как программа запустится, вам нужно будет ввести пароль потому что для ее работы нужны права администратора:

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

Главное меню загрузится через несколько десятков секунд. Программе нужно время, чтобы собрать список операционных систем, установленных на компьютере:

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

В контекстном меню для каждого пункта вы можете переместить его вверх или вниз, переименовать или отредактировать его конфигурацию. С конфигурацией мы будем разбираться в другой части статьи, а первые два пункта могут быть очень полезны:

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

На вкладке Основные настройки вы можете выбрать пункт, который нужно загружать по умолчанию, время на протяжении которого будет показываться меню, а также параметры ядра для каждого пункта по умолчанию.

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

Последняя вкладка позволяет настроить внешний вид, тут вы можете выбрать одну из доступных тем, установить разрешение, или же задать пользовательские параметры цвета, шрифтов и фоновый рисунок:

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

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

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

Когда настройка Grub Customizer будет завершена просто нажмите кнопку Сохранить, чтобы применить все изменения.

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

Видео, где показана настройка GNU Grub в Linux с помощью Grub Customizer:

Но это все слишком просто и позволяет сделать только базовые вещи, если же нужна более тонкая настройка загрузчика Grub, придется разбираться с ручной настройкой конфигурационных файлов. Это мы и будем рассматривать ниже.

Настройка Grub через конфигурационные файлы

Настройка Grub через /etc/default/grub

Как я уже сказал, настройка загрузчика через файл /etc/default/grub, на основе которого будет автоматически создан /boot/grub/grub.cfg более желательна. Давайте рассмотрим параметры, которые вы можете здесь настроить.

Например, можно использовать такую конфигурацию:

GRUB_DISTRIBUTOR=»»
GRUB_DEFAULT=»saved»
GRUB_HIDDEN_TIMEOUT=»0″
GRUB_HIDDEN_TIMEOUT_QUIET=»true»
GRUB_TIMEOUT=»8″
GRUB_CMDLINE_LINUX_DEFAULT=»resume=/dev/sda7 splash=silent quiet»

Но как вы могли понять, этим способом вы не можете настроить порядок пунктов загрузки, а также некоторые другие параметры, поэтому давайте рассмотрим настройку непосредственно конфигурационного файла Grub.

Настройка Grub через /boot/grub/grub.cfg

Файл /etc/boot/grub/grub.cfg управляет непосредственно работой загрузчика, здесь указаны все его параметры и настройки, а также сформировано меню. Поэтому, изменяя этот файл, мы можем настроить Grub как угодно. Сначала попытаемся разобраться с синтаксисом файла. Он очень напоминает синтаксис bash и состоит из нескольких команд, которые что-то делают, загружают и настраивают.

Команды могут быть объединены в функции или блоки с помощью инструкций if else, синтаксис которых аналогичен bash. Рассмотрим основные из этих команд:

Это все команды, которые вам понадобятся. Но две последние нужно рассмотреть подробнее, так как они будут использоваться чаще всего.

Команда search используется для поиска дисков и имеет такой синтаксис:

Например, команда может выглядеть вот так:

Вторая команда, которая нам очень понадобится, это menuentry. Она используется для создания пунктов меню, с помощью которых будут загружаться операционные системы и дистрибутивы linux. Синтаксис этой команды такой:

menuentry имя_пункта <
команды установки переменных окружения
загрузка модулей
linux файл_ядра параметры_ядра
initrd файл_initrd
>

Обычно, для нормальной загрузки операционной системы сначала необходимо установить корневой раздел, для этого, возможно, нужно загрузить некоторые модули, дальше нужно запустить ядро с нужными параметрами и добавить образ initrd если это требуется. Самый простой пример пункта меню:

menuentry «Ubuntu» <
set root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
>

Теперь давайте попробуем собрать всю информацию воедино и создадим самый просто конфигурационный файл для Grub вручную:

# Время показа меню 5 секунд

# Установим разрешение экрана и укажем что это же разрешение нужно сохранять для ядра:

set gfxmode=»1280×800″
set gfxpayload=keep

# Загрузим необходимые модули для работы видео режима, нужно для использования фоновой картинки

insmod vbe
insmod gfxterm
terminal_output gfxterm

# Установка шрифта с поддержкой Unicode:

font «/boot/grub2/fonts/unicode.pf2»
loadfont unicode

# Загрузим модуль работы с jpeg и зададим фоновый рисунок:

insmod jpeg
background_image «/boot/fon.jpg»

# Установим переменные окружения для настройки цвета меню:

set menu_color_normal=red/black
set menu_color_highlight=yellow/black
set color_normal=yellow/black

# Пункт меню для нашей операционной системы:

menuentry «Ubuntu» <
root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
>

menuentry «OpenSUSE» <
insmod gzio
insmod part_msdos
insmod ext2
set root=’hd0,msdos5′
linux /boot/vmlinuz-4.1.31-30-default root=UUID=c52ca066-e48f-4df2-bc7e-4d885a354090 resume=/dev/sda7 splash=silent quiet showopts
initrd /boot/initrd-4.1.31-30-default
>

Выводы

Настройка grub может показаться довольно сложной вещью, но если разобраться, то все вполне выполнимо. В этой статье мы рассмотрели несколько способов настройки загрузчика, для различных ситуаций, и я думаю, теперь у вас не возникнет проблем с этой программой. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

🐧 Как настроить параметры загрузчика GRUB2 на Linux

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

Как вы, вероятно, знаете, GRUB2 является загрузчиком по умолчанию для большинства операционных систем Linux.

GRUB означает GRand Unified Bootloader.

Загрузчик GRUB – это первая программа, которая запускается при старте компьютера.

Он отвечает за загрузку и передачу управления в ядро операционной системы.

И тогда ядро берет на себя ответственность и инициализирует остальную часть операционной системы.

В этом руководстве я покажу вам, как настроить параметры загрузчика GRUB2 в системе Ubuntu.

Мы можем настроить параметры, либо напрямую отредактировав файл конфигурации grub с помощью любого текстового редактора, либо с помощью любых приложений с графическим интерфейсом, таких как Grub-customizer.

Настройка параметров загрузчика GRUB2

Как я уже сказал, мы можем настроить параметры загрузчика из командной строки или графического интерфейса.

Давайте посмотрим на метод с командной строкой.

Предупреждение. Файл конфигурации по умолчанию для GRUB2 – /boot/grub/grub.cfg. Вы не должны редактировать или изменять этот файл, если вы не очень знакомы с GRUB2. Это основной файл для загрузки в ОС Linux. Если вы сделаете что-то не так с этим файлом, то у вас наверняка будет сломана система. Так что не трогайте этот файл!

1. Выберите ОС по умолчанию (GRUB_DEFAULT)

Откройте файл /etc/default/grub с помощью любого текстового редактора, например, nano.

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

2. Установите время ожидания ОС (GRUB_TIMEOUT)

По умолчанию выбранная запись из меню загрузки начнет загружаться через 10 секунд.

Вы можете увеличить или уменьшить этот тайм-аут.

Если значение равно «0», ОС по умолчанию сразу начнет загружаться.

Если значение равно «5», меню загрузки будет отображаться в течение 5 секунд, чтобы вы могли выбрать, какую ОС вы хотите загрузить при запуске системы.

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

3. Измените фоновое изображение GRUB

Чтобы изменить фоновое изображение GRUB, вам нужно скопировать предпочитаемое изображение в /boot/grub/location.

Вы также можете использовать изображения в формате JPG / JPEG.

Но GRUB поддерживает только 256 цветных форматов изображений JPG / JPEG.

Итак, лучше использовать изображения в формате PNG.

Кроме того, вы можете напрямую указать путь к файлу изображения в файле /etc/default/grub, как показано ниже:

Замените путь к изображению своим собственным.

Сделав необходимые изменения в файле GRUB, сохраните и закройте его.

Чтобы применить изменения, вы должны выполнить следующую команду:

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

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

• Свежие записи

• Категории

• itsecforu.ru

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

• Страны посетителей

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика IT is good

Источник

Grub 2

В Википедии имеется статья по теме «Grub»

GRUB (GRand Unified Bootloader) — загрузчик ОС, применяется для загрузки ядер Linux, OpenSolaris, BSD и Hurd (StartUp Manager).

GRUB 2 — это новая версия GRUB, сильно отличающаяся от предыдущей. Данное описание и инструкции касаются только таблицы разделов MBR и BIOS. Для GPT и UEFI используются немного другие команды.

Содержание

Определяем версию загрузчика [ править ]

В GRUB2 основным файлом конфигурации является не «/boot/grub/menu.lst», как это было в предыдущей версии, а «/boot/grub/grub.cfg». Однако редактировать его напрямую не нужно, ведь при каждом обновлении файл генерируется автоматически с помощью файла настроек /etc/default/grub и скриптов директории /etc/grub.d.

/etc/default/grub [ править ]

Данный файл содержит в себе основные настройки для grub2. Через него, собственно, они и изменяются. Для наглядности ниже приводится примерное содержимое этого файла:

Мы видим, что файл представляет собой набор опций в человекопонятном формате ОПЦИЯ=ЗНАЧЕНИЕ. Мы не будем здесь рассматривать все представленные параметры, поскольку рядовому пользователю вполне достаточно понимания пары-тройки основных параметров. Наиболее часто встречающаяся потребность при настройке grub — изменение стандартного пункта загрузки и/или времени показа меню. Рассмотрим же, как это делается.

Что делать, если файла /etc/default/grub нет [ править ]

Начинающие пользователи внимательно читают этот замечательный учебник и пытаются следовать описанным здесь сведениям. Однако тут же натыкаются на грабли: файла /etc/default/grub нет. 1) У вас версия Grub1 2) Проверить, есть ли файл /etc/sysconfig/grub2. Править его аналогичным образом. В этом разделе будет написано, почему этого файла нет и как настраивать загрузчик в этом случае.

Изменение стандартного пункта загрузки [ править ]

Пример [ править ]

Если в «grub.cfg» пункт меню выглядит так:

то и значение параметра «GRUB_DEFAULT» должно указываться именно в виде

Изменение времени отображения меню [ править ]

По умолчанию меню загрузки отображается 10 секунд, после чего загружается стандартный пункт (если раньше не нажат enter и не выбран другой пункт, что останавливает таймер). С изменением задержки все совсем просто. За эту задержку отвечает параметр «GRUB_TIMEOUT» (не путайте с «GRUB_HIDDEN_TIMEOUT»!). Значение задается в секундах. Обратите внимание, что цифра указывается в кавычках. В нашем примере это значение — 2, то есть меню отображается две секунды. Кроме того, есть одна хитрость. Если поставить значение «−1», то меню будет отображаться до тех пор, пока пользователь не выберет какой-либо пункт. То есть без всяких таймеров и утекающих секунд.

Изменение времени отображения в debian 8 [ править ]

Данный хак будет полезен и для владельцев систем построенных на debian. Дело в том что файл /etc/grub.d/00_header построен по непонятному принципу, а строчка в GRUB_TIMEOUT в /etc/default/grub не меняет время отображения. Для того чтобы это исправить надо открыть любым редактором файл /etc/grub.d/00_header и удалить данные строчки (делаем резервную копию на всякий случай):

Эта функция запутанная и ничего не даёт. Далее ищем и удаляем полностью данный текст:

Далее удаляем полностью из файла следующий текст:

«Скрытое» меню [ править ]

Изменение стандартных параметров загрузки ядра [ править ]

Пример [ править ]

Вместо того, чтобы добавлять новые параметры, мы уберем стандартные. Отключим графическую заставку и «молчаливый режим». Заменим

Теперь все наши пункты загрузки linux-ядер будут преобразованы в verbose mode, то есть режим загрузки без графической заставки и с выводом на экран текстовой информации о загрузке компонентов системы, что позволяет следить за процессом загрузки и выявлять неполадки.

Обратите внимание, чтобы ядру не передавались лишние параметры через GRUB_CMDLINE_LINUX, если он не пустой. Все вышеописанное работает для

Остальные настройки файла /etc/default/grub [ править ]

— данная строка отвечает за названия дистрибутива, которое будет отображаться в меню GRUB2 (Ubuntu, Xubuntu, Debian, и т.д.)

— раскомментируйте данную строку, и это позволит отключить графический терминал (grub-pc only). Данный прием будет полезен тем, что отключение графического режима может существенно увеличить скорость работы меню (прокрутка, отзывчивость).

— раскомментируйте, если вы не хотите, чтобы GRUB передавал вашей системе параметр «root=UUID=xxx».

Если строка GRUB_GFXMODE=640×480 закомментирована или выбранное разрешение недоступно, тогда GRUB2 использует настройки по умолчанию, определенные скриптом /etc/grub.d/00_header.

— Настройка одинакового разрешения в меню GRUB2 и вашей операционной системы, позволит немного уменьшить время загрузки.

— В качестве дополнительной опции пользователь может задать битность изображения, просто добавив необходимые данные в настройку разрешения. Например так: 1280x1024x24 или 640x480x32.

— Пользователь может добавить одновременно несколько разрешений. Как это работает? А вот так, если GRUB2 не может использовать первое заданное разрешение, тогда он будет пробовать следующее и т.д. Перечень разрешений необходимо разделять запятыми. Пример: 1280x1024x16,800x600x24,640×480.

— Если используется строка GRUB_GFXMODE= и при выполнении команды sudo update-grub вам выдается сообщение not found, просто попробуйте или добавить или изменить битность изображения.

— Включает/выключает проверку скриптом /etc/grub.d/30_os-prober наличия на других разделах операционных систем, включая такие как Windows, Linux, OSX и Hurd.

/etc/grub.d [ править ]

Примечание: файл «40_custom» должен заканчиваться пустой строкой, иначе последний пункт не будет отображаться в меню!

Пример [ править ]

Добавляем verbose-mode (режим загрузки без графической заставки, с текстовым отображением процесса загрузки), позволяющий контролировать процесс загрузки системы. Для этого мы немного отредактируем обычный пункт загрузки. Допустим, он выглядит так (в «/boot/grub/grub.cfg»):

Для того, чтобы сделать из этого verbose-mode, нам нужно убрать опции quiet и splash из строки «linux». Ну, и для понятности изменим название самого пункта. в итоге получаем:

Все это и добавляем в «40_custom» в конец файла. Строка с echo не является обязательной, она лишь будет сигнализировать нам о том, что наш пункт найден и добавлен при обновлении grub2

Применение изменений [ править ]

grub2 настройка меню загрузчика. Смотреть фото grub2 настройка меню загрузчика. Смотреть картинку grub2 настройка меню загрузчика. Картинка про grub2 настройка меню загрузчика. Фото grub2 настройка меню загрузчика

Она выполнит скрипты в каталоге «/etc/grub.d» и применит заданные в «/etc/default/grub» параметры. После этого смело перезагружаемся и видим, что все работает как надо. Ну или не работает. Если все прошло успешно, то в выводе консоли вы увидите список найденных grub2 ОС и linux-ядер. Выглядит все это примерно так, как на скриншоте справа.

Тот же самый скрипт выполняется и при обновлении ядра.

Нюанс с нумерацией дисков и разделов [ править ]

Резервная копия [ править ]

Перед каким-либо редактированием обязательно сделайте бэкап файлов конфигурации. например, выполнив последовательно эти строки:

(можно сохранить данный скрипт в /usr/bin, назвать, к примеру, «grub-backup» и дать права 755. Теперь для резервного копирования grub2 достаточно будет выполнить команду «grub-backup»)

Немного улучшенная версия скрипта.

Оформление [ править ]

Установка фонового изображения [ править ]

(не путайте пакет grub2-splashimages с пакетом grub-splashimages, который не совместим с grub2!). Эти изображения будут помещены в каталог «/usr/share/images/grub», который нужно будет добавить в файл конфигурации (см. ниже). Фоновое изображение задается в файле «/etc/grub.d/05_debian_theme». Найдите в нем строку такого вида:

Обратите внимание, что в последних, на данный момент (23.10.2010), версиях GRUB, установка фонового изображения упростилась ещё больше. Теперь для установки фонового изображения достаточно в строке:

указать в кавычках путь к файлу с одним из перечисленных выше расширений (.png,.tga,.jpg) и разрешением 640×480. После чего обновить конфигурацию:

Способ №2: [ править ]

В файле /etc/default/grub определить константу GRUB_BACKGROUND и передать ей путь к файлу с картинкой.

Способ для дистрибутива debian 8 [ править ]

В debian 8 картинка устанавливается по другому. За поиск отвечают вот эти строчки в файле /etc/grub.d/05_debian_theme.

В этих строчках менять ничего не нужно. Сначала будет проверена константа GRUB_BACKGROUND в файле /etc/default/grub, если изображение будет найдено то оно устанавливается на фон grub. Если данная константа в /etc/default/grub не указана, то update-grub будет искать в каталоге /boot/grub файлы формата tga, jpg и png. Поиск выполняется по имени, например если в папке находятся файлы A.tga и B.tga, на фон будет выбрана картинка A.tga. О картинке которая будет выбрана выведется информация при выполнении команды update-grub: Found background image: [путь]. Если в каталоге /boot/grub нет изображений, то поиск будет производится оп переменной указанной в файле /usr/share/desktop-base/grub_background.sh, с именем WALLPAPER.

Если по пути указанном в переменной WALLPAPER, файла /usr/share/desktop-base/grub_background.sh не будет найдено изображения, то изображение установится на /usr/share/images/desktop-base/desktop-grub.png. Для того чтобы вместо /usr/share/images/desktop-base/desktop-grub.png задать своё значение, надо найти вот такую строчку с текстом в файле /etc/grub.d/05_debian_theme.

И изменить на путь до изображения. Порядок поиска:

Настройка цвета пунктов меню [ править ]

Цвета пунктов меню также задаются в файле «/etc/grub.d/05_debian_theme». В самом начале файла нужно всего-навсего изменить значения переменных:

Заметьте, что black (черный) при использовании в качестве второго параметра (т.е. цвета фона) в результате даст прозрачный фон, без какой-либо заливки, текст прямо поверх картинки. Использование black в качестве цвета текста дает черный текст.

Пример [ править ]

Настройка цвета пунктов меню в debian 8 [ править ]

На debian 8 цвет меню устанавливается таким образом. Так как добавление переменных введённых выше в файл /etc/grub.d/05_debian_theme ничего не дают, то изменять надо в уже готовом файле. Выполняем в терминале:

В текущем каталоге появится файл grub.cfg. Открываем его любым редактором и ищем строчку с:

Сразу под ним вставляем данные строчки:

Затем выполняем команду:

Перезагружаемся и наслаждаемся цветным меню.

Изменение цвета меню навсегда [ править ]

Чтобы каждый раз не менять grub.cfg заходим в файл /etc/grub.d/05_debian_theme и ищем строчку с текстом:

И удаляем её. Затем ищем строчку с текстом:

И прямо под ней две строки отвечающие за цвет. Изменяем их и выполняем команду:

Перезагружаемся и радуемся результату.

Восстановление GRUB2 [ править ]

После, например, установки Windows, вы можете столкнуться с тем, что при загрузке будет отображаться только меню загрузки Windows, а меню grub2 вы не увидите вовсе, что приведет к невозможности загрузить что-либо кроме Windows. Такое происходит из-за того, что Windows при установке затирает загрузочную область жесткого диска (так называемый MBR-раздел), удаляя оттуда код загрузчика grub2. Для восстановления grub2 вам понадобится liveCD Ubuntu 10.04 или любой другой современной системы, включающей grub2 в свой дистрибутив.

Восстановление GRUB2 с LiveCD [ править ]

Для работы нам понадобится /-раздел (root). Примонтируйте его командой

Также монтируем каталог /dev нашей live-системы как /dev нашего root-раздела:

и /proc live-системы как /proc root-раздела:

теперь выполняем следующую команду:

Если вы устанавливаете GRUB для Gentoo:

В полученной таблице есть столбец «загрузочный». В моем случае напротив раздела sda1 стоит звездочка, означающая, что у меня загрузочным является первый жесткий диск, то есть sda. Определившись с загрузочным диском, ставим на него grub2:

Также в некоторых случаях может помочь вариант

Обратите внимание: мы устанавливаем grub2 на физический диск (sda, sdb. ) т.е. в mbr, а не на раздел (sda3, sdb1. )! Если все прошло успешно, выходим из chroot командой

Отмонтируем наши диски и каталоги: /dev нашей live-системы:

boot-раздел, если таковой монтировался отдельно:

И собственно, корневой раздел:

Все! Перезагружаемся, восстанавливаем порядок загрузки в BIOS (ставим жесткий диск на первое место) и смотрим результат.

Восстановление GRUB2 с LiveCD. способ 2 (без chroot) [ править ]

Нам опять же понадобится LiveCD Ubuntu 9.10 или другой системы с поддержкой grub2. В отличие от предыдущего способа, мы не будем запускать установщик через chroot, что позволит сократить количество требуемых действий. Итак, загружаемся с выбранного LiveCD, запускаем консоль. Вместо использования chroot мы воспользуемся ключом «—root-directory». Но для начала убедимся, что данная опция поддерживается нашей live-системой. Если вы работаете с Ubuntu 9.10 Desktop, можно не волноваться. В ином случае выполните

или же можно глянуть

Разница лишь в форме вывода информации. Определившись с корневым разделом, монтируем его. Пусть в нашем примере это будет sda5:

Если у вас выделен отдельный boot-раздел, примонтируйте и его. Допустим это sda2

Теперь переходим собственно к установке grub2. Ключ «—root-directory» позволяет указать, что использовать в качестве корневой директории. Нам нужен корневой раздел нашей системы, который примонтирован в /mnt. Поэтому выполняем:

При необходимости повторяем операции для всех жестких дисков. Сохраняем файл и повторно выполняем команду grub-install, как описано выше. Теперь должен отобразиться правильный список дисков. Отмонтируем диски и перезагружаемся.

Восстановление GRUB2 с LiveCD. способ 3 (совсем простой) [ править ]

изменив /dev/sda на нужный диск. Можно снова грузиться с этого диска.

Копирование рабочего GRUB 2 в нужный раздел [1] [ править ]

Порой бывает необходимость перенести корректно работающий GRUB 2 на нужный раздел (только основной раздел диска). Для этого можно загрузиться с LiveCD или использовать уже установленную систему (причём в том числе и для установки GRUB 2 на текущий раздел, с которого загружена работающая система). Для систем использующих ядро Linux достаточно выполнить в терминале:

После чего выполнить непосредственно инсталляцию GRUB 2 на выбранный ранее раздел командой терминала update-grub, например:

При этом программа инсталляции найдет и установит соответствующие пункты загрузки всех совместимых со спецификациями Multiboot операционных систем и, вероятно, загрузчиков других операционных систем (например Windows, OS/2 и т.п.).

Загрузка системы при частичной неработоспособности GRUB2 [ править ]

В моем случае это «hd0,5», он же «/dev/sda5», то есть пятый раздел первого диска. Полный список доступных разделов можно получить уже знакомой многим командой «ls». Она выдаст что-то вроде

После того, как вы задали root-раздел, можно удостовериться в том, что все получилось, выполнив команду «root». Она выдаст сообщение следующего вида:

Некоторых, наверно, смутит упоминание ext2. Не волнуйтесь, так и должно быть. так же происходит каждый раз при нормальной загрузке системы. После того, как задан root-раздел, мы должны указать, какое ядро следует загрузить. Это задается командой «linux». Укажите то ядро, с которым вы обычно загружаетесь. В моем случае команда будет выглядеть так:

Обратите внимание на параметр «root=/dev/sda5» в конце строки! Здесь также нужно указать ваш root-раздел, но уже в более привычном формате. Без этого система может не загрузиться. Указав ядро и корневой раздел, мы готовы к загрузке системы. Для этого выполняем команду

Вышеперечисленных действий должно хватить для загрузки системы. Если загрузка не удастся, попробуйте перед выполнением «boot» выполнить еще команду «initrd» (которая, вообще-то, выполняется при нормальной загрузке). Напишите «initrd /boot/initrd» и нажмите tab. Выберите вариант, соответствующий загружаемому ядру. В моем случае команда будет выглядеть так:

по аналогии с ядром создается символьная ссылка на последнюю версию initrd.

И уже после этого выполняйте «boot». В результате всех манипуляций мы должны успешно загрузиться в родную систему, а там уже можно выполнить «update-grub» и при необходимости восстановить нужные файлы из резервной копии (которую вы, конечно, делали).

Совет [ править ]

Вы можете легко и быстро сделать себе инструкцию по аварийному запуску системы. Откройте ваш «/boot/grub/grub.cfg», найдите там пункт, который вы обычно загружаете, и скопируйте его оттуда. Допустим, он выглядит так:

Нам нужно оставить только три строки: «set root», «linux» и «initrd». Чтобы не забыть, допишем в конце команду «boot». В строке linux заменим «UUID=. » на ваш корневой раздел и уберем лишние параметры. В итоге получим такие строки:

Осталось распечатать это на бумажке и сохранить оную в надежном месте. Теперь у вас всегда под рукой инструкция по загрузке на случай каких-либо неполадок!

Загрузка Windows аналогичным образом [ править ]

После этого мы скомандуем grub2 передать управление загрузкой Windows-загрузчику NTLDR. Для этого просто выполним

И наконец дадим команду на запуск:

Advanced [ править ]

Даунгрейд до grub-legacy (возврат старой версии). В случае, если ваша дружба с grub2 так и не состоялась, вы можете заменить его на старый grub (ныне известный как grub-legacy), который на текущий момент более стабилен и привычен для многих. Для начала, конечно же, сделаем бэкап важных файлов. Создайте резервную копию файлов конфигурации как описано в конце I-ой главы. Также желательно забэкапить каталог «/boot/grub». Для этого выполните

Теперь мы можем приступить к удалению grub2. Для этого удаляем пакеты «grub-pc» и «grub2» (последний может быть не установлен):

Заметьте: удаление пакетов не приведет к полной очистке каталога «boot/grub». Теперь установим grub версии 0.97:

Но после установки нам необходимо создать файл menu.lst и другие файлы загрузчика. Для этого нужно выполнить еще две команды:

Эта команда создаст файл меню загрузки. На заданные ей вопросы отвечайте «yes».

Создание аварийно-спасательного GRUB2-liveUSB [ править ]

На выбранном разделе (/dev/sdb1) будут созданы каталоги и скопированы файлы, необходимые для загрузчика, в MBR диска будет записан код, передающий управление на выбранный раздел. Загрузившись с флеш-диска, попадаем в меню grub2. Для его изменения достаточно вручную править файл конфигурации grub.cfg.

Здесь мы рассмотрим некоторые команды консоли grub2. Все мы разбирать не будем, а изучим лишь самые необходимые и полезные. Напомню, чтобы попасть в консоль, нужно нажать «c» во время отображения меню загрузки. Итак, начнем!

ls [ править ]

сообщит нам тип файловой системы на разделе, метку раздела (если таковая имеется), UUID и дату последнего изменения данных на разделе (в формате UTC).

cat [ править ]

linux [ править ]

Загружает указанное linux-ядро. Аналог команды «kernel» в grub-legacy. Используется в формате

initrd [ править ]

Загружает указанный initrd-образ. Используется так:

Обратите внимание: версия initrd должна соответствовать версии загружаемого ядра!

load_env [ править ]

Что такое блок окружения GRUB? (GRUB environment block)
Часто полезно помнить небольшой объем информации от одной загрузки к другой. Например, вы можете захотеть установить запись меню по умолчанию на основе того, что было выбрано в последний раз. GRUB обычно не реализует поддержку записи файлов, чтобы свести к минимуму вероятность того, что загрузчик понесёт ответственность за повреждение файловой системы, поэтому конфигурационный файл GRUB не может просто создать файл обычным способом. Однако GRUB предоставляет «блок среды», который можно использовать для сохранения небольшого количества состояний.
Блок окружения представляет собой предварительно выделенный 1024-байтовый файл, который обычно находится в /boot/grub/grubenv (хотя вы и не должны это предполагать). Во время загрузки команда load_env загружает в нее переменные среды, а команда save_env сохраняет в ней переменные среды. Из работающей системы утилиту grub-editenv можно использовать для редактирования блока окружения.
grub-mkconfig использует эту возможность для реализации ‘GRUB_SAVEDEFAULT’ (в /etc/default/grub).

chainloader [ править ]

Передает управление загрузкой по цепочке другому загрузчику (загрузчик ищется на заданном в качестве root разделе). В общем случае требует указания файла для загрузки:

Однако, для NTLDR (загрузчика Windows) можно использовать

boot [ править ]

производит загрузку указанного ядра (заданного с «linux» и «initrd») или же другого загрузчика (заданного через «chainloader»). Используется без параметров

root [ править ]

После задания раздела команда сообщит новый root-раздел и тип файловой системы. Примечание: «root (hd*,*)» не всегда корректно срабатывает. Более предпочтительным вариантом является «set root» (см. ниже)

save_env [ править ]

set [ править ]

Весьма универсальная команда для изменения различных параметров. Служит для задания значений переменных и используется в формате

(именно такая технология используется в «grub.cfg») Также с ее помощью можно, например, «на лету» изменить цвет текста в меню и консоли, что позволяет опробовать цветовую схему перед установкой ее в качестве основной. Для этого изменяем переменные «color_normal» и «color_highlight» для обычного пункта (и текста в консоли) и выделенного пункта соответственно. Например, попробуем такой вариант:

(Подробнее о цветах читайте в главе II, раздел «настройка цвета пунктов меню»).

search [ править ]

Пожалуй, одна из самых полезных команд. Потомок «find» и «uuid» из grub-legacy. Служит для поиска раздела по UUID, метке или заданному файлу. Имеет следующие ключи:

Команда сообщит нам, какой раздел соответствует заданному UUID. Однако, UUID длинный, и хотя его и можно узнать, вводить вручную такое количество символов проблематично, и существует большой шанс сделать ошибку. Вместо этого мы воспользуемся поиском по файлу, который точно имеется на нужном разделе. Допустим, мы ищем раздел boot-раздел нашей системы. Найдем его по файлу «grub.cfg»:

Обратите внимание, что при использовании такого способа указанный файл должен иметься только на одном разделе! Получив искомое, можно вручную задать нужный раздел в качестве root-раздела, но гораздо проще воспользоваться ключом «-s». Если после него не указана переменная, будет использована «root», то есть найденный раздел как раз и будет задан в качестве корневого. Допустим, раздел с Windows имеет метку «C_drive». Установим его в качестве корневого для загрузки с него:

lsfonts [ править ]

help [ править ]

При использовании в чистом виде выведет список доступных команд. В формате

выведет справку по всем командам, начинающимся на «r».

отобразит справку по команде «search».

halt [ править ]

Выключит компьютер (в теории) или введет его в ступор (у меня ).

reboot [ править ]

background_image [ править ]

Позволяет «на лету» изменить фоновое изображение. Используется в формате

vbeinfo [ править ]

Выведет список поддерживаемых видеорежимов. Этой командой полезно будет воспользоваться перед настройкой разрешения в «/etc/default/grub».

configfile [ править ]

Потомок одноименной команды в grub-legacy. Позволяет загрузить другой файл конфигурации с другим меню вместо текущего «grub.cfg». Создав новый файл, вы можете сделать другое меню с другими настройками, оформлением и пунктами, не захламаляя основное меню. Используется так:

Создание и использование новых меню позже будет рассмотрено отдельно.

terminal_output.console [ править ]

terminal_output [ править ]

Использование: terminal_output [—append|—remove] [терминал1] [терминал2] …

play [ править ]

С помощью данной команды можно создавать любые шедевры. В качестве вывода звука будет использоватся пищалка на материнской плате. Рекомендуется подключать сторонюю пищалку для более качественного звука. Синтаксис команды с переводом:

Чтобы проиграть файл, пишем play и указываем путь до файла формата MID. Для того чтобы создавать свои мелодии нужно задать темп, а также высоту и длительность каждого звука. Пример мелодии:

Можно писать мелодии любого размера без ограничений.

tr [ править ]

Заменяет буквы в тексте.

testspeed [ править ]

Даёт возможность протестировать скорость чтения файла с диска.

time [ править ]

Замеряет время выполнения любой команды.

sleep [ править ]

Заморозка grub на указанное количество секунд. Аналогична команде sleep в linux, но без отмены командой Ctrl-C.

Премудрости 😉 [ править ]

Ну и для полного счастья ниже я приведу небольшой список премудростей, которые помогут вам облегчить работу в консоли: уже упомянутое автодополнение команд (как в bash) по нажатию tab. tab в пустой строке выведет полный список доступных команд. Это самое автодополнение имеет нетривиальный способ использования. Если вы не помните, какой раздел вам нужен, напишите «root (hd0,» (или «root (hd1.» и далее по списку) и нажмите tab. Будет выведен список разделов заданного диска с указанием файловых систем, UUID и времени последнего изменения. Имя раздела вида «(hd*,*)» можно использовать в начале пути к файлу, например, вот так:

Еще один полезный пример

позволяет просмотреть содержимое заданного раздела без переключения root. И кстати в терминале linux тоже можно с успехом использовать данный хак.

Загрузка другого grub2 из текущего [ править ]

Во втором случае видим сообщение, что файловая система неизвестна. Это нормально. Передаем управление по цепочке

и даем команду на запуск

и попадаем в искомый загрузчик.

Создание дополнительных меню загрузки [ править ]

В этом разделе мы рассмотрим создание своих собственных загрузочных меню со своей конфигурацией. Суть в том, что вместо уже знакомого нам «grub.cfg» можно загрузить другой файл конфигурации. Это позволяет создать дополнительное меню, совершенно другое — с другими пунктами, настройками. оформлением. Те, кто имел дело с установкой ArchLinux, могли заметить несколько подменю в grub установочного диска. Примерно такой метод мы и будем использовать. Итак, создадим наш новый файл конфигурации. Писать с нуля мы его, конечно же, не будем, а сотворим на основе имеющегося «grub.cfg». Для чего скопируем последний, дав новое имя, например:

Поскольку файл скопируется с правами 444, выставим ему права на запись:

Теперь пункт перехода в новое меню появится в обычном. для того чтобы выйти обратно в первое меню, достаточно нажать escape. Вот, в принципе, и вся премудрость. Таких файлов можете насоздавать себе хоть десять штук, тут уж зависит от потребностей.

Пример файла «custom.cfg» [ править ]

Ниже я приведу в качестве образца то, что получилось у меня (файл сильно урезан до необходимого минимума):

MBR — бэкап, восстановление и загрузка через образ [ править ]

Если ваш загрузочный диск — не sda, поменяйте значение на свое (на самом деле, код загрузчика занимает первые 446 байт, а дальше записана таблица разделов, но для загрузки нашего образа он должен быть не меньше 512 байт). Наш образ готов! Данные сохранены в файл «mbr.bin» в вашей домашней директории. Используя полученный образ, можно загрузить основной grub2 из-под другого при поврежденном MBR диске. Если у вас есть другая установленная linux-система с grub2 на другом жестком диске или загрузочная флэшка с grub2 (создание таковой описано выше) — можете попробовать на практике нижеприведенный совет. Итак, в моем примере я загружаюсь со своей спасительной флэшки с grub2, на которую я предварительно закинул образ MBR своего жесткого диска. Загрузившись в grub2, выходим в консоль (нажав «c»). Указываем в качестве корневого раздела тот жесткий диск, на котором по сценарию попорчен MBR, и с которого мы хотим запустить grub2. Можно указать сам диск или любой из его разделов, например так:

Проверим результат командой

Если все верно — загружаем наш образ с помощью chainloader. Здесь нужно указать полный путь, начиная с раздела, на котором лежит наш файл. Флэшка, с которой я загружен именуется (hd0), так что команда будет выглядеть так:

Если все тихо — даем команду на запуск:

и наслаждаемся родным grub2.
Примечание: в MBR (и, соответственно, в полученном образе) нет четкого указания жесткого диска, поэтому через наш образ загрузится grub2 с того раздела, который был указан в качестве корневого (root) в консоли grub2. Загрузив родную систему, мы можем восстановить из-под нее MBR диска. Но если лишнего grub2 у вас под рукой нет, действовать мы будем с LiveCD.
Грузимся с LiveCD любой linux-системы (в данном случае поддержка grub2 роли не играет). Для восстановления MBR нам нужно будет «раскатать» ранее созданный образ обратно в первый сектор диска. Но для начала проверим таблицу разделов, ведь вполне возможно, что grub2 не грузился и из-за нее. Для этого выполните

Если нужно восстановить и таблицу разделов — укажите 512 вместо 446. В качестве значения if пропишите путь к файлу образа, в of — тот диск, загрузочный сектор которого мы восстанавливаем. Если все прошло успешно — перезагружаемся, грузимся с починенного диска и радуемся.
Еще одна полезная возможность — полученный образ можно использовать для загрузки grub2 через NTLDR (в случае, если grub2 не загружает нормально Windows, и вы хотите сделать NTLDR основным загрузчиком). Но об этом как-нибудь позже.
P.S. Через grub4dos данный трюк провернуть не получится, возникает ошибка: Geom Error Missing Helper.

Создание LiveCD с GRUB2 [ править ]

В случае, если ваш компьютер не поддерживает загрузку с usb, можно создать cd-диск с grub2, через который можно будет загрузить свою систему при неисправности основного grub2. Для начала создадим в удобном месте каталог, в котором будем собирать наш диск, а в ней вложенные каталоги «/boot» и «/boot/grub»:

И еще один очень важный момент: в начале файла должна иметься такая строка: insmod part_msdos загрузка данного модуля обязательна! Без него полученный grub2 увидит только жесткий диск, но не увидит таблицу разделов на нем, и такой LiveCD будет бесполезен. Про настройки цветов/разрешения и всего прочего читайте в вышеупомянутом разделе. А теперь же перейдем к созданию самого меню. Вы можете скопировать нужные пункты из «/boot/grub/grub.cfg», но я рекомендую написать их с нуля, ибо для корректной работы тамошних пунктов потребуется загрузка дополнительных модулей. А написать их несложно, для Linux-системы пункт меню должен иметь такой вид:

/tmp/iso/boot/grub/grub.cfg»). Теперь мы готовы к созданию iso-образа нашего LiveCD. В этом нам поможет утилита grub-mkrescue. команда будет выглядеть так:

2.8M), прожигаем его на rw-шку (лучше программой cdrecord из пакета cdrtools) и пробуем грузиться!

Пример файла «grub.cfg» [ править ]

Как и обещал, привожу пример файла «grub.cfg», корректно работающего на LiveCD с комментариями:

Создание LiveCD с GRUB2 на базе имеющегося дистрибутива [ править ]

(за идею спасибо тов. komix)
Поскольку тратить целую болванку ради записи iso-шника с grub2 в 3 мегабайта было бы глупо, можно совместить приятное с полезным, а именно: LiveCD с grub2 и установочный диск какой-нибудь системы. Исходить мы будем из того, что имеется iso некоего LiveCD, к которому мы хотим прикрутить grub2. Порядок действий будет в целом аналогичен описанному в предыдущем пункте. Первым делом создадим каталог, в котором будем собирать наш новый диск. В нём же создадим каталог /boot/grub и каталог, в который будут помещены файлы нашей live-системы (я назову ее live):

Теперь нам нужно примонтировать iso-образ нашей системы в свежесозданный каталог для нее:

В данном случае этого будет достаточно. Для других систем могут потребоваться дополнительные параметры загрузки ядра. Ядро же может лежать в «/live/boot» или в другом каталоге в зависимости от конкретного дистрибутива. Обратите внимание на то, что здесь не используются строки вида «set root. » или «search. «. Если вы создали правильный «grub.cfg», то корневым разделом при загрузке устанавливается cdrom, поэтому нет нужды его задавать повторно. После того, как «grub.cfg» готов, можно приступить к созданию iso-образа:

Продолжительность процесса зависит от размера оригинального дистрибутива. По окончании получаем свежеиспеченный iso-образ с оригинальным дистрибутивом и бонусом в виде grub2. Отмонтируем оригинальный iso:

и прожигаем новый iso-шник на болванку. Грузимся и проверяем результат.

Добавление в меню пункта загрузки с CD/DVD & USB [ править ]

Средствами исключительно GRUB загрузиться с CD-ROM/USB не получится, но «мир не без добрых людей». Существуют мультизагрузчики, не такие многофункциональные, как GRUB, но, зато, умеющие грузить систему с CD-ROM/USB, даже если BIOS такой возможности не предоставляет.

Способ 1. Загрузка с CD & USB посредством Plop Boot Manager [ править ]

Сама загрузка будет осуществляться посредством Plop Boot Manager. Для этого качаем архив Plop’а, откуда извлекаем файл plpbt.bin, и кидаем его в каталог /boot/ нашей системы. Далее открываем файл /etc/grub.d/40_custom:

Либо вот таким способом, чтобы не узнавать каждый раз номер раздела и диска.

Затем обновляем grub.cfg:

Перезагружаемся, радуемся результату.

Способ 2. Загрузка с CD посредством Smart Boot Manager [ править ]

Затем обновляем grub.cfg:

Перезагружаемся, смотрим результат.

Деактивация recordfail grub2 [ править ]

GRUB2 поставляется с функцией, которая после неудачной попытки загрузки во время следующей загрузки автоматически останавливается в меню загрузки.
Это может быть нежелательным в определенных обстоятельствах. В зависимости от версии GRUB, изменения необходимо внести либо в файл /etc/grub.d/00_header, либо в переменную GRUB_RECORDFAIL_TIMEOUT в файле /etc/default/grub.
Сначала выполните поиск в файле /etc/grub.d/00_header.

Если это найдено (точное совпадение, или чуть-чуть изменённое), то просто добавьте комментарии:

Также строчка может иметь такой вид:

Затем отредактируйте файл /etc/default/grub и добавьте строку:

Для таймаута в 7 секунд. Потом выполните обновление конфигурации grub:

Теперь GRUB2 будет всегда использовать установленное время ожидания.

Ручной сброс значения recordfail [ править ]

Значение для grubenv можно сбросить вручную. Для этого нужно ввести в консоли grub следующее:

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *