Поблагодари автора прямо сейчас на странице Спасибо!
Grub2
Материал из Пингвиньи радостей
Статья о загрузчике операционных сред GRUB2
Grub2 это универсальный загрузчик операционных сред.
Grub2 может быть легко установлен и на floppy-, usb-, cd/dvd-, hdd диски, а также использоваться в качестве PXE-загрузчика.
В операционной системе Debian от версии Squeeze и выше Grub2 устанавливается загрузчиком по умолчанию.
Сайт проекта www.gnu.org/software/grub/.
Установка в linux
Пакет присутствует в хранилище пакетов debian.
Для установки пакета
- в командной строке: следует выполнить команду # apt-get install grub2
- в графическом режиме: воспользоваться специализированной программой управления пакетами
После установки пакет готов к работе.
Замечание: Если ранее была установлена младшая версия Grub 1xx , то в целях обеспечения преемственности прежний файл конфигурации будет сохранён и организована загрузка по цепочке. Впоследствии от прежнего файла - файла конфигурации Grub 1xx и возникшей цепочки можно будет отказаться, например с помощью команды # upgrade-from-grub-legacy
Некоторые часто используемые команды
# sudo update-grub2 - обновление файла конфигурации
Сборка файла конфигурации
Для формирования меню Grub2 использует файл конфигурации /etc/boot/grub.cfg. В Debian данный файл формируется автоматически скриптом сборки update-grub2 из правил-скриптов, расположенных в каталоге /etc/grub.d/. При выполнении скрипта считываются файлы из каталога /etc/grub.d/, файл /etc/default/grub и создаётся новый файл конфигурации /etc/boot/grub.cfg. Правила сборки например предусматривают автоматический поиск установленных ядер Linux-систем, других операционных сред и добавление их в пункты меню.
Замечание Существуют и графические утилиты управления меню загрузки Grub2, например Startupmanager. Startupmanager также позволяет осуществить и сборку файла конфигурации, и установку некоторых параметров загрузки.
Параметры файла /etc/default/grub
GRUB_DEFAULT=0 - пункт меню по умолчанию, если указано saved то Grub2 будет сохранять выбранную позицию GRUB_TIMEOUT=5 - указание времени задержки до старта пункта по умолчанию в сек GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="" - параметры загрузки ядра #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" - разрешение фильтрации плохой памяти, параметр работает с любым ядром получающем информацию о памяти от Grub GRUB_TERMINAL=console - запрет графического терминала = переключение в текст GRUB_GFXMODE=640x480 - разрешение графического терминала, допустимые режимы могут быть получены командой vbeinfo GRUB_DISABLE_LINUX_UUID=true - запрет передаче ядру Linux параметра корневой системы в виде "root=UUID=xxx" GRUB_DISABLE_RECOVERY="true" - запрет создания в меню Grub2 пункта с режимом восстановления GRUB_INIT_TUNE="480 440 1" - указание параметров звукового сигнала при старте Grub2 WALLPAPER="/boot/grub/splash.png" - указание фоновой картинки, поддерживаются только png, jpeg (jpg), tga COLOR_NORMAL="black/black" - указание цвета меню для не выделенного пункта меню COLOR_HIGHLIGHT="magenta/black" - указание цвета меню для выделенного пункта меню
Назначение правил-скриптов сборки /etc/grub.d/
00_header - скрипт считывания установки GRUB из /etc/default/grub 05_debian_theme - скрипт темы GRUB, определяет фон, цвета и прочее 10_linux - скрипт определения конфигурации меню для установленного дистрибутива 20_memtest86+ - скрипт добавления пункта меню для утилиты тестирования памяти memtest86, если она установлена 30_os-prober - скрипт поиска на жестких дисках других операционных систем и добавления их в меню 40_custom - шаблон, для создания дополнительных пользовательских пунктов меню
Замечание Запуск скриптов, а соответственно и появление пунктов в меню GRUB, происходит в порядки их нумерации.
Ссылки
Команды консоли
Grub2 позволяет осуществить переход в командую консоль управления. Для этого в момент отображения меню загрузки следует нажать клавишу C.
В консоли управления доступны команды
> ls - отображение списка жестких дисков и разделов > ls (hd0,1) - отображение информацию об указанном разделе, например тип файловой системы, метку, UUID и дату последнего изменения данных > ls /boot/grub - отображение содержимого папки
> cat /путь/имя_файла - вывод содержимого указанного файла
> linux файл_ядра параметры - загрузка ядра linux с указанными параметрами
> initrd файл - загрузка образа стартовой файловой системы initrd
> chainloader +1 - передача управления загрузкой по цепочке другому MBR с установленного командой root раздела > chainloader /путь/имя_файла - передача управления загрузкой по цепочке другому загрузчику
> root - вывод информации о текущем корневом карзделе > root (hd0,1) - установка корневого раздела Внимание! Во избежание несовместимостей более правильным является использование команды «set root»
> set переменная=значение - задание значений переменных например > set root=(hd0,1) - (пример) установка корневым разделом, второго раздела первого жёсткого диска > set color_normal=magenta/green - установка цвета для обычного пункта меню (и текста в консоли) > set color_highlight=light-blue/black - установка цвета для выделенного пункта меню
> search - поиск раздела по UUID, метке или заданному файлу. Имеет следующие ключи: -u (или –fs-uuid) - поиск раздела по UUID -l (или –label) - поиск по метке раздела -f (или –file) - поиск по указанному файлу -n (или –no-floppy) - не проверять флоппи-дисковод -s (или –set) - установить найденный раздел в качестве значения заданной переменной
> lsfonts - отображение списка загруженных в настоящий момент шрифтов
> help - вывод списка доступных команд help l - вывод справки по всем командам, начинающимся на «l» help search - вывод справки о команде «search»
> halt - выключение питания компьютера
> reboot - перезагрузка компьютера
> background_image /путь/имя_файла - изменение фонового изображения в текущем сеансе background_image позволяет изменить изображение "на лету" - избегая перезагрузки. В сочетании с установкой цветов командой set позволяет подобрать подходящий вариант оформления в интерактивном режиме. background_image - (при использовании без параметров) сброс текущего фонового изображениия
> terminal_output.console - переключение на черно-белую цветовую гамму.
Ссылки:
Создание собственного пункта меню
Grub2 позволяет добавлять собственные пункты в меню загрузки.
Для добавления собственного пункта меню загрузки, например
- в файл правил /etc/grub.d/40_custom добавляются строки
menuentry "etherboot loader" { # пункт меню для добавления загрузчика PXE set root=(hd0,1) linux16 /boot/eb-net.lil }
- осуществляется обновление файла конфигурации
Ссылки:
Изменение пункта загрузки по умолчанию
Grub2 позволяет изменять пункт меню загрузки по умолчанию, а также осуществлять автосохранение осуществленного выбора.
Для постоянного изменения изменения пункта загрузки по умолчанию
- в файле параметров сборки /etc/default/grub изменяется строка
GRUB_DEFAULT=0 например на GRUB_DEFAULT=2
- осуществляется обновление файла конфигурации
Создание GRUB PXE-загрузчика
Grub2 может быть трансформирован и использован для осуществления загрузки компьютера по сети по PXE-протоколу вместо обычно применяемого в этих случаях PXELinux.
Для создания Grub2 PXE-загрузчика
- выполняются команды
# grub-mkimage --output=core.img --format=i386-pc --prefix="(pxe)/grub-loader" pxe pxecmd - создание загрузчика grub2pxe # cat /usr/lib/grub/i386-pc/pxeboot.img core.img > grub2pxe - добавление к grub2pxe PXE-модуля
или # grub-mkimage -d /usr/lib/grub/i386-pc/ -p "(pxe)/" -O i386-pc-pxe -o /<ПУТЬ>/grub2.pxe pxe pxecmd
Для использования Grub2 PXE-загрузчика
- загрузчик вместе с необходимыми файлами копируется в корневой каталог TFTP сервера <TFTPROOT>
# cp grub2pxe <TFTPROOT> - копирование самого загрузчика # cp /boot/* <TFTPROOT>/grub-loader - копирование необходимых для загрузки модулей
- в файл конфигурации DHCP-сервера /etc/dhcp3/dhcpd.conf в необходимое место добавляются например строки
group { filename "grub2pxe"; #option pxelinux.configfile "/grub-loader/grub.cfg"; - файл конфигурации для изменения порядка загрузки option root-path "<IP-SERVER>:/tftpboot/grub-loader"; ... }
- осуществляется обновление файла конфигурации
Ссылки:
Загрузка из ISO образов
Grub2 умеет осуществлять подключение/монтирование ISO-образа и передавать загрузку на находящиеся в нём ядра.
Внимание! Grub2 не передаёт управление загрузчику ISO-образа, а просто распаковывает его на лету. В связи с этим формирование меню и установка параметров загружаемого ядра должны быть произведены самостоятельно.
Для загрузки из ISO образов в Grub2
- ISO-образ размещается в доступном для загрузчика месте, например в каталоге /boot на жёстком диске
- в файл правил /etc/grub.d/40_custom добавляются например строки
menuentry "Gparted live" { # на примере Gparted Live версии 0.18.0-1-i486 set root=(hd0,1) set isofile="/boot/gparted-live-0.18.0-1-i486.iso" loopback loop $isofile linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt vga=788 ip=dhcp toram=/live/filesystem.squashfs findiso=$isofile initrd (loop)/live/initrd.img }
- осуществляется обновление файла конфигурации
Ссылки:
Создание тем загрузки
Grub2 поддерживает установку пользовательских тем загрузки.
В качестве фона для тем могут быть использованы графические файлы расширений jpg/jpeg, png, tga.
Замечание: Для добавления дополнительных тем загрузки оптимизированных для Grub2 в Debian может быть использован пакет grub2-splashimages. Установленные темы размещаются в папку /usr/share/images/grub/.
Графический файл для использования в качестве фона
- может находиться в каталоге /boot/grub/
- может быть указан в виде переменной WALLPAPER
- может быть указан прямо в файле /etc/grub.d/05_debian_theme
Для внесения изменений в файла конфигурации /boot/grub/grub.cfg
- выполняется команда
# update-grub2
Замечание: Просмотр наличия графических файлов осуществляется в указанном выше порядке. В качестве фона Добавляется первый из найденных.
Для изменения темы загрузки путём размещения файла в каталоге /boot/grub/
- копируется (или создаётся ссылка на) графический файл установленного формата в каталоге /boot/grub/
- осуществляется обновление файла конфигурации
Для изменения темы загрузки путём изменения переменной WALLPAPER
- в файл /etc/grub.d/05_debian_theme добавляется строчка
WALLPAPER="/usr/share/wallpapers/At_Night/contents/screenshot.png" строка добавляется перед командами set_background_image и set_default_theme
- осуществляется обновление файла конфигурации
Для изменения темы загрузки путём изменения файла /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
set_background_image "/usr/share/images/desktop-base/desktop-grub.png" ||
- осуществляется обновление файла конфигурации
Ссылки:
- Смотри /usr/share/doc/grub2-splashimages/README
- Изменение фоновой картинки в меню GRUB 2
- Splashimages.html Splashimages for GRUB2
Восстановление Grub2
Повреждение загрузчика Grub2 и прекращение с его помощью процесса загрузки может быть связано с установкой / попыткой установки другого загрузчика, например Syslinux или при установке ОС семейства Windows, либо при изменении структуры жёсткого диска, например именования раздела на котором установлен загрузчик, либо в иных случаях.
В связи с этим может возникнуть потребность восстановления загрузчика Grub2.
Для Grub2 разрушение может выглядеть как полное или частичное с различием между ними в том, что старт загрузчика не происходит вовсе или он запускается, но в Rescue mode.
Замечание: В целях настоящей статьи под полным разрушением загрузки понимается разрушении MBR от Grub2. Если предположить отсутствии на носителе информации и папки с файлом конфигурации и модулями Grub2, то следует считать, что Grub2 не установлен и требуется его первичная установка.
При появлении экрана Rescue mode Grub2 существует возможность старта системы и последующего восстановления загрузчика без привлечения внешних ресурсов.
При полном разрушении загрузчика (разрушении MBR) на носителе информации остаются файл конфигурации и модули Grub2, но для восстановления требуется предварительная загрузка с внешнего "источника".
Восстановления Grub2 при полном разрушении может быть осуществлено двумя способами:
- Первый способ заключается в загрузке "внешней" операционной среды с установленным загрузчиком Grub2, например с CD/DVD привода, USB-флешки или по сети через PXE/Etherboot, и последующей его "установкой" на целевой жёсткий диск.
- Второй способ использует возможность загрузки целевой операционной системе с установленным загрузчиком Grub2 минуя разрушенный MBR с последующим восстановлением Grub2 из "родной" среды.
Для восстановления Grub2 в Rescue mode
- в окне Rescue mode Grub2 выполняются команды
# ls (hd0,1)/ - устанавливается раздел с установленным загрузчиком # set root=(hd0,1) - установка пути корневой файловой системы # set prefix=(hd0,1)/boot/grub - установка пути к модулям загрузчика # insmod /boot/grub/linux.mod - загрузка модуля загрузки linux # linux /vmlinuz root=/dev/sda1 ro - установка расположения модуля ядра linux # initrd /initrd.img - установка стартовой файловой системы ядра linux # boot - загрузка установленной linux-системы
- после загрузки операционной среды осуществляется восстановление Grub2, например командой
# dpkg-reconfigure grub-pc
Для восстановления Grub2 при разрушении MBR из внешней "живой" (Live) системы
- запускается "живая" (Live CD) система с внешнего носителя
Замечание: В качестве загружаемой "живой" операционной среды могут быть использованы различные Linux Live системы, например такие как Debian Live, Parted Magic, SystemRescueCD, Rescatux, а также операционная система Debian запускаемая по сети, например с сервера терминалов NFS.
- устанавливается загрузчик с помощью команд
# su - получение прав суперпользователя # mount /dev/sda1 /mnt - подключение носителя с разрушенным Grub # mount --bind /dev /mnt/dev - подключение устройств для выполнения команды chroot # mount --bind /proc /mnt/proc # mount --bind /sys /mnt/sys # chroot /mnt - перехода в chroot-режим $ grub-install --recheck --no-floppy /dev/sda - установка Grub2 $ exit - выход из chroot-режима # umount -l /mnt/dev - отмонтирование служебных папок # umount -l /mnt/proc # umount -l /mnt/sys # umount -l /mnt - отмонтирование носителя, Grub2 установлен
Замечание: Существует и возможность осуществить проверку загрузочного меню Grub2 без перезапуска компьютера. Например с помощью команд # sync # echo 3 > /proc/sys/vm/drop_caches # qemu -hda /dev/sda
Для восстановления Grub2 при разрушении MBR с загрузкой минуя носитель
- запускается целевая операционная система минуя разрушенный MBR
Замечание: Для загрузки операционной системы с установленным загрузчиком Grub2 минуя разрушенный MBR могут быть использованы такие средства как SuperGRUB2 disk, специальные ядра altker32/altker64 распространяемые на LiveCD диске проекта Systemrescue, а также ручная загрузка из любого загрузчика, позволяющего осуществлять это вручную, например те же Grub2 или Syslinux запускаемые с CD/DVD привода или флешки.
- устанавливается загрузчик с помощью команд
# su - получение прав суперпользователя # grub-install /dev/sda - или # grub-install --recheck --no-floppy --root-directory=/ /dev/sda - установка Grub2 на жёсткий диск /dev/sda с (во)созданием каталога /boot/grub в точке подключения носителя /
Ссылки:
Установка Grub2 в Windows 7
Grub2 может быть установлен в операционных системах Windows. Особенно хорошо он "вписывается" в Windows 7' в связи с тем, что эта ОС выделяет под загрузку специальный скрытый раздел.
Для установки в Grub2 в Windows 7
- запускается современный LiveCD диск с установленной Linux системой и последней версий загрузчика, например Parted Magic
- монтируется раздел жёсткого диска с установленной Windows 7
# mount -t ntfs /dev/sda1 /media/sda1 # mount -t ntfs /dev/sda2 /media/sda2
- перемещаются загрузочные файлы Windows 7 - bootmgr, bootsect.bak и каталог Boot/ - со скрытого раздела жёсткого диска (/dev/sda1) на системный (/dev/sda2)
- устанавливается Grub2 на первый (скрытый) раздел жёсткого диска и в MBR
# grub-install --modules=ntfs --recheck --no-floppy --root-directory=/media/sda1 /dev/sda на устройстве /media/sda1 появляются файлы Grub2 в каталоге /media/sda1/boot
- добавляется файл конфигурации Grub2 в подкаталог grub /boot/grub/grub.cfg
- добавляется новая секция в файле конфигурации
menuentry "Windows 7" { set root=(hd0,2) chainloader +1 }
Теперь при перезапуске появится меню Grub2 с пунктом выбора "по цепочке" загрузчика Windows 7.
Ссылки:
Запуск других загрузчиков из Grub2
Grub2 поддерживает загрузку "по цепочке" ОТ СЕБЯ на множество других загрузчиков напрямую или через по-цепочке на MBR разделы, на котором они установлены.
Примеры организации запуска других загрузчиков приведены в статьях
Запоминание выбранного пункта меню
Grub2 умеет запоминать пользовательский выбор пункта меню. Это означает, что при последующих стартах загрузчика, пунктом по умолчанию будет установлен последний выбранный вручную.
Для добавления запоминания выбранного пункта Grub2
- в файл конфигурации /etc/default/grub добавляются строки
GRUB_SAVEDEFAULT=true GRUB_DEFAULT=saved
Замечание: При добавлении пунктов меню вручную с использованием файла /etc/grub.d/40_custom и желании запоминать их выбор тоже, следует в необходимые секции меню добавить строку savedefault, например menuentry "etherboot loader" { savedefault set root=(hd0,1) linux16 /boot/ipxe.lkrn }
- осуществляется пересборка файла конфигурации /boot/grub/grub.cfg
# update-grub
Ссылки:
Литература
- wikipedia.org: GRUB
- wikibooks.org: Grub 2 от А до Я
- wikibooks.org: Grub 2
- Руководство пользователя
- GRUB bootloader - Full tutorial
- GNU GRUB Manual 2.00
- Wiki GRUB 2 и GRUB Legacy
- GRUB2 (Русский)
- Автор статьи: Azteka :Grub2 - файл настроек /etc/default/grub
- Начальный загрузчик GRUB 2 - полное руководство
Справочная информация
- 01.10.2009: Grub2: создание статьи на примере для debian lenny amd64
- 11.10.2010: Grub2: последняя правка - добавлено описание изменения тем загрузки
- 20.01.2011: Grub2: правка внешнего вида, расширено и актуализировано описание установки собственных тем загрузки
- 12.10.2011: Grub2: добавлено описание установки в Windows 7
- 23.03.2014: Grub2: добавлено описание Загрузки из ISO образов
- 06.04.2014: Grub2: добавлено описание Параметров файла /etc/default/grub
- 31.01.2015: Grub2: добавлено описание Восстановления Grub2
- 17.02.2016: Grub2: добавлено описание Запоминание выбранного пункта меню
- 22.02.2016: Grub2: добавлено описание Команд консоли