- Grub2
- Материал из Пингвиньи радостей
- Содержание
- Установка в linux
- Сборка файла конфигурации
- Команды консоли
- Создание собственного пункта меню
- Изменение пункта загрузки по умолчанию
- Создание GRUB PXE-загрузчика
- Загрузка из ISO образов
- Создание тем загрузки
- Восстановление Grub2
- Установка Grub2 в Windows 7
- Запуск других загрузчиков из Grub2
- Запоминание выбранного пункта меню
- Linux как установить grub2
- Зачем нужен GRUB, если есть LILO/ELILO? [ править ]
- Как установить GRUB? [ править ]
- Как передать свои параметры загрузки ядра? [ править ]
- Где отредактировать параметры ядра? [ править ]
- Как дописать свои собственные пункты меню? [ править ]
- Как выбрать ядро для загрузки по умолчанию (первый пункт grub)? [ править ]
- Как выбрать то, что будет загружаться автоматом? [ править ]
- Как отучить GRUB2 запоминать последний выбранный пункт? [ править ]
- Способ 1 [ править ]
- Способ 2 [ править ]
- Как однократно выполнить загрузку произвольного пункта меню? [ править ]
- Как загрузить Xen? [ править ]
- Как включить работу с последовательным портом? [ править ]
- Загрузка Linux и Windows c разных жестких дисков [ править ]
- Как установить пароль на редактирование параметров ядра? [ править ]
- Как переустановить GRUB? [ править ]
- Как установить/восстановить загрузочную запись grub? [ править ]
- Что за жалобы про BIOS Boot Partition? [ править ]
- Во время загрузки Windows искажена картинка, что делать? [ править ]
Grub2
Материал из Пингвиньи радостей
Содержание
Статья о загрузчике операционных сред GRUB2
Grub2 может быть легко установлен и на floppy-, usb-, cd/dvd-, hdd диски, а также использоваться в качестве PXE-загрузчика.
В операционной системе Debian от версии Squeeze и выше Grub2 устанавливается загрузчиком по умолчанию.
Установка в linux
Пакет присутствует в хранилище пакетов debian.
Для установки пакета
- в командной строке: следует выполнить команду # apt-get install grub2
- в графическом режиме: воспользоваться специализированной программой управления пакетами
После установки пакет готов к работе.
Некоторые часто используемые команды
Сборка файла конфигурации
Для формирования меню Grub2 использует файл конфигурации /etc/boot/grub.cfg. В Debian данный файл формируется автоматически скриптом сборки update-grub2 из правил-скриптов, расположенных в каталоге /etc/grub.d/. При выполнении скрипта считываются файлы из каталога /etc/grub.d/, файл /etc/default/grub и создаётся новый файл конфигурации /etc/boot/grub.cfg. Правила сборки например предусматривают автоматический поиск установленных ядер linux-систем, других операционных сред и добавление их в пункты меню.
Назначение правил-скриптов сборки /etc/grub.d/
Команды консоли
Grub2 позволяет осуществить переход в командую консоль управления. Для этого в момент отображения меню загрузки следует нажать клавишу C.
В консоли управления доступны команды
Создание собственного пункта меню
Grub2 позволяет добавлять собственные пункты в меню загрузки.
(Например) Для добавления собственного пункта меню загрузки
Изменение пункта загрузки по умолчанию
Grub2 позволяет изменять пункт меню загрузки по умолчанию, а также осуществлять автосохранение осуществленного выбора.
Для изменения пункта загрузки по умолчанию
Создание GRUB PXE-загрузчика
Grub2 может быть трансформирован и использован для осуществления загрузки компьютера по сети по PXE-протоколу вместо обычно применяемого в этих случаях PXELinux.
Для создания Grub2 PXE-загрузчика
Для использования Grub2 PXE-загрузчика
- загрузчик вместе с необходимыми файлами копируется в корневой каталог TFTP сервера
- в файл конфигурации DHCP-сервера/etc/dhcp3/dhcpd.conf в необходимое место добавляются например строки
- осуществляется обновление файла конфигурации
Загрузка из ISO образов
Grub2 умеет осуществлять подключение/монтирование ISO-образа и передавать загрузку на находящиеся в нём ядра.
Для загрузки из ISO образов в Grub2
- ISO-образ размещается в доступном для загрузчика месте, например в каталоге /boot на жёстком диске
- в файл правил /etc/grub.d/40_custom добавляются например строки
- осуществляется обновление файла конфигурации
Создание тем загрузки
Grub2 поддерживает установку пользовательских тем загрузки. В качестве фона для тем могут быть использованы графические файлы расширений jpg/jpeg, png, tga.
Графический файл для использования в качестве фона
- может находиться в каталоге /boot/grub/
- может быть указан в виде переменной WALLPAPER
- может быть указан прямо в файле /etc/grub.d/05_debian_theme
Для внесения изменений в файла конфигурации /boot/grub/grub.cfg
Для изменения темы загрузки путём размещения файла в каталоге /boot/grub/
- копируется (или создаётся ссылка на) графический файл установленного формата в каталоге /boot/grub/
- осуществляется обновление файла конфигурации
Для изменения темы загрузки путём изменения переменной WALLPAPER
Для изменения темы загрузки путём изменения файла /etc/grub.d/05_debian_theme
- либо изменяется ссылка /usr/share/images/desktop-base/desktop-grub.png или /etc/alternatives/desktop-grub на нужный файл фона в формате png
- либо изменяется имя файла (расширение) путём редактирования строки в файле /etc/grub.d/05_debian_theme
- осуществляется обновление файла конфигурации
Восстановление Grub2
Повреждение загрузчика Grub2 и прекращение с его помощью процесса загрузки может быть связано с установкой / попыткой установки другого загрузчика, например Syslinux или при установке ОС семейства Windows, либо при изменении структуры жёсткого диска, например именования раздела на котором установлен загрузчик, либо в иных случаях. В связи с этим может возникнуть потребность восстановления загрузчика Grub2.
Для Grub2 разрушение может выглядеть как полное или частичное с различием между ними в том, что старт загрузчика не происходит вовсе или он запускается, но в Rescue mode.
При появлении экрана Rescue mode Grub2 существует возможность старта системы и последующего восстановления загрузчика без привлечения внешних ресурсов. При полном разрушении загрузчика (разрушении MBR) на носителе информации остаются файл конфигурации и модули Grub2, но для восстановления требуется предварительная загрузка с внешнего «источника».
Восстановления Grub2 при полном разрушении может быть осуществлено двумя способами:
- Первый способ заключается в загрузке «внешней» операционной среды с установленным загрузчиком Grub2, например с CD/DVD привода, USB-флешки или по сети через PXE/Etherboot, и последующей его «установкой» на целевой жёсткий диск.
- Второй способ использует возможность загрузки целевой операционной системе с установленным загрузчиком Grub2 минуя разрушенный MBR с последующим восстановлением Grub2 из «родной» среды.
Для восстановления Grub2 в Rescue mode
- в окне Rescue modeGrub2 выполняются команды
- после загрузки операционной среды осуществляется восстановление Grub2, например командой
Для восстановления Grub2 при разрушении MBR из внешней «живой» (Live) системы
- запускается «живая» (Live CD) система с внешнего носителя
- устанавливается загрузчик с помощью команд
Для восстановления Grub2 при разрушении MBR с загрузкой минуя носитель
- запускается целевая операционная система минуя разрушенный MBR
- устанавливается загрузчик с помощью команд
Установка Grub2 в Windows 7
Grub2 может быть установлен в операционных системах Windows. Особенно хорошо он «вписывается» в Windows 7′ в связи с тем, что эта ОС выделяет под загрузку специальный скрытый раздел.
Для установки в Grub2 в Windows 7
- запускается современный LiveCD диск с установленной Linux системой и последней версий загрузчика, например Parted Magic
- монтируется раздел жёсткого диска с установленной Windows 7
- перемещаются загрузочные файлы Windows 7 — bootmgr, bootsect.bak и каталог Boot/ — со скрытого раздела жёсткого диска (/dev/sda1) на системный (/dev/sda2)
- устанавливается Grub2 на первый (скрытый) раздел жёсткого диска и в MBR
- добавляется файл конфигурации Grub2 в подкаталог grub/boot/grub/grub.cfg
- добавляется новая секция в файле конфигурации
Теперь при перезапуске появится меню Grub2 с пунктом выбора «по цепочке» загрузчика Windows 7.
Запуск других загрузчиков из Grub2
Grub2 поддерживает загрузку «по цепочке» ОТ СЕБЯ на множество других загрузчиков напрямую или через по-цепочке на MBR разделы, на котором они установлены.
Примеры организации запуска других загрузчиков приведены в статьях
Запоминание выбранного пункта меню
Grub2 умеет запоминать пользовательский выбор пункта меню. Это означает, что при последующих стартах загрузчика, пунктом по умолчанию будет установлен последний выбранный вручную.
Для добавления запоминания выбранного пункта Grub2
Источник
Linux как установить grub2
Wikipedia сообщает «GNU GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки.» GRUB 2
Зачем нужен GRUB, если есть LILO/ELILO? [ править ]
- Поддержка модулей Raid, LVM файловых систем вкупе с интерактивным интерфейсом позволяют выбрать, что загружать откуда угодно в процессе загрузки (а не установки загрузчика).
- Возможность multiboot (для загрузки, к примеру, XEN)
Как установить GRUB? [ править ]
Установить дистрибутив с GRUB либо мигрировать загрузчик вручную.
Последний пункт выполняет генерацию конфига GRUB на основе шаблонов/скриптов в /etc/grub.d/. Редактировать полученный конфиг руками не рекомендуется т.к. он будет уничтожен следующей автогенерацией (выполняемой, к примеру, installkernel-ом).
Проверьте содержимое /etc/sysconfig/grub2: если там нет раскомментированной переменной GRUB_AUTOUPDATE_DEVICE (при смене загрузчика вручную не будет, т.к. она добавляется только alterator-grub), добавьте устройство или их список; если root/boot на md raid1, следует задать список дисков, на которых он размещён — например, не ‘/dev/md0 ‘, а ‘/dev/sdb /dev/sda ‘. После этого стоит выполнить grub-autoupdate.
Как передать свои параметры загрузки ядра? [ править ]
Для однократного изменения таковых при загрузке GRUB следует:
- нажать «e» при курсоре на цели загрузки, соответствующей используемому экземпляру ALT;
- в открывшемся редакторе отыскать строку, начинающуюся с linux /boot/vmlinuz;
- в её конец дописать требуемые параметры, отделив пробелом;
- нажать F10.
Если нужно, чтобы эти параметры ядра передавались ядру при каждой загрузке, надо прописать их в /etc/sysconfig/grub2 и дать команду update-grub ; подробнее см. следующий пункт.
Где отредактировать параметры ядра? [ править ]
Для постоянного применения иных параметров загрузки следует изменить конфигурацию загрузчика.
- Параметры ядра содержатся в /etc/sysconfig/grub2
- После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg
В /etc/sysconfig/grub2 поддерживаются следующие опции:
обновлять ли конфиг файл из файлтриггера установки/удаления ядер (по умолчанию true)
опции загрузки ядра
имя автообновляемого конфигфайла. (по умолчанию /boot/grub/grub.cfg)
добавлять ли симлинки в меню (добавлять, не добавлять, добавлять только /boot/vmlinuz [по умолчанию])
добавлять ли failsafe-пункты (добавлять, не добавлять, добавлять только для /boot/vmlinuz [по умолчанию])
Как дописать свои собственные пункты меню? [ править ]
- Теоретически вам не должно хотеться этого делать. Расскажите (в рассылке sisyphus@, к примеру) зачем вам этого захотелось — возможно, придумается какой-то новый общий случай.
- Если вам всё же хочется — допишите то, что считаете нужным в /etc/grub.d/40_custom
Например, если автоматически не обнаружилась Windows 10, может помочь такое описание пункта меню:
Где UUID — UUID раздела с загрузчиком Windows. Узнать UUID раздела можно командой blkid
- После редактирования этого файла нужно вызвать # grub-mkconfig -o /boot/grub/grub.cfg
Как выбрать ядро для загрузки по умолчанию (первый пункт grub)? [ править ]
Командой installkernel , можно с переменной — к примеру, для текущего:
Внесено предложение (altbug #38888) по добавлению к утилите update-kernel опции -d, —default — установка ядра по умолчанию. Будет ли оно реализовано — неизвестно.
Как выбрать то, что будет загружаться автоматом? [ править ]
данный пункт очень похож на следующий, но на этот пункт есть ссылки
- Выберите нужный вам пункт один раз при загрузке. savedefault должен сохранять ваш выбор на будущее.
- Не нравится такое поведение? Отключите GRUB_SAVEDEFAULT в /etc/sysconfig/grub2
- NB: в 2.00+ поведение изменилось, теперь дополнительные ядра для того же корня спрятаны в субменю «Advanced options».
Как отучить GRUB2 запоминать последний выбранный пункт? [ править ]
Поведение Grub в плане запоминания пунктов зависит от переменных GRUB_DEFAULT и GRUB_SAVEDEFAULT в файле /etc/sysconfig/grub2 . GRUB_DEFAULT может содержать пункт меню для загрузки, либо служебное слово ‘saved’. В случае, если GRUB_DEFAULT=’saved’ (в ALT по-умолчанию), загрузка определяется содержимым файла /boot/grub/grubenv : утилита grub-set-default задаёт значение переменной saved_entry, утилита grub-reboot — значение переменной next_entry (используется однократно при следующей загрузке, потом очищается). Утилита grub-entries (altbug #36048) выводит список существующих вариантов (правда неполный с точки зрения допустимых вариантов написания: не выводятся смешанные варианты выбора и выбор на основе ID пунктов меню). В случае, если GRUB_SAVEDEFAULT=true (в ALT по-умолчанию), в пункты меню Grub добавляется команда savedefault, вызывающая изменение переменной saved_entry в файле /boot/grub/grubenv .
Способ 1 [ править ]
В файле /etc/sysconfig/grub2 изменить значение GRUB_SAVEDEFAULT на false, перегенерировать конфиг grub:
посмотреть имеющийся список вариантов загрузки утилитой grub-entries:
задать нужный вариант загрузки:
цифровой вариант лучше не использовать, так как номера строк изменяются при удалении и добавлении ядер, но его вполне можно использовать для указания варианта на следующую перезагрузку утилитой grub-reboot.
Способ 2 [ править ]
В файле /etc/sysconfig/grub2 изменить строку
где n номер пункта меню, либо на
Вариант с названием предпочтительнее, поскольку после обновления ядра количество пунктов в меню увеличится и нумерация некоторых пунктов изменится. Внимание! Нумерация пунктов начинается с 0. Список пунктов можно получить по команде
Например, пусть мы имеем следующие пункты меню (этот пример не учитывает текущее состояние с подменю; оставлено в качестве примера, удобнее использовать grub-entries, как в первом варианте):
и хотим, чтобы по умолчанию грузился Windows. Тогда в /etc/sysconfig/grub2 пишем
Потом в терминале от пользователя root:
Перезагрузка. Так как в GRUB_DEFAULT задано конкретное значение, а не ‘saved’, переменная GRUB_SAVEDEFAULT значения не имеет.
Как однократно выполнить загрузку произвольного пункта меню? [ править ]
Иногда бывает удобно загрузиться с произвольным пунктом меню, но не менять текущий вариант. Это удобно, например, для тестирования нового ядра, когда надо иметь возможность вернуть старое ядро простой перезагрузкой. Для этого надо настроить Grub в соответствии со способом 1 предыдущего пункта, после чего можно задать пункт меню для следующей загрузки командой grub-reboot и запустить команду reboot. В момент начала загрузки конфигурация Grub автоматически вернётся в исходное состояние, и следующая загрузка компьютера произойдёт по-старому. Это аналогично использованию опции -R загрузчика Lilo.
Как загрузить Xen? [ править ]
Xen грузится с помощью multiboot:
- проверить, что вы используете grub2 >= 1.98-alt11
- apt-get install xen xen-libs xen-runtime xen-hypervisor
- запустить grub-mkconfig -o /boot/grub/grub.cfg
- выбрать соответствующий пункт при загрузке (savedefault запомнит выбор на будущее)
Как включить работу с последовательным портом? [ править ]
Примерно такими строчками в /etc/sysconfig/grub2:
(см. также). Не забываем про grub-mkconfig.
Загрузка Linux и Windows c разных жестких дисков [ править ]
Grub грузится с основного диска на котором Linux, Windows установлен на дополнительный жесткий диск. В 40_custom добавляем:
Если жестких дисков больше двух, играемся с hdX.
Как установить пароль на редактирование параметров ядра? [ править ]
По умолчанию при загрузке любой пользователь может добавить/изменить параметры. Этого можно избежать, если установить пароль. Проще всего сделать это в центре управления системой. Для этого потребуется пакет alterator-grub и выполнить следующие действия:
- Зайдите в ЦУС ( acc ), перейдите в режим эксперта, и в разделе «Система» откройте «Загрузчик GRUB».
- Установите флажок «Установить или сбросить пароль» и введите необходимый пароль.
После нажатия на кнопку «Установить» (переконфигурация GRUB происходит автоматически) при запуске системы и попытке либо изменить параметры загрузки (клавиша Е), либо выбрать другой пункт загрузочного меню, будет требоваться логин/пароль. Логин по умолчанию сейчас boot (altbug #33098)
Также для ограничения загрузки (как с изменением параметров, так и без) можно добавить в файл /etc/grub.d/40_custom строки:
В случае дистрибутивов серии 6.0 отключить графику в /etc/sysconfig/grub2 (см. altbug #26198):
Для защиты паролем возможности загрузки именно с изменёнными параметрами придётся добавить в переменную CLASS в скрипте /etc/grub.d/10_linux опцию --unrestricted (внимание: этот скрипт по состоянию на версию 2.00-alt20 входит в пакет grub-common и не помечен как %config, поэтому будет перезаписан при обновлении!).
После подобных операций следует перегенерировать конфигурацию командой grub-mkconfig -o /boot/grub/grub.cfg (либо grub-mkconfig , в зависимости от дистрибутива). В случае использования alterator-grub — это не требуется.
Как переустановить GRUB? [ править ]
После обновления до grub2-pc-2.00-alt1 операционная система может не загрузиться. В таком случае, необходимо иметь под рукой любой live disk. Далее:
- Загружаемся с rescue-cd, например ALT Linux Rescue
- Если использован ALT Linux Rescue:
- Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):
- Скачиваем предыдущую версию пакета:
- Устанавливаем rpm
- Переконфигурируем меню grub
После описанного выше, у меня загрузилась операционная система.
Как установить/восстановить загрузочную запись grub? [ править ]
- Если использован ALT Linux Rescue:
- Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):
После того как проведены подготовительные действия и сделан сhroot, необходимо выполнить
то выполните команду:
если же используется EFI-режим, может потребоваться восстановить загрузчик в ESP-разделе (EFI System Partition), который монтируется в /boot/efi:
Что за жалобы про BIOS Boot Partition? [ править ]
При загрузке под PC BIOS используется MBR и небольшая свободная область диска после него (31 килобайт до 63-го сектора) — соответственно первая стадия и core.img; при использовании UEFI ожидается GPT-разбивка загрузочного диска, при которой нет ни MBR, ни этой области. Отсюда возникает необходимость встроить вторую стадию загрузчика куда-то ещё. Таким местом и решили взять определённый в GPT тип раздела BIOS Boot Partition.
Инструмент разбивки дисков в составе инсталятора ALT Linux сделает такой раздел автоматически под UEFI, если разбиваете вручную или большой диск для BIOS — может потребоваться создать раздел минимального объёма (RED Hat рекомендует 1 мегабайт) с типом «bios boot partition» в терминологии alterator-vm либо меткой «bios_grub» в терминологии parted .
Во время загрузки Windows искажена картинка, что делать? [ править ]
Если при загрузке, например, Windows 7 часть экрана содержит «шум», возможно, отдалённо напоминающий картинку заставки GRUB — попробуйте выровнять используемые видеорежимы VESA:
- в файле /etc/sysconfig/grub2 поменяйте GRUB_GFXMODE='800x600' на GRUB_GFXMODE='640x480'[1] ;
- выполните команду update-grub или grub-mkconfig -o /boot/grub/grub.cfg
Вы можете сделать заставку текстовой, указав GRUB_GFXMODE='console'.
Источник