Установка grub2: Установка загрузчика Grub | Losst
Установка GRUB2.
Установил вчера Windows 7 Professinal, и, естественно, загрузчик Windows затёр загрузчик Linux.
Опишу здесь способ восстановления Linux-загрузчика Grub2, которым я воспользовался чтобы при включении ноутбука было возможным выбрать систему для загрузки.
Для начала, нужен Live СВ с Ubuntu (или чем-то подобным, я конечно же воспользовался тем диском, с которого устанавливал Linux Mint), в составе которого есть хитрая утилита chroot
.
Гружусь с Live CD, запускаю терминал.
Ввожу команду, которая покажет мою таблицу разделов на жёстком диске:
sudo fdisk -l
Это для того, чтобы вспомнить/узнать, на каком диске установлена Linux.
Монтирую раздел с установленной Mint:
sudo mount /dev/sda6 /mnt
Примечание: sda
— диск в системе, sda6
— раздел на этом диске. У других конечно может быть по другому, в том числе и отдельно вынесенный раздел /boot.
Монтирую диски:
sudo mount —bind /dev/ /mnt/dev
и proc:
sudo mount —bind /proc/ /mnt/proc
Захожу в примонтированную систему под root:
sudo chroot /mnt
Теперь я — root-пользователь в системе, корневым разделом которой считается /mnt (спасибо chroot).
Переустановка grub2:
grub-install /dev/sda
(на физический диск)
Теперь можно выйти из chroot через команду exit и последовательно отмонтировать всё, что ранее примонтировал:
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt
Можно перезагрузить.
У меня, например, после этого загрузилась Mint, без выбора систем в процессе загрузки.
Поэтому нужно дать терминалу ещё одну команду на обновление меню grub2:
sudo update-grub
После этого при включении ноута появляется окно выбора системы для загрузки.
Дабы всё работало так как надо, ещё можно подредактировать файл настроек Grub2 (c правами администратора коненчно).
Лежит он в /etc/default/
И имеет он у меня следующий вид:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=»-1″
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=»splash»
GRUB_CMDLINE_LINUX=»»
#GRUB_BADRAM=»0x01234567,0xfefefefe,0x89abcdef,0xefefefef»
#GRUB_TERMINAL=console
#GRUB_GFXMODE=640×480
#GRUB_DISABLE_LINUX_UUID=true
GRUB_DISABLE_RECOVERY=»true»
Рассмотрим по пунктам:
GRUB_DEFAULT — отвечает за загружаемый по умолчанию пункт меню Grub2.
Его возможные параметры:
- =0 — выбирает пункт, который будет грузиться по умолчанию (согласно порядку в файле конфигурации /boot/grub/grub.cfg). Нумерация пунктов начинается с «0». В grub.cfg пункты меню начинаются с menuentry.
- =saved — выбирает пункт, который был загружен в предыдущий раз.
- =»Linux Mint 14 MATE 32-bit, 3.5.0-17-generic (/dev/sda6)» — можно использовать точное название пункта меню (берётся из grub.cfg со всеми знаками)
GRUB_TIMEOUT — отображает время в секундах, через которое автоматически загрузится выбранный по умолчанию пункт меню.
Его парамеры — от «-1» (означает что меню будет отображаться, до тех пор, пока не будет выбран пункт меню для загрузки) до нужного количества секунд (например, «10»)
GRUB_HIDDEN_TIMEOUT — обозначает время задержки загрузки grub2 (в секундах), дабы дать пользователю возможность вызвать меню загрузки, нажав Escape. Этот параметр применяется в том случае, если на компе установлена только Ubuntu, а вам нужно запустить проверку памяти и загрузиться с другим ядром.
GRUB_HIDDEN_TIMEOUT_QUIET — отвечает за отображение таймера во время паузы. При значении «true» таймер показан не будет, «false» — будет отображаться.
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` — отвечает за названия дистрибутива, которое будет отображаться в меню Grub2
GRUB_CMDLINE_LINUX_DEFAULT — отвечает за те параметры, с которыми запускаются linux-ядра при загрузке.
Значение по умолчанию — «quiet splash», что приводит показу графической заставки при запуске системы без показа какой-либо текстовой информации. Для показа текстовой информации о процессе загрузки следует удалить «quiet splash». Чтобы увидеть заставку и краткое текстовое сопровождение используется параметр «splash».
GRUB_TERMINAL=console — включает консольный режим (по умолчанию строка закомментирована — с # вначале, что включает графический режим). Имеет смысл раскомментировать строку для увеличения производительности.
GRUB_GFXMODE=640×480 — задаёт разрешение меню
GRUB_DISABLE_LINUX_RECOVERY=true — для того, чтобы избежать появления в меню режима Recovery, добавьте (если отсутствует) или раскомментируйте данную строку.
После редактирования файла настроек grub, нужно обновить /boot/grub/grub.cfg командой sudo update-grub
Ещё можно настроить фоновый рисунок в меню загрузки grub2 или изменить цвета пунктов меню, которые задаются в файле /etc/grub.d/05_debian_theme. Но я этого не настраивал, ибо меня и так всё устраивает.
Источники:
http://forum.ubuntu.ru/index.php?topic=74165.0
http://startubuntu.ru/?p=95
http://ubuntologia.ru/grub2-recovery
http://ubuntologia.ru/grub2-settings-file
Все чаще и чаще на форумах возникают вопросы:
Как удалить Ubuntu и восстановить загрузчик для Windows?
Как заменить grub на загрузчик Windows?
Установка Ubuntu рядом с Windows 8?
Ubuntu рядом с Win 8, загрузчик Windows не видит Ubuntu.
В связи с этим, решил написать заметку, о восстановлении загрузчика grub, о том, как нужно правильно удалять linux, восстанавливать загрузчик Windows и MBR.
1 способ. У нас есть live-cd/usb с дистрибутивом Linux.
1. Записываем live-cd, live-usb практически любого дистрибутива linux, будь то ubuntu, mint или еще что-то там.
2. Загружаемся с live-cd/usb, открываем терминал (Ctrl+T) и смотрим таблицу разделов диска:
$ sudo fdisk -l
Помимо fdisk, еще существует много различных утилит для просмотра и редактирования таблицы разделов: , cfdisk например.
По таблице видно, что linux установлен на разделе /dev/sda1
, напротив него стоит звездочка, это признак того, что раздел загрузочный.
3. Теперь этот раздел нужно смонтировать:
$ sudo mount /dev/sda1 /mnt
4. Раздел смонтирован, следовательно мы имеем доступ к нему.
Для этого нужно установить grub на жесткий диск (НО НЕ НА РАЗДЕЛ ЖЕСТКОГО ДИСКА!), так как мы восстанавливаем MBR:
$ sudo grub-install —root-directory=/mnt /dev/sda
где /mnt
— это рутовый каталог, который мы смонтировали, /dev/sda
— имя жесткого диска.
После этого MBR восстановлен, grub установлен.
Ситуация:
У вас на машине стоит три системы например: Windows 7 Ultimate, Windows XP Professional и Linux Mint 14.
Windows вам надоела, вы ее снесли и по каким-либо причинам, в списке grub»а остались разделы Windows.
Если случилась такая ситуация, то необходимо сгенерировать новый конфигурационный файл загрузчика. Он заново просканирует систему, определит установленные операционные системы на компьютере и сгенерирует конфиг с новыми параметрами меню загрузчика.
1. В консоли пишем:
$ sudo update-grub —output=/mnt/boot/grub/grub.cfg
где update-grub
— обновляет конфиг загрузчика, параметр —output
указывает на файл конфигурации grub»а.
2. После проделанных операций, можно перезагрузиться и загрузиться с жесткого диска(естественно заходим в BIOS).
Ну и все собственно.
Вот например как выглядит мое меню grub»а, установлен только Debian:
1. Опять же, загружаемся с live-cd/usb, смотрим разделы:
$ sudo fdisk -l
2. Монтируем раздел, на котором установлен linux и еще некоторые важные для работы разделы:
$ sudo mount /dev/sda1 /mnt
$ sudo mount —bind /dev /mnt/dev
$ sudo mount —bind /proc /mnt/proc
$ sudo mount —bind /sys /mnt/sys
Если раздел /boot
на отдельном разделе диска, то его тоже нужно примонтировать, например:
$ sudo mount —bind /boot /mnt/boot
3. Скопируем дефолтный файл grub»а (этот шаг можно пропустить):
$ sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
4. Теперь нужно перейти в среду chroot:
$ sudo chroot /mnt
5. Устанавливаем grub:
# grub-install /dev/sda
Если возникла ошибка, поможет команда:
# grub-install —recheck /dev/sda
6. Выходим из chroot, отмонтируем разделы и перезагружаемся:
# exit
$ sudo umount /mnt /dev
$ sudo umount /mnt/proc
$ sudo umount /mnt
$ sudo umount /mnt/boot #если требуется
$ sudo reboot
Ситуация:
У вас нет второго компьютера чтобы записать live-cd/usb, соотвественно нужно как-то выкручивать (у самого была такая ситуация после экспериментальной установки windows 8).
Передо мной лишь черный экран и:
grub>
Это восстановление наиболее сложное (Rescue Mode), но если делать по инструкции, все должно пройти нормально.
В rescue mode доступно всего четыре команды:
ls
set
unset
insmod
1. Нам нужно посмотреть, какие разделы видит наш grub:
> ls
появится что-то типа:
(hd0) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)
2. Кое-как криво Rescue Grub нам вывел разделы диска, якобы с файловой системой msdos.
Но это не важно.
Счет дисков у grub начинается с нуля, а разделов — с единицы.
По нашему выводу можно определить, что на первом диске у нас два раздела и на втором тоже два.
Экспериментальным путем угадывания будем определять, где же находится наш установленный linux.
3. Допустим раздел (hd0,1) — это именно то что нам нужно (приставку msdos можно опустить).
Пишем:
> set prefix=(hd0,1) /boot/grub
> set root=(hd0,1)
Таким образом мы получаем доступ к диску.
4. Пишем команду:
> ls /boot/grub
если будет какой-то вывод файлов, то все получилось, если же ничего нет, то мы промахнулись разделом, нужно смотреть другие, например (hd1,0)
.
5. Теперь пишем:
> insmod ext2
> insmod normal
> normal
6. После этого загружается grub, определяет операционные системы и практически восстановление завершено.
7. Загружаем linux, в терминале пишем:
$ sudo grub install /dev/sda
Все. grub прописывается в MBR и дальнейших проблем возникать не должно.
GRUB2 -мультисистемный, кроссплатформенный загрузчик ядра операционной системы. Основном применяется для загрузки ядер Linux. Позволяет иметь несколько установленных операционных систем на одной машине и при включении компьютера выбирать загрузку нужной ОС.
GRUB2 это новая ветка и кардинально отличается от GRUB Legacy, создан на основе PUPA и имеет модульную структуру. Поддерживает множество файловых систем, работает с BIOS и EFI.
Установка GRUB2:
Про установку много писать не буду, на разных дистрибутивах она может отличаться, обычно это выглядит так:
#
grub-install /dev/sda
/dev/sda
— это устройство, а не раздел.
#
grub-install
Также существует ряд опций, для каждого случая, версий GRUB2 и дистрибутива онимогут отличиться, описывать нет смысла. Переустановка ничем не отличается от установки и выполняется командой grub-install.
После установки загрузчик готов к работе в консольном режиме, для исправления этого нужно генерировать конфигурационный файл, об этом ниже.
Настройка:
по умолчанию конфигурационный файл находится тут — /boot/grub/grub.cfg
. Если файл был генерированный при помощи grub-mkconfig
, то он непригоден к редактированию и при следующем обновлении он будет перезаписан. А если вы, все-таки, решили сконфигурировать файл загрузчика сами, тогда удалите сгенерированную версию и создайте новую, сами или на основе примеров.
Автоматическая конфигурация:
Начнем с самого простого, автоматическая генерация выполнятся командой:
#
grub-mkconfig
Эта команда генерирует файл grub.cfg
. Чтобы автоматически обнаружить посторонние ОС необходим пакет os-prober
. В основном настройка конфигуратора grub-mkconfig выполняется в файле /etc/default/grub
, а также в файлах каталога /etc/grub.d/
. Добавить свои пункты меню можно в файле /etc/grub.d/40_custom
или /boot/grub/custom.cfg
. Чтобы изменения вступили в силу необходимо выполнить команду:
#
grub-mkconfig -o /boot/grub/grub.cfg
Команда создаст файл /boot/grub/grub.cfg
и проверит конфигурационные файлы на наличие ошибок. Конфигурационный файл /etc/default/grub
содержит параметры по умолчанию, каждый параметр имеет комментарий (краткое описание) на английском языке. Далее описание некоторых параметров из конфигурационного файла:
- GRUB_DEFAULT
— Выбор загрузки пункта меню по умолчанию. Может быть выбран по номеру или названию. - GRUB_TIMEOUT
— Указывает на время задержки перед загрузкой пункта по умолчанию. - GRUB_HIDDEN_TIMEOUT
— Время ожидания перед показом списка загрузки пунктов меню. - GRUB_DISABLE_OS_PROBER
— Убирает проверку на наличие установленных ОС. - GRUB_GFXMODE
— Отвечает за разрешение экрана. Командой vbeinfo можно посмотреть список доступных параметров разрешения в командной строке GRUB2. - GRUB_BACKGROUND
— Путь к фоновой картинке. - GRUB_THEME
— Путь к темам.
Ручная конфигурация:
Язык скрипта конфигурации GRUB2 упрощённый UNIX-шелл. Скрипт может быть как простым так и очень сложным, сложность скрипта ничем не ограничена. Скрипт генерируемый grub-mkconfig пригоден для загрузки в большинстве случаев, но он громоздок.
Ручная конфигурация GRUB2 открывает доступ ко всем возможностям, а за счет упрощения и удаления лишнего кода можно добиться большей стабильности, надежности и скорости работы.
Более подробно о конфигурации GRUB2 с примерами кода конфигурации и другой информацией можно прочитать на
Многие пользователи дистрибутивов Linux
устанавливают на жёстком диске своего компьютера две и более систем, одну как рабочую, а другую/другие для тестирования или просто ради любопытства. И здесь возникает не существенная, но всё-таки проблема с загрузчиком GRUB
, так как установка новой (другой системы) автоматически изменяет меню загрузки систем, т. е. наша вновь установленная система оказывается первой в списке. Для восстановления загрузчика GRUB
своей предпочтительной системы пользователь, применяет такие графические инструменты как: Boot-Repair
или Grub Customizer
, которые прекрасно с этим справляются.
Но оказывается и в терминале можно сделать то же самое всего одной командой. Для этого необходимо так же, как и с вышеупомянутыми инструментами, загрузиться в предпочитаемой системе, GRUB
которой хотите восстановить, открыть окно терминала и проверить, какая система примонтирована в настоящий момент. Выполните следующую команду:
Как видно на снимке примотированных разделов у меня три. Из них /media
, это раздел ntfs
, который служит для хранения различных файлов на моём компьютере,
в квадратных скобках, указывает на то, что примонтирован, но не задействован в настоящий момент, а вот sda6
, отмеченный правым слешем — это тот самый раздел, на котором находится корневая файловая система.
Теперь мы можем приступить к повторной установке загрузчика Grub
на ней. Необходимо выполнить следующую команду:
sudo grub-install /dev/sda
Установка завершена. Ошибок нет.
И остаётся только обновить GRUB
:
sudo update-grub
Вот и все. Теперь можно перезагрузить компьютер, чтобы убедиться, что выбранная система Linux
находится первой в меню загрузчика GRUB
.
Для загрузки Ubuntu используется программа-загрузчик GRUB (Grand Unified Bootloader). Она добавляет в главную загрузочную запись жёсткого диска информацию о том, что и от куда нужно загружать. Случается, что запись уничтожается другим загрузчиком. Это может произойти, например, во время установки Windows на соседний раздел. Тогда Windows заменит запись на свою, но предлагать загружать ещё и Ubuntu, она не будет.
Поэтому нам нужно восстановить загрузочную запись Ubuntu, а значит и сам Grub, чтобы вернуть к ней доступ.
Для этого нужно загрузиться с внешнего носителя, на котором установлена Ubuntu. Для этого отлично подойдёт установочный диск / флешка, с которой вы ставили Ubuntu.
Важный момент: если у Вас нет того же диска / флешки, но есть другой Linux на внешнем носителе, но подойдёт только если он написан под ту же архитектуру, что и восстанавливаемая система. То есть, с диска с 32х-битной Ubuntu не восстановить 64х-битную. По крайней мере, тем способом, что предлагается ниже.
Восстанавливаем Grub 2
Итак, предположим, у нас есть правильный диск с Linux. Загружаемся с него (в режиме Live). Открываем консоль и монтируем нужный логический диск (тот, на котором установлена восстанавливаемая система).
Sudo mount /dev/sda1 /mnt
Где /dev/sda1 — это внутреннее именование нужного раздела диска.
Если вы не знаете, как называется нужный раздел диска, выполните команду «mount» — она покажет все примонтированные разделы. После чего зайдите в файловый менеджер и примонтируйте нужный раздел. Снова посмотрите в mount — там добавилась строчка. В самом начале которой написано нечто вроде /dev/sdXY. X — буква, Y — число. Итак, используя написанную выше команду, примонтируйте раздел в папку /mnt .
Sudo mount —bind /dev /mnt/dev
sudo mount —bind /proc /mnt/proc
Этими командами мы монтируем служебные папки внутри примотированного раздела. Теперь, когда подготовлен нужный раздел, перейдём в него командой chroot .
Sudo chroot /mnt
И выполним восстановление grub:
Sudo grub-install /dev/sdX
Где X — это всё та же буква, что и выше.
Проблемы при восстановлении
Если после выполнения всех вышеуказанных действий продолжает загружаться Windows — проверьте с правильного ли физического диска вы загружаетесь (в BIOS).
Если выдаёт:
Chroot: cannot run command `/bin/bash»: Exec format error
значит архитектура Live системы не совпадает с восстанавливаемой — воспользуйтесь другим диском для восстановления.
Загрузочный носитель на основе GRUB2 for Windows::Журнал СА 01-02.2019
ИГОРЬ ОРЕЩЕНКОВ, инженер-программист, [email protected]
В статье рассматривается подготовка мультизагрузочного носителя для BIOS/EFI компьютеров на основе загрузчика GRUB2 в среде операционной системы Windows. Он может быть пригоден для первичной инициализации компьютера или восстановления работоспособности операционной системы компьютера
Технические требования к загрузочному носителю
Сменный загрузочный носитель, как правило, предназначен для первоначальной установки операционной системы или восстановления работоспособности компьютера. Для первого варианта использования на носителе должен находиться инсталляционный образ операционной системы с возможностью запуска процедуры установки. Во втором случае вероятно использование носителя в среде, пораженной компьютерными вирусами, откуда следует необходимость защиты его от записи на аппаратном уровне.
С учетом высказанных предпосылок в качестве загрузочного носителя удобно выбрать SD-карту. Оптические диски практически вышли из широкого обращения, а USB-флешки с аппаратной защитой от записи не везде можно встретить в продаже, и цена на них не всегда оправдана. В то же время любая SD-карта имеет переключатель защиты от записи, что в комплекте с кардридером превращает ее в недорогой, но функциональный носитель (см. рис. 1).
Рисунок 1. Из SD-карты и кардридера можно собрать функциональный носитель с аппаратной защитой от записи
Чтобы носитель можно было использовать как на компьютерах с загрузчиком BIOS, так и на платформах со схемой загрузки EFI, создадим на носителе три раздела MBR:
- Раздел FAT32 – для загрузчика GRUB2, ISO-образов специализированных дистрибутивов для восстановления работоспособности системы и Windows-утилит.
- Раздел с ISO-образом дистрибутива Mageia-6.1-Live-DVD-Xfce-i586-DVD.iso, который, будучи не требовательным к ресурсам компьютера, предоставляет полноценный рабочий стол с офисным пакетом и веб-браузером.
- Раздел с инсталляционным ISO-образом дистрибутива Mageia-6-i586-DVD.iso, который содержит в себе набор программного обеспечения, достаточный для организации как автоматизированного рабочего места офисного работника, так и для построения сервера организации.
Разметка носителя
Для хранения перечисленных выше данных будет достаточно накопителя емкостью 8 Гб. Его разметку можно выполнить под Windows с помощью штатной утилиты diskpart. Сначала нужно с помощью команды list disk вывести таблицу подключенных к компьютеру накопителей, чтобы определить, над каким выполнять операции.
C:\> diskpart
DISKPART> list disk
По значению в колонке «Размер», которое должно равняться 7580 Мбайт, определяем номер носителя для дальнейшей работы. Допустим, что в колонке «Диск ###» интересующему носителю соответствует номер 9. Очистим его содержимое.
DISKPART> select disk 9
Выбран диск 9
DISKPART> detail disk
В соответствии с принципом осмотрительности администраторов баз данных «Семь раз SELECT – один UPDATE» убедимся в правильности нашего выбора нужного сменного носителя.
В выводе команды detail disk должна содержаться следующая надпись:
USB Mass Storage Device USB Device, Тип: USB
и информация о единственном пока что разделе:
FAT32 Сменный 7576 Мб Исправен
Если сомнений больше не осталось, выполняем очистку носителя:
DISKPART> clean
После успешного выполнения команды должно появиться сообщение:
DiskPart: очистка диска выполнена успешно
Если же появилось сообщение об ошибке, например:
Программа DiskPart обнаружила ошибку: Не удается найти указанный файл
то команду нужно повторить.
Снова выводим таблицу со списком носителей:
DISKPART> list disk
Для инициализированного носителя «Диск 9» будет выведено:
Размер: 7580 Мб, Свободно 7579 Мб
Свободное пространство нужно разметить на три раздела:
- Один раздел – для ISO-образа Mageia-6-i586-DVD.iso размером 3,921,674,240 байт или 3740 Мб (если дважды разделить количество байтов на 1024).
- Второй раздел – для ISO-образа Mageia-6.1-LiveDVD-Xfce-i586-DVD.iso размером 2,028,994,560 байт или 1935 Мб.
- Третий раздел, который займет оставшееся свободным пространство, будет предназначен для загрузчика, Windows-утилит и вспомогательных загрузочных образов. Его размер составит 7579 – (3740 + 1935) = 1904 Мб.
Разделы лучше располагать на носителе в порядке, обратном перечисленному, – сначала загрузочный раздел, а после него – с ISO-образами дисков. Поэтому создадим сначала раздел размером 1904 Мб. Поскольку загрузочный носитель планируется максимально универсальным, попытаемся сделать этот раздел загрузочным по спецификации EFI:
DISKPART> create partition efi size=1904
Эта команда завершится с ошибкой и сообщением о том, что EFI-разделы поддерживаются только для GPT-дисков. К сожалению, один накопитель может быть размечен либо по схеме MBR, которую поддерживают загрузчики BIOS, либо по схеме GPT, которую поддерживают загрузчики EFI, и совместить эти схемы в пределах одного накопителя согласно разделу 5 спецификации UEFI 2.7 [8] никак не возможно.
Тем не менее практика показывает, что в большинстве случаев реальные реализации загрузчиков EFI без особых проблем распознают в качестве загрузочных разделы FAT32 с шестнадцатеричным кодом файловой системы EF, размещенные на дисках MBR. Воспользуемся этим фактом и создадим первичный MBR-раздел, после чего отформатируем его с присвоением метки BOOTDISK:
DISKPART> create partition primary size=1904
DISKPART> format FS=FAT32 LABEL="BOOTDISK" QUICK
DISKPART> set id=EF
Если между командами create partition и format по каким-то причинам пришлось завершить утилиту diskpart, то восстановить контекст после ее запуска можно командами:
DISKPART> select disk 9
DISKPART> select partition 1
При выполнении же команд в непрерывной последовательности вновь созданный раздел становится текущим автоматически, поэтому выполнять команду select partition для переключения фокуса нет необходимости.
Теперь можно создать остальные разделы. В качестве идентификатора файловой системы им нужно назначить шестнадцатеричное значение 17 (ISO 9660).
DISKPART> create partition primary size=1935
DISKPART> set id=17
DISKPART> create partition primary size=3740
DISKPART> set id=17
Каждая команда create partition должна завершаться сообщением:
Diskpart: указанный раздел успешно создан
а команда set сообщением:
Программа Diskpart успешно задала идентификатор раздела
Результат работы можно просмотреть с помощью команды list partition. А с помощью команды list disk можно убедиться, что на носителе не осталось неиспользованного пространства:
Свободно 0 байт
После этого можно завершить работу с программой diskpart:
DISKPART> exit
Запись ISO-образов в разделы накопителя
К сожалению, в операционной системе Windows нет средства, позволяющего с такой же легкостью, как утилита dd в мире UNIX, записывать файлы на устройства и обратно. Вероятно, по этой причине появился Windows-клон этой программы, которым мы воспользуемся для записи ISO-образов на разделы загрузочного накопителя.
Может возникнуть вопрос: «Зачем записывать образы ISO-дисков как «сырые данные» логических разделов и почему не записать их в виде файлов на обычный раздел, например FAT32?»
Дело в том, что образы Mageia [6] не поддерживают «петлевой» запуск из файла, как это уже давно умеют делать другие дистрибутивы, например Ubuntu и Fedora. Но поскольку они все же являются «гибридными» (то есть позволяют записывать себя как на DVD-матрицу, так и на USB-флешку), то есть шанс заставить их работать с раздела создаваемого носителя.
Для дальнейшей работы потребуется загрузить дистрибутивный архив dd-0. 6beta3.zip [1] и извлечь из него программу dd.exe. Предполагается, что файлы с ISO-образами уже лежат в текущей папке.
Выясним способ адресации разделов создаваемого загрузочного носителя программой dd:
C:\> dd.exe --list
NT Block Device Objects
...
Ошибка! Недопустимый объект гиперссылки.
link to Ошибка! Недопустимый объект гиперссылки.
Removable media other than floppy. Block size = 512
size is 7948206080 bytes
Ошибка! Недопустимый объект гиперссылки.
link to Ошибка! Недопустимый объект гиперссылки.
Removable media other than floppy. Block size = 512
size is 1996488704 bytes
Ошибка! Недопустимый объект гиперссылки.
link to Ошибка! Недопустимый объект гиперссылки.
Removable media other than floppy. Block size = 512
size is 2028994560 bytes
Ошибка! Недопустимый объект гиперссылки.
link to Ошибка! Недопустимый объект гиперссылки.
Removable media other than floppy. Block size = 512
size is 3921674240 bytes
В секции NT Block Device Objects нужно отыскать группу строк, сопровождаемых текстом Removable media other than floppy («Сменный носитель, отличный от гибкого диска»). Сведения о размерах найденных разделов подтверждают предположение о том, что записи «Ошибка! Недопустимый объект гиперссылки.» относятся к недавно созданным разделам на накопителе «Ошибка! Недопустимый объект гиперссылки.».
Теперь можно выполнять команды записи ISO-образов:
C:\> dd.exe if=Mageia-6-i586-DVD.iso of=Ошибка! Недопустимый объект гиперссылки. bs=1M --progress
C:\> dd.exe if=Mageia-6.1-LiveDVD-Xfce-i586-DVD.iso of=Ошибка! Недопустимый объект гиперссылки. bs=1M --progress
С помощью параметра if= программе передается имя записываемого файла ISO-образа, через параметр of= указывается раздел накопителя, в который будет произведена запись, параметр bs= задает размер единовременно копируемого блока, а параметр —progress позволяет интерактивно наблюдать в консоли количество записанных данных (из-за большого размера файлов процесс занимает продолжительное время, которое зависит от класса SD-карты и версии интерфейса кардридера).
Успешная запись должна завершиться следующими сообщениями:
3,740M 3740+0 records in 3740+0 records out
1935M 1935+0 records in 1935+0 records out
для первого и второго образа соответственно, которые говорят о равенстве количества прочитанных и записанных данных.
Установка и проверка загрузчика
Для установки на носитель загрузчика GRUB2 нужно загрузить дистрибутивный пакет grub-2.02-for-windows.zip [2], извлечь из него папку grub-2.02-for-windows и сделать ее текущей. Для продолжения работы нужно выяснить, под какой буквой подключен в операционной системе раздел FAT32 настраиваемого носителя. Это можно сделать в программе diskpart с помощью команды list volume. Строка таблицы с нужным разделом будет содержать:
Тип: Сменный, Размер: 1904 Мб, Состояние: Непригоден
Допустим, что искомому разделу соответствует буква «R». Установка загрузчика может быть произведена командой:
C:\> grub-install.exe --boot-directory=R:\ --target=i386-PC //./PHYSICALDRIVE9
Параметр —boot-directory задает путь, где будет создана папка grub с файлами загрузчика, параметр —target указывает тип загрузки (в рассматриваемом случае это BIOS), а последний параметр задает накопитель, загрузочный сектор которого будет модифицирован. Об успешной установке должны сообщить надписи:
Installing for i386-pc platform. Installation finished. No error reported
Поскольку было принято решение о создании универсального загрузочного носителя, можно установить загрузчики для 32- и 64-битных EFI:
C:\> grub-install.exe --boot-directory=R:\ --efi-directory=R:\ --removable --target=i386-efi
C:\> grub-install.exe --boot-directory=R:\ --efi-directory=R:\ --removable --target=x86_64-efi
Параметр —efi-directory указывает, где будет создана папка EFI с модулями, необходимыми для загрузки в режиме EFI, а параметр —removable информирует инсталлятор о том, что установка производится на сменный носитель.
На этом установка загрузчика завершена. Можно проверить созданный носитель на реальных компьютерах или с помощью специализированного эмулятора QemuBootTester. Последний позволяет выбрать носитель, с которого будет произведена загрузка виртуальной машины, и полный спектр режимов загрузки: BIOS, EFI-IA32 и EFI-x64 (см. рис. 2).
Рисунок 2. Эмулятор QemuBootTester позволяет выбрать загрузочный носитель (1) и режим загрузки (2). Для тестирования загрузчика достаточно 128 Мб (3) виртуальной памяти, а виртуальный жесткий диск можно отключить. Запуск осуществляется кнопкой Run QEMU (4)
Отметим, что при подключении носителя к компьютеру под управлением Windows система отображает диалоговые окна с предложением отформатировать нераспознанные разделы, на которые записаны образы дистрибутивов Linux. Естественно, делать этого не нужно.
При выборе носителя в качестве загрузочного управление системой возьмет на себя GRUB2. Его работа должна управляться с конфигурационным файлом, который пока что отсутствует. Поэтому на экране отобразится приглашение командного режима (см. рис. 3). В нем можно сразу опробовать команды:
grub> help
– отображение списка команд;grub> help команда
– отображение подсказки по использованию команды.
Рисунок 3. В командном режиме загрузчика GRUB2 можно проанализировать конфигурацию компьютера и выполнить загрузку операционной системы в аварийном режиме
Зачастую выводится больше информации, чем может уместиться на экране. Чтобы вывод на экран приостанавливался перед прокруткой и выдачей очередной порции сведений, нужно включить режим постраничного вывода:
grub> set pager=1
Очистить экран можно командой clear. Для завершения работы GRUB2 предусмотрены команды:
grub> reboot
– перезагрузка;grub> halt
– выключение компьютера.
В компьютерах на основе Phoenix BIOS может возникнуть трудность, связанная с выбором загрузочного носителя. В предлагаемых вариантах присутствуют USB-FDD, USB-ZIP, USB-CDROM – и не ясно, какой является правильным. На самом деле – ни один из перечисленных.
Нужно через пункт меню Advanced BIOS Features → Boot Seq&Floppy Setup установить в качестве первичного устройства загрузки First Boot Device значение Hard Disk (вероятно, оно и так установлено), а в пункте меню Advanced BIOS Features → Hard Disk Boot Priority на первое место переместить значение USB-HDD0: USB Mass Storage Device. Если такой вариант для выбора отсутствует, нужно убедиться, что загрузочный носитель подключен, после чего выполнить «теплую» перезагрузку по <Ctrl> + <Alt> + <Del> и повторить процедуру.
Настройка загрузчика
Как уже было отмечено, в своей работе загрузчик GRUB2 руководствуется командами, записанными в конфигурационном файле /grub/grub. cfg на загрузочном носителе.
Язык конфигурирования очень напоминает язык командного интерпретатора bash, однако для включения поддержки некоторых конструкций нужно явным образом подключить соответствующие модули. Например, для проверки условий требуется модуль test, а для использования регулярных выражений – модуль regexp. Скомпилированные модули в файлах с расширением .mod на этапе установки GRUB2 уже были записаны в подкаталоги i386-pc, i386-efi и x86_64-efi, соответствующие режимам загрузки.
Загрузчик GRUB2 можно русифицировать. Для этого необходимо:
После выполнения приведенных настроек GRUB2 «заговорит» по-русски. Помимо этого открывается возможность использования файлов с заранее подготовленными подсказками на русском языке, которые можно записать на носитель в кодировке UTF-8, а в нужный момент вывести на экран с помощью команды cat:
grub> cat --dos /grub/help.txt
Ключ —dos предписывает трактовать двухбайтовые последовательности \0D\0A как символы перевода строки.
При запуске GRUB2 инициализирует некоторые переменные среды окружения, полный список которых можно вывести на экран командой set.
Так, переменная $prefix содержит путь к папке с файлами GRUB2, а переменная $grub_platform содержит идентификатор способа загрузки:
- efi – если загрузка выполнена в режиме EFI-IA32 или EFI-x64;
- pc – если загрузка выполнена в режиме BIOS.
Этот факт можно использовать для условной загрузки блоков конфигурации из файлов /grub/efi.cfg или /grub/pc.cfg для учета специфики режима или подключения пунктов меню:
insmod test
set pcfg="$prefix/$grub_platform. cfg"
if [ -e $pcfg ]; then
source $pcfg
fi
Система меню и загрузка операционных систем
В конфигурационном файле grub.cfg можно описать меню с вариантами выбора, которые будут отображаться после загрузки вместо режима командной строки:
submenu "НазваниеРазделаМеню" {
menuentry "НазваниеПунктаМеню" {
... последовательность команд ...
}
}
При этом сохраняется возможность выхода в командную строку с помощью клавиши <c>.
Для работы с файлами, находящимися на ISO-образах, удобно использовать файловый менеджер 7ZipFM [3] с подключенным в его настройках (через пункт меню «Сервис → Настройки → Редактор») текстовым редактором AkelPad [4] (см. рис. 4).
Рисунок 4. Файловый менеджер из пакета 7Zip позволяет исследовать содержимое ISO-образов и извлекать из них необходимые файлы, а текстовый редактор AkelPad дает возможность «на месте» просматривать содержимое текстовых файлов
Если требуется выполнять загрузку с ISO-образа дистрибутива Linux, который поддерживает «петлевой» запуск, то пункты меню для этих целей можно извлечь из самого конфигурационного файла загрузчика нашего дистрибутива Linux.
Например, в случае Ubuntu это будет ubuntu-18.10-desktop-amd64.iso\boot\grub\loopback.cfg (еще потребуется указать путь к файлу с ISO-образом на загрузочном носителе в переменной окружения $iso_path).
Для дистрибутива Fedora можно воспользоваться блоком меню из файла Fedora-Workstation-Live-x86_64-29-1.2.iso\EFI\BOOT\grub.cfg в качестве основы, но к параметрам ядра нужно дописать указание пути к файлу образа в виде «iso-scan/filename=…».
Множество примеров пунктов меню для «петлевого» запуска различных дистрибутивов Linux можно найти в файле \grub-2. 02\docs\autoiso.cfg дистрибутивного пакета grub-2.02.tar.gz.
Описанным способом были сформированы пункты меню для запуска модулей дистрибутива System Resque CD [7], ISO-образ которого размещен в файле /ISO/systemrescuecd-x86-5.3.2.iso загрузочного носителя.
Стоит отметить метод подключения корневой файловой системы модуля NTPASSWD, предназначенного для сброса пароля администратора Windows. Она состоит из двух блоков: основного initrd.cgz и вспомогательного scsi.cgz с драйверами устройств SCSI. Их совместное использование реализовано командой:
initrd16 (loop0)/ntpasswd/initrd.cgz (loop0)/ntpasswd/scsi.cgz
Дистрибутивы Mageia не поддерживают «петлевую» загрузку, из-за чего их ISO-образы были записаны в разделы загрузочного носителя.
К сожалению, попытка выполнить запуск путем установки фокуса на содержащий дистрибутив раздел и передачи управления загрузчику командой chainloader +1 не увенчалась успехом. Это не удивительно, потому что загрузчик рассчитан на размещение в MBR, а не в загрузочный сектор раздела.
На помощь пришла команда GRUB2 syslinux_configfile, обнаруженная в эталонном конфигурационном файле \grub-2.02\docs\osdetect.cfg, который входит в состав дистрибутивного пакета grub-2.02.tar.gz. Она позволяет подключить к текущему меню GRUB2 блок, записанный в формате загрузчика isolinux. Так это выглядит для дистрибутивов Mageia:
menuentry "Mageia 6.1 Live DVD" {
search --set=root --fs-uuid 2018-10-01-18-55-31-00
syslinux_configfile -i /isolinux/isolinux.cfg
}
menuentry "Mageia 6 Installation DVD" {
search --set=root --fs-uuid 2017-07-15-07-08-52-00
syslinux_configfile -i /isolinux/isolinux. cfg
}
Команды search в приведенных примерах осуществляют поиск на доступных носителях разделов с указанными в параметрах —fs-uuid уникальными идентификаторами и делают их текущими.
Узнать значения идентификаторов разделов можно с помощью команды ls -l, введенной в командном режиме GRUB2:
grub> ls -l
...
Раздел hd0,msdos3: Тип файловой системы iso9660 – Метка "Mageia-6-i586" – Время последнего изменения 2017-07-15 07:08:52 Суббота,
UUID 2017-07-15-07-08-52-00 – Раздел начинается с 3932160КиБ – Общий размер 3829760КиБ
Раздел hd0,msdos2: Тип файловой системы iso9660 – Метка "Mageia-6.1-Xfce-LiveDVD" – Время последнего изменения 2018-10-01 18:55:31 Понедельник,
UUID 2018-10-01-18-55-31-00 – Раздел начинается с 1950720КиБ – Общий размер 1981440КиБ
...
Команды syslinux_configfile подключают блоки меню из файлов isolinux.cfg на найденных разделах. Эстетический недостаток этого способа состоит в том, что вместо описаний пунктов меню на экране будут отображаться их метки. Но зато сохраняется функциональность.
Образ LiveDVD работает без замечаний – так, как будто был использован обычный загрузочный носитель. А для образа инсталляционного диска придется указать местонахождение установочных файлов. Для этого:
- в окне с сообщением I can’t access a Mageia Installation disc in your CDROM drive нажать кнопку No;
- в окне запроса носителя с установочными файлами (Please select the disk containing the copy of the Mageia Distribution install source) выбрать устройство USB Mass Storage Device;
- в окне запроса раздела (Please select the partition containing the copy of the Mageia Distribution install source) выбрать третий раздел размером 3740 Мбайт;
- в окне ввода пути к установочным файлам поле Please select directory оставить пустым – просто нажать <Enter>.
Установочные файлы будут найдены, запустится инсталлятор, и установка продолжится в штатном режиме.
Заключение
В результате выполнения приведенных в статье рекомендаций в среде операционной системы Windows с использованием штатных средств и минимального набора стороннего программного обеспечения может быть создан универсальный мультизагрузочный носитель на базе GRUB2, пригодный для первичной инициализации компьютера или восстановления работоспособности операционной системы компьютера.
В статье рассмотрен способ подключения блоков загрузочного меню из конфигурационных файлов загрузчиков SysLinux/IsoLinux с помощью команды syslinux_configfile.
На сайте журнала http://samag.ru приведен рабочий вариант конфигурационного файла GRUB2 для загрузочного носителя BIOS/EFI с возможностью запуска модулей SystemResqueCD, получения рабочей среды на базе GNU/Linux Mageia 6 и установки этой операционной системы, который содержит.
- grub.cfg – основной конфигурационный файл GRUB2;
- pc.cfg – блок меню, специфичный для загрузки в режиме BIOS;
- efi.cfg – блок меню, специфичный для загрузки в режиме EFI;
- help.txt – файл с подсказкой о процедуре загрузки Windows;
- helpefi.txt – файл с описанием особенностей использования SystemRescueCD в режиме EFI.
При изучении возможностей GRUB2, помимо интернет-источников [5], целесообразно использовать справочную информацию, имеющуюся в папке \grub-2.02\docs\ дистрибутивного пакета grub-2.02.tar.gz:
- grub.info – документация на английском языке, которая может быть просмотрена в любом текстовом редакторе;
- grub.cfg – конфигурационный файл, содержащий основные примеры загрузки операционных систем;
- autoiso.cfg – конфигурационный файл, содержащий примеры загрузки операционных систем в «петлевом» режиме из файлов ISO-образов;
- osdetect. cfg – конфигурационный файл, содержащий сценарии поиска загрузочных разделов для множества операционных систем с последующей их загрузкой.
В ходе подготовки загрузочного носителя следует сконцентрировать внимание на выполняемых действиях. Ошибка в набранной команде может привести к необратимой потере информации, хранящейся на компьютере.
- Утилита DD для Windows – http://www.chrysocome.net/dd.
- Загрузчик GRUB2 – ftp://ftp.gnu.org/gnu/grub/.
- Архиватор и файловый менеджер 7Zip – https://www.7-zip.org.
- Текстовый редактор AkelPad – http://akelpad.sourceforge.net/.
- Cтатьи о загрузочных носителях – https://www.bootdev.ru.
- Mageia GNU/Linux – http://www.mageia.org/ru/.
- System Rescue CD – http://www.system-rescue-cd.org.
- Спецификация UEFI 2.7 – http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_7_A%20Sept%206.pdf.
Ключевые слова: Linux, rescue.
Мой мир
Вконтакте
Одноклассники
Google+
Восстановление GRUB2 с LiveCD — wiki
СПОСОБ 2 (без chroot)
Нам опять же понадобится LiveCD Ubuntu 9.10 или другой системы с поддержкой grub2. В отличие от предыдущего способа, мы не будем запускать установщик через chroot, что позволит сократить количество требуемых действий. Итак, загружаемся с выбранного LiveCD, запускаем консоль. Вместо использования chroot мы воспользуемся ключом «—root-directory». Но для начала убедимся, что данная опция поддерживается нашей live-системой. Если вы работаете с Ubuntu 9.10 Desktop, можно не волноваться. В ином случае выполните
man grub-install
Если в описании опций присутствует вышеупомянутый ключ «—root-directory» — все в порядке. Теперь нам нужно примонтировать корневой раздел системы. Если вы не помните, на каком разделе стоит система, вам поможет
sudo fdisk -l
или же можно глянуть
sudo blkid
Разница лишь в форме вывода информации. Определившись с корневым разделом, монтируем его. Пусть в нашем примере это будет sda5:
sudo mount /dev/sda5 /mnt
Если у вас выделен отдельный boot-раздел, примонтируйте и его. Допустим это sda2
sudo mount /dev/sda2 /mnt/boot
Теперь переходим собственно к установке grub2. Ключ «—root-directory» позволяет указать, что использовать в качестве корневой директории. Нам нужен корневой раздел нашей системы, который примонтирован в /mnt. Поэтому выполняем:
sudo grub-install --root-directory=/mnt /dev/sda
Как и в предыдущем способе, grub2 устанавливается на физический диск, а не на раздел! В качестве диска нужно указать тот диск, который установлен загрузочным в bios. Если все пройдет успешно, установщик выведет сообщение об успешном завершении и список обнаруженных разделов, которые были добавлены в «device.map». Если все это есть — отмонтируем диски и перезагружаемся. Если будет выведен неполный список разделов — отредактируйте файл «device.map» в корневой папке установленной системы (в описанном примере — «/mnt/boot/grub/device.map») поправляем его, добавив остальные диски и скорректировав нумерацию. Файл должен иметь вид
(hd0) /dev/sda
(hd1) /dev/sdb
При необходимости повторяем операции для всех жестких дисков. Сохраняем файл и повторно выполняем команду
grub-install
как описано выше. Теперь должен отобразиться правильный список дисков. Отмонтируем диски и перезагружаемся.
Установка GRUB2 на GPT-диск в раздел
Я использую MacBook Air 2013 и пытаюсь установить Gentoo. Я уже делал это несколько раз, но я всегда использовал другие «обходные пути» для этой проблемы, такие как непосредственное использование образа ядра EFI-заглушки.
То, чего я пытаюсь добиться, — это установить GRUB на PARTITION, чтобы я не зашифровал исходную компоновку моего Macbook.
Это моя таблица разделов:
GPT fdisk (gdisk) version 0. 8.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 236978176 sectors, 113.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 9DF6BE23-87E0-4602-B71F-7DAD445D5614
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 236978142
Partitions will be aligned on 8-sector boundaries
Total free space is 6 sectors (3.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 40 409639 200.0 MiB EF00 EFI System Partition
2 409640 176582599 84.0 GiB AF00 Customer
3 176582600 177852135 619.9 MiB AB00 Recovery HD
4 177852136 178114279 128.0 MiB EF00 EFI System
5 178114280 236978142 28.1 GiB 8300 Linux filesystem
Первый раздел оригинальный ESP моего Mac (где я установил Refind) , и я хотел бы сохранить его , как это. Я пытался разместить GRUB на 4-м разделе (это vfat ), но когда я пытаюсь установить его там, я получаю:
# > grub2-install /dev/sda4
/usr/sbin/grub2-bios-setup: warning: File system 'fat' doesnt' support embedding.
/usr/sbin/grub2-bios-setup: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
/usr/sbin/grub2-bios-setup: error: will not proceed with blocklists.
Я также пытался использовать
grub2-install --force /dev/sda4
но это ничего не сделало. Как я могу решить эту вещь? Спасибо!
grub2 install — b14esh.com
Доступные команды ls, set, unset, insmod
ls — выведит все доступные разделы
(hd0) (hd0,1) (hd0,2) (hd0,msdos3) — пример вывода команды ls
hd0 — первый диск
hd0,1 — первый раздел первого диска
hd0,2 — второй раздел первого диска
hd1 — второй диск
hd1,1 — первый раздел второго диска
!!! Grub счет дисков начинается с 0, а счет разделов — с 1.
!!! hd0,msdos3 — иногда grub неправильно определяет файловую систему и пишет msdos
!!! Используйте числовые значения
find /boot/grub/stage1 — покажет раздел где храниться основная часть загрузчика GRUB
!!! вот так можно установить загрузчик
!!!root (hdX,Y)
!!!setup (hdX)
!!quit
0) ls — выводим список дисков
1) Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1)
Указываем использовать диск (hd0,1)
set prefix=(hd0,1)/boot/grub
set root=(hd0,1)
2) Проверяем правильно мы выбрали раздел, и если файлы загрузки.
ls /boot/grub
ls /
3) Подгружаем модули.
!!! Вместо ext2 пиши свою ФС (ext3, ext4 , btrfs, ntfs и т.д.)
insmod ext2 — загружаем модуль ext2
insmod normal — запускаем модуль
normal — запускаем grub
4) Grub перейдёт в полнофункциональный режим.
Он автоматически найдет все операционки,
которые можно подгружать, и покажет своё Grub-меню
5) Грузимся в систему и восстанавливаем загрузчик
grub-install /dev/sdX — установим загрузчик
update-grub — обновление меню загрузчика
Пример:
ls — показываем разделы
ls (hd0,1)/ — показываем содержимое первого раздела первого диска
set prefix=(hd0,1)/boot/grub2 — определившись с разделом, укажем путь к модулям ядра
set root=(hd0,1) — указываем путь к файловой системе
insmod /boot/grub2/i386-pc/linux.mod — загружаем модули ядра для загрузки
linux /boot/vmlinuz root=/dev/sda1 ro — указываем ядро
initrd /boot/initrd — указываем ядро
boot — загружаемся
grub-install /dev/sda — устанавливаем загрузчик
grub-mkconfig -o /boot/grub/grub.cfg — обновляем меню загрузки
grub2 установка на флешку | Все о Windows 10
На чтение 7 мин. Просмотров 79 Опубликовано
Установка загрузчика на флешку может понадобиться по нескольким причинам, например, вы хотите установить дистрибутив Linux на внешний носитель или же вам нужен еще один способ загрузить компьютер, когда основной загрузчик был затерт и система не загружается. Одним словом, может быть множество причин.
Мы уже рассматривали как установить Grub на флешку в статье про создание мультизагрузочной флешки из нескольких систем, а теперь поговорим об этом более детально.
Установка Grub на флешку
Если вы устанавливаете на фшелку дистрибутив, то у вас не возникнет никаких проблем с установкой загрузчика. Он устанавливается так же, как и при установке на жесткий диск. Вам достаточно перейти в chroot окружение новой системы, подключить все ее разделы, а затем просто установить загрузчик командой:
И создать конфигурационный файл:
grub-mkconfig -o /boot/grub/grub.cfg
Но если вам нужен загрузчик без операционной системы, то дело немного усложняется. Вы не можете использовать просто grub-install, а конфигурация вообще не будет создана, так как утилита не понимает где находятся файлы загрузчика и файлы конфигурации для него. Но есть решение.
Важно заметить, что при любом способе установки загрузчика, желательно, чтобы на флешке использовалась таблица разделов MBR. Конечно, я не встречал флешек с GPT, но вы сами можете ее создать при желании, а тогда с установкой загрузчика возникнут проблемы. Второе, что важно заметить, фшелку желательно отформатировать в файловую систему fat32. Это важно, чтобы там можно было разместить файлы Grub. Потому что если флешка будет форматирована в NTFS, то ничего не выйдет, а в ext4 — то вы не сможете подключить ее в Windows и использовать для обмена файлами.
Далее подключите флешку в какую-нибудь папку, например, mnt:
sudo mount /dev/sdc1 /mnt/
Имя устройства /dev/sdb1 — это адрес первого раздела на вашей флешке. Обычно там есть только один раздел, так и должно быть. Если больше, то берите первый. А имя флешки может отличаться — sdb, sdc, sdd или другие. Смотрите как флешка называется у вас с помощью fdisk:
Когда устройство подключено мы можем перейти к установке загрузчика:
sudo grub-install —root-directory=/mnt/ /dev/sdc
Здесь мы указываем параметр —root-directory, это та папка, которая будет считаться корнем системы, и откуда будут браться файлы загрузчика при старте. Установщик автоматически скопирует их туда. Устройство /dev/sdb — ваша флешка. После того, как установка будет завершена, можно перейти к настройке пунктов меню. Забегая наперед, если эта команда не работает, используйте опцию —boot-directory вместо —root-directory, разные версии Grub работают по разному:
sudo grub-install —boot-directory=/mnt/boot —root-directory=/mnt/ /dev/sdc
Теперь нужно создать конфигурационный файл. Если вы используете grub-mkconfig, то получите такое же меню, как в вашей основной системе. Меня это вполне устраивает, только укажите правильное расположение файла, в папке /mnt:
sudo grub-mkconfig -o /mnt/boot/grub/grub.cfg
Теперь нам осталось протестировать как все работает. Для этого лучше использовать qemu:
qemu-system-x86 -hda /dev/sdc
Если возникли ошибки вы можете их быстро исправить не перезагружая компьютер. В дальнейшем, когда вам понадобятся новые пункты меню, вы можете добавить их вручную. Этот конфигурационный файл не будет стерт при обновлении системы, поскольку он на флешке.
Выводы
В этой статье мы рассмотрели как выполняется установка загрузчика grub на флешку. Несмотря на то, что это может вызвать некоторые сложности, процесс довольно понятен и не требует особых навыков. Зато, с такой флешкой вы можете быть уверены, что сможете загрузить компьютер, даже когда случайно повредили загрузчик. Если у вас остались вопросы, спрашивайте в комментариях!
Создание загрузочных дисков и прочие полезные мелочи
Страницы
2016-07-25
Делаем флешку мультизагрузочной, настройка GRUB2 EFI
Часть 2, настройка GRUB2.
И так, после того как мы сконфигурировали загрузчик Grub4Dos, в первой части данного материала, перейдем к загрузчику GRUB2.
Первое что необходимо сказать о данном загрузчике, EFI версия GRUB2 отличается от BIOS версии. GRUB2 EFI построен на 64/32 битной архитектуре, и загрузка некоторых элементов в нем невозможна. То есть, запустить Grub4Dos из GRUB2 EFI не удастся, так же, как и не удастся использовать MEMDISK из загрузчика SYSLINUX. Кроме того, EFI версия загрузчика не поддерживает загрузку MBR дисков. Хотя, в BIOS версии GRUB2 это все сделать можно.
О поддержке ISO файлов в GRUB2. Подключать их можно только монтированием, для просмотра и последующей загрузки его содержимого. Нет возможности загрузить ISO образ целиком в память, или загрузить его с первого сектора, как, к примеру, это умеет делать Grub4Dos.
Напомню, содержимое флешки представленное в первой части статьи:
В виду указанных выше особенностей загрузчика GRUB2 в EFI исполнении, не удалось загрузить следующие LiveCD:
Hiren’s BootCD — не удалось запустить вообще. В GRUB2 EFI отсутствует команда ntldr.
Dr.Web LiveDisk — Запуск данного диска возможен при распаковке содержимого образа диска, в корень раздела флешки, но только для файловой системы FAT32. Мы используем NTFS, поэтому запуск данного LiveCD не удался.
Ultimate Boot CD — из набора программ данного диска, удалось запустить только PartedMagic. Остальные приложения отказались грузиться, так как представляли собой образы дисков.
Перейдем к конфигурационному файлу загрузчика GRUB2. Открываем файл grub.cfg в любимом текстовом редакторе (рекомендую Notepad++), так же удаляем его содержимое и вставляем следующий код.
grub.cfg (кликните на кнопку «Copy» для копирования)
В меню добавлен MemTest86 от PassMark. Для работоспособности соответствующего пункта, скачайте файл memtest.efi и скопируйте его в папку ISO.
Проверим полученный результат в виртуальной машине. Для этого воспользуемся VirtualBox’ом. О том, как загрузиться c флешки в VirtualBox читаем здесь.
четверг, 21 мая 2015 г.
Мультизагрзочная флешка с GRUB2 + UEFI
8260-A46C2 /dev/sdb
конечно, параметры нужно указать от своей системы. Все что после media. Важно правильно задать путь до флешки. без сокращений * и туда, куда она впервые примонтирована. А то GRUB2 выдаст ошибку.
собрать EFI образ:
grub-mkimage —compress=xz -O x86_64-efi -d /usr/lib/grub/x86_64-efi
-o /home/user/bootx64.efi -p «/boot/grub» part_gpt part_msdos
ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux
multiboot efi_gop efi_uga font gfxterm
файл будет в /home/user.
опция -p «/boot/grub» говорит о том откуда будет читаться config файл и дополнительные модули, дальше перечисление встроенных модулей.
чтобы собрать efi файл, в который встроена и конфигурация и модули делаем так:
mkdir -p /tmp/grub.temp/boot/grub
создаем /tmp/grub.temp/boot/grub/grub.cfg
cd /tmp/grub.temp/
grub-mkstandalone —directory=»/usr/lib/grub/x86_64-efi/» —format=»x86_64-efi» —compress=xz —output=/home/user/bootx64.efi boot/grub/grub.cfg
почему то важен относительный путь boot/grub/grub.cfg
и потом нужно для архитектуры x86_64 скопировать /usr/lib/grub/x86_64-efi в /boot/grub/
20 комментариев:
Простите, я являюсь виндопользователем (качать образ бубна и дебиан неохота) и я хочу грузить ISO-файлы. для этого (как я понял), мне необходимы файлы vmlinuz и initrd.lz (это, как я понял, ядра системы. ). Главный вопрос — не поделитесь этими файлами? Или где мне их скачать?
Добрый день, те файлы, которые вы перечислили — это система инициализации linux. Если вы хотите грузить из образа именно линукс систему, то вам нужны файлы инициализации именно того образа, который вы собрались подгружать.
Благодарю! Очень полезная статья с примерами. Помогла мне разобраться что и как делать. Раньше делал флешки на grub4dos, теперь он старал неактуален из-за этого uefi. Одно непонятно. Хотел обновить refind_x64.efi до последней версии, но он отказывается стартовать из Grub2. Вероятно автор знает какую-то хитрую команду, чтобы его самому собрать для этой цели, как это делает grub-mkimage? 🙂 Архив для тестирования использовал grub2sep.zip
Спасибо. А зачем refind запускать из grub? не легче его установить напрямую?
у меня archlinux и там довольно приличная wiki. Вот статья по refind https://wiki.archlinux.org/index.php/rEFInd
Сам я им не занимался, если честно.
Так а может проблема в GRUB2? и нужно просто собрать свежий?
Восстановление загрузчика GRUB2
Иногда случется нарушение нормального функционирования загрузчика GRUB2. Например, после установки Windows можно столкнуться с тем, что при загрузке будет отображаться только меню загрузки Windows, а меню GRUB2 пропадает, что приведет к невозможности загрзуить что-либо кроме Windows. Такое происходит из-за того, что Windows при установке затирает загрузочную область жесткого диска (так назывемый MBR-раздел), удаляя оттуда запись загрузчика GRUB2.
Для восстановления GRUB2 понадобится liveCD Ubuntu или любой другой *nix системы, включающей GRUB2 в свой дистрибутив. Aрхитектура LiveCD должна соответствовать архитектуре существующей системы. Узнать текущую архитектуру можно с помощью команды «arch» или «uname -m»:
$ arch x86_64
что соответствует 64-разрядной системе.
Грузимся с подходящего LiveCD диска и примонтируем корневой раздел системы. Если вы не помните, на каком разделе стоит система, вам поможет команда df -l:
$ $ df -l Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda6 19898236 5750152 13114256 31% / none 4 0 4 0% /sys/fs/cgroup udev 498080 4 498076 1% /dev tmpfs 101788 356 101432 1% /run none 5120 0 5120 0% /run/lock none 508936 0 508936 0% /run/shm none 102400 0 102400 0% /run/user /dev/sda1 93207 35316 53079 40% /boot
Здесь корневой раздел /dev/vda6 и отдельный boot раздел на /dev/vda1. Примонтируем их:
$ sudo mount /dev/sda6 /mnt $ sudo mount /dev/sda1 /mnt/boot
Теперь можно переходить собственно к установке GRUB2. Ключ «—root-directory» позволяет указать, что использовать в качестве корневой директории. Нам нужен корневой раздел нашей системы, который примонтирован в /mnt. Поэтому выполняем:
sudo grub-install --root-directory=/mnt /dev/sda
Здесь GRUB2 устанавливается на физический диск, а не на раздел. В качестве диска нужно указать тот диск, который установлен загрузочным в bios.
Если все проло успешно, установщик выведет сообщение об успешном завершении и список обнаруженных жестких дисков, которые были добавлены в «device.map». Отмонтируем диски, перезагружаемся и радуемся. Если будет выведен неполный список дисков — необходимо отредактировать файл «device.map» в корневой папке установленной системы (в описанном примере — «/mnt/boot/grub/device.map») и добавить остальные диски, поправив нумерацию. Файл должен иметь вид:
(hd0) /dev/sda (hd1) /dev/sdb
Сохраняем файл и повторно выполняем команду grub-install. Теперь должен отобразиться правильный список дисков. Отмонтируем диски и перезагружаемся.
Здесь надо учитывать, что в grub2 имеется еще одно важное отличие от старого grub — нумерация жестких дисков и их разделов.
В старом grub нумерация физических дисков и нумерация разделов начинались одинаково — с нуля. Первый физический диск (sda в системе) обозначался «hd0», второй (sdb) — «hd1», и так далее. Это же осталось и в GRUB2.
Нумерация же разделов диска изменилась. Если в grub первый раздел первого диска (sda1) именовался «hd0,0», четвертый (sda4) — «hd0,3», то теперь в GRUB2 цифра раздела соотвествует цифре раздела в системе. То есть, sda1 теперь будет «hd0,1» (а не «hd0,0»), sdb4 — «hd1,4» — то-есть нумерация дисков идет с нуля, а нумерация разделов — с единицы.
GRUB2 — Gentoo Wiki
GRUB 2 ( GR и U nified B ootloader version 2 ), иногда стилизованный как GRUB2 и обычно называемый GRUB , является мультизагрузочным вторичным загрузчиком, способным загружать ядра из разнообразие файловых систем на большинстве системных архитектур. GRUB поддерживает PC BIOS, PC EFI, IEEE 1275 (открытая прошивка), SPARC и MIPS Lemote Yeeloong.
GRUB2 заменяет оригинальный загрузчик GRUB Legacy с полностью отдельной базой кода с новым синтаксисом, подобным оболочке, для расширенных возможностей создания сценариев.
Для быстрой настройки см. GRUB2 Quick Start.
При миграции системы с GRUB Legacy на GRUB2 см. Раздел «Миграция GRUB2».
Установка
Из-за того, как GRUB Legacy (grub-0.97) и GRUB2 были размещены в Gentoo, обе версии GRUB могут быть установлены в одной и той же системе одновременно; однако одновременно может быть установлена только одна версия в основной загрузочной записи (MBR) жесткого диска.
Рекомендуется обновить все системы до GRUB2, поскольку он поддерживает все те же наборы функций, что и Legacy.Наследие было удалено из репозитория Gentoo ebuild.
Предварительные требования
Чтобы контролировать, для каких платформ будет устанавливаться GRUB, установите переменную GRUB_PLATFORMS в make.conf. Архитектура amd64 включает профиль по умолчанию, который работает для большинства систем.
ФАЙЛ /etc/portage/make.conf
Пример установки переменной GRUB_PLATFORMS для платформ EMU, EFI и ПК
GRUB_PLATFORMS = "emu efi-32 efi-64 pc"Следующие платформы поддерживаются в зависимости от целевого процессора:
Цель | |||||||
---|---|---|---|---|---|---|---|
Платформа | i386 | ia64 | Мбит / с | мипсель | powerpc | sparc64 | x86_64 |
ARC | Нет | Нет | Нет | Да | Нет | Нет | Нет |
Coreboot | Да | Нет | Нет | Нет | Нет | Нет | 32-бит |
EFI | Да | Да | Нет | Нет | Нет | Нет | Да |
EMU | Да | Да | Да | Да | Да | Да | Да |
IEEE 1275 (открытая прошивка) | Да | Нет | Нет | Нет | Да | Да | 32-бит |
Лунгсон | Нет | Нет | Нет | Да | Нет | Нет | Нет |
Мультизагрузка | Да | Нет | Нет | Нет | Нет | Нет | 32-бит |
QEMU | Да | Нет | Нет | Нет | Нет | Нет | 32-бит |
QEMU-MIPS | Нет | Нет | Да | Нет | Нет | Нет | Нет |
ПК | Да | Нет | Нет | Нет | Нет | Нет | 32-бит |
Примечание
Всякий раз, когда изменяются значения в переменной GRUB_PLATFORMS , GRUB необходимо будет заново создать, чтобы построить измененный двоичный файл. Обязательно используйте параметры --newuse --deep
, как показано в разделе emerge ниже.
Профили amd64 по умолчанию включают поддержку функции (U) EFI. При использовании системы на основе BIOS установите для переменной GRUB_PLATFORMS значение pc
, чтобы избежать ненужных зависимостей.
USE-флаги
устройство-сопоставитель | Включить поддержку устройства-сопоставителя из sys-fs / lvm2 |
doc | Добавьте дополнительную документацию (API, Javadoc и т. Д.).Рекомендуется включать для каждого пакета, а не глобально |
efiemu | Соберите и установите среду выполнения efiemu |
шрифтов | Сборка и установка шрифтов для модуля gfxterm |
libzfs | Включить поддержку sys-fs / zfs |
крепление | Соберите и установите утилиту grub-mount |
нлс | Добавить поддержку родного языка (с помощью утилит локали gettextGNU) |
SDL | Добавить поддержку Simple Direct Layer (медиа-библиотека) |
тест | Включение зависимостей и / или подготовки, необходимых для запуска тестов (обычно контролируется FEATURES = test, но может переключаться независимо) |
тем | Сборка и установка тем GRUB (звездное поле) |
истинный тип | Соберите и установите утилиту преобразования grub-mkfont |
Выход
Для установки GRUB используйте обычный синтаксис emerge:
root #
emerge --ask --newuse --deep sys-boot / grub: 2
Дополнительное ПО
При желании установите утилиту os-prober (предоставляемую в пакете sys-boot / os-prober) для проверки GRUB и создания загрузочных записей для других операционных систем при запуске команды grub-mkconfig. В большинстве случаев это позволит GRUB автоматически обнаруживать другие операционные системы, включая Windows 7, 8.1, 10, другие дистрибутивы Linux и т. Д.
root #
emerge --ask --newuse sys-boot / os-prober
Установки GRUB (и, возможно, sys-boot / os-prober) не активируют автоматически загрузчик . Они только устанавливают загрузчик , программное обеспечение в операционной системе. Чтобы установить загрузчик в саму систему (чтобы он использовался при загрузке системы), необходимо предпринять дополнительные шаги, которые описаны в разделе «Конфигурация».
Конфигурация
Конфигурация GRUB имеет два важных аспекта:
- Установка программного обеспечения GRUB в качестве вторичного загрузчика системы.
- Конфигурация загрузчика GRUB.
Установка программного обеспечения GRUB зависит от типа системы и описана в разделе «Установка загрузчика». Сначала мы рассмотрим конфигурацию самого загрузчика.
Главный файл конфигурации
Сценарий grub-mkconfig используется для создания конфигурации grub.Он использует сценарии из /etc/grub.d/* вместе с файлом конфигурации / etc / default / grub для генерации окончательного /boot/grub/grub.cfg — единственного файла конфигурации, используемого самим GRUB2.
Файл | Формат | Правки рекомендуются? | Описание |
---|---|---|---|
/ usr / sbin / grub-mkconfig | Сценарий оболочки POSIX | № | Устанавливается как часть пакета sys-boot / grub: 2. Запустите этот сценарий, чтобы сгенерировать / boot / grub / grub.cfg после настройки файлов, описанных ниже. |
/boot/grub/grub.cfg | Скрипт оболочки GRUB2 | № | Файл, созданный grub-mkconfig. Этот файл оценивается встроенным интерпретатором скриптов GRUB2 и не обязательно поддерживает все команды или синтаксис POSIX. См. Справку по сценариям в руководстве GRUB для получения информации о поддерживаемых функциях. Имейте в виду, что изменения в этом файле не сохранятся до следующего запуска grub-mkconfig. |
/ etc / grub.г / * | Сценарии оболочки POSIX | Может быть | Каждый сценарий в /etc/grub.d/*, для которого установлен бит выполнения, оценивается последовательно, и стандартный вывод объединяется для формирования окончательного /boot/grub/grub.cfg (или любого другого файла, переданного в grub- mkconfig -o вариант ). Эти сценарии используют текущую системную оболочку и, следовательно, могут использовать любой поддерживаемый синтаксис. В идеале они должны быть POSIX-совместимыми сценариями, а выходной сценарий должен быть совместим с интерпретатором GRUB2.Может потребоваться отключить или добавить скрипты. Например, чтобы добавить пункты меню, которые не могли быть созданы автоматически. |
/boot/grub/custom.cfg | Скрипт оболочки GRUB2 | Может быть | Сценарий /etc/grub.d/41_custom будет ссылаться на этот файл для чтения во время загрузки, если он существует. Этот файл предоставляет место для добавления дополнительных записей или команд и не требует регенерации основного файла grub.cfg. |
/ и т. Д. / По умолчанию / grub | Сценарий оболочки POSIX | Есть | В большинстве случаев это единственный файл, который следует изменять напрямую.В основном он используется для назначения переменных, используемых сценариями в /etc/grub.d для создания рабочего файла конфигурации. См. Переменные конфигурации GRUB2 или официальный справочник по поддерживаемым переменным. |
GRUB не требует, чтобы администратор вручную поддерживал конфигурацию параметров загрузки (как в случае с загрузчиками, такими как GRUB Legacy и LILO). Вместо этого он может сгенерировать свой файл конфигурации (/boot/grub/grub.cfg) с помощью команды grub-mkconfig. Эта утилита будет использовать сценарии из / etc / grub.d / и настройки в / etc / default / grub.
Предупреждение
Утилита grub-mkconfig не работает должным образом при использовании программного RAID. Ручная настройка скриптов в /etc/grub.d/ необходима, иначе после установки система останется в незагружаемом состоянии.
После изменения одного или нескольких параметров запустите утилиту grub-mkconfig с параметром -o
, указывающим на выходной файл, расположенный в /boot/grub/grub.cfg (это расположение вывода GRUB2 по умолчанию):
корень #
grub-mkconfig -o / boot / grub / grub.cfg
Создание grub.cfg ... Нашел образ linux: /boot/vmlinuz-3.3.0-gentoo Готово
Каждый раз, когда вызывается утилита grub-mkconfig, создается новая конфигурация.
Предупреждение
Если grub-mkconfig не сообщает о найденных записях, значит, записи не найдены. В этом случае GRUB не будет предлагать выбор загрузки при перезапуске системы, что может оказаться сложной и трудоемкой ситуацией для решения. Перед перезапуском системы убедитесь, что выходной сигнал удовлетворительный.
Установка параметров конфигурации
Следующие переменные в / etc / default / grub являются наиболее часто используемыми для управления работой GRUB:
переменная | Пояснение | Значение по умолчанию |
---|---|---|
GRUB_DEFAULT | Определяет пункт меню по умолчанию, выбранный при загрузке. Может быть числовым индексом, заголовком меню или «сохранено». | По умолчанию используется первая обнаруженная запись. |
GRUB_TIMEOUT | Задержка (в секундах) перед загрузкой входа в меню по умолчанию.Установите 0 для немедленной загрузки или -1 для бесконечного ожидания. | По умолчанию 5 секунд. |
GRUB_CMDLINE_LINUX | Параметры, передаваемые в командной строке ядра для всех пунктов меню Linux. Например, для поддержки гибернации пользователям потребуется добавить GRUB_CMDLINE_LINUX = "resume = / dev / sdXY" с / dev / sdXY в качестве раздела подкачки. | |
GRUB_CMDLINE_LINUX_DEFAULT | Параметры, передаваемые в командной строке ядра для записей меню Linux, не требующих восстановления. | |
GRUB_DEVICE | Начальное корневое устройство (т.е. параметр ядра root = ). Установите это, чтобы переопределить автоматическое определение корневого устройства, выполняемое командой grub-mkconfig. Например, GRUB_DEVICE = / dev / ram0 заставит использовать root = / dev / ram0 в командной строке ядра. |
Для более полного списка, пожалуйста, обратитесь к подстранице переменных конфигурации и к информационной странице grub-mkconfig.
После изменения параметров повторно сгенерируйте файл конфигурации GRUB2 с помощью grub-mkconfig.
Включение или отключение сценариев конфигурации
Каталог /etc/grub.d/ содержит сценарии, которые grub-mkconfig использует для создания файла grub.cfg. По умолчанию содержимое этого каталога должно быть похоже на следующее:
пользователь $
ls /etc/grub.d/
00_header 10_linux 20_linux_xen 30_os-prober 40_custom 41_custom README
GRUB будет использовать все установленные скрипты, помеченные как исполняемые (а по умолчанию все они и есть).Чтобы отключить любой из сценариев, просто удалите исполняемый бит из разрешений файла сценария с помощью команды chmod. В следующем примере все сценарии, кроме 00_header и 10_linux, отключены:
root #
chmod -x /etc/grub.d/{20_linux_xen,30_os-prober,40_custom,41_custom}
После изменения сценариев (или удаления исполняемого бита) повторно сгенерируйте файл конфигурации с помощью grub-mkconfig.
Управление скриптами конфигурации
Некоторые функции или возможности можно использовать только при изменении сценариев конфигурации.Например, для поддержки двойной загрузки с FreeBSD необходимо выполнить следующие действия.
Измените сценарий /etc/grub.d/40_custom на:
ФАЙЛ /etc/grub.d/40_custom
Добавление записи для двойной загрузки
menuentry "FreeBSD" --class freebsd --class bsd --class os { insmod ufs2 insmod bsd установить root = (hd0,1) kfreebsd / загрузка / ядро / ядро kfreebsd_loadenv /boot/device.hints установите kFreeBSD.vfs.root.mountfrom = ufs: / dev / ada0s1a установите kFreeBSD.vfs.root.mountfrom.options = rw установите kFreeBSD.hw.psm.synaptics_support = 1 }/ dev / sda1 или
(hd0,1)
— это раздел, в котором находится FreeBSD. Если для раздела FreeBSD использовалась обычная установка UFS, то / dev / sda1 является контейнером (что-то вроде логического раздела). Он состоит из раздела подкачки и корневого раздела. Убедитесь, что сценарий 40_custom исполняется, запустив ls -la /etc/grub.d/40_custom. Если исполняемый бит не установлен, установите его с помощью команды chmod u + x 40_custom.Примечание
Пользователи, знакомые с тем, как пронумерованные разделы GRUB Legacy, должны отмечать разделы, начинающиеся с 1, а не с 0, в GRUB2.Затем установите GRUB и обновите файл конфигурации:
корень #
grub-install / dev / sda
root #
grub-mkconfig -o /boot/grub/grub.cfg
Установка загрузчика
Предупреждение
Каталог--efi-directory
, используемый в этой статье, отличается от каталога, использованного в Справочнике AMD64.Установка GRUB в качестве загрузчика системы зависит от того, как система предназначена для загрузки (с помощью какого типа прошивки, например, на ПК, либо устаревший BIOS, либо его преемник UEFI) и как разделен диск, на котором должен быть установлен загрузчик. (например, на ПК, где используется макет разделов MBR или GPT).
В этой статье рассматриваются следующие ситуации:
Выберите инструкции по установке, подходящие для системы.
BIOS с MBR
Примечание
Если система предназначена для двойной загрузки с другой (предустановленной) операционной системой, например Microsoft Windows, убедитесь, что загрузчик Linux может сосуществовать или выполнять двойную загрузку обеих операционных систем.На ПК рекомендуется использовать тот же метод загрузки, что и предустановленная система, например когда Windows использует устаревшее разделение MBR, оно также загружается в режиме «устаревшего BIOS» (UEFI называет его CSM, сокращение от Compatibility Support Module, по сути, эмуляция BIOS). Если режим изменен, например из EFI-CSM (режим BIOS) в собственный (U) режим EFI предустановленная система наверняка больше не будет загрузочной.Убедитесь, что каталог / boot доступен — если он использует отдельный раздел, убедитесь, что он смонтирован:
Запустите команду grub-install, чтобы скопировать соответствующие файлы в / boot / grub.На платформе ПК это также устанавливает загрузочный образ в основную загрузочную запись (MBR) или в загрузочный сектор раздела. Если все пойдет хорошо, после запуска grub-install следует ожидать вывода, подобного приведенному ниже:
root #
grub-install / dev / sda
Установка завершена. Об ошибках не сообщается.grub-install принимает параметр
--target
для установки архитектуры процессора и системной платформы. Если не указано иное, grub-install попытается угадать правильные значения; в системе amd64 / x86 по умолчанию будет использоватьсяi386-pc
.grub-install также принимает параметр--boot-directory
, чтобы указать программе установки GRUB, в каком каталоге искать загрузочные файлы. По умолчанию используется текущий / boot, но это полезно при попытке переместить корневой раздел.Разметка BIOS с MBR
Обязательно оставьте достаточно свободного места перед первым разделом. Запуск первого раздела в секторе 2048 оставляет не менее 1 Мбайт дискового пространства для основной загрузочной записи. Рекомендуется (но не обязательно) создать дополнительный раздел для GRUB, который называется загрузочным разделом BIOS .Этот раздел просто нужно определить, но не форматировать. Это необходимо только в том случае, если впоследствии система будет переведена на схему разделов GPT. При использовании MBR в этом нет необходимости.
Если следовать инструкциям по установке Gentoo, этот загрузочный раздел BIOS уже будет доступен.
BIOS с GPT
Если необходим раздел / boot, начните с монтирования раздела / boot:
Если все пойдет хорошо, после выполнения команды grub-install следует ожидать вывода, подобного приведенному ниже:
root #
grub-install / dev / sda
Установка завершена.Об ошибках не сообщается.grub-install принимает параметр
--target
для установки архитектуры процессора и системной платформы. Если не указано иное, grub-install попытается угадать правильные значения; в системе amd64 / x86 по умолчанию будет использоватьсяi386-pc
. grub-install также принимает параметр--boot-directory
, чтобы указать программе установки GRUB, в каком каталоге искать загрузочные файлы. По умолчанию используется текущий / boot, но это полезно при попытке переместить корневой раздел.с двойной загрузкой с Windows
Note
Традиционно компьютеры x86 использовали BIOS в качестве встроенного ПО. После перехода на (U) EFI на ПК (примерно в 2005 г.) раньше существовала эмуляция BIOS под названием «Модуль поддержки совместимости» (CSM), поэтому ПК все еще были совместимы с существующими операционными системами. На обычных ПК использование EFI-CSM было прекращено с 2020 года. Даже до 2020 года в некоторых реализациях (U) EFI, таких как серверы, CSM полностью отсутствовал. Поэтому «устаревший режим BIOS» больше не доступен в современных системах с UEFI.UEFI в своем собственном режиме загрузки требует таблицы разделов GUID (GPT), поэтому предустановленная операционная система уже будет использовать схему разделения GPT.Когда система предназначена для двойной загрузки с установленной Microsoft Windows в режиме BIOS, полное и собственное разбиение GPT невозможно. Windows позволяет загружаться из раздела MBR только в режиме BIOS, который включает режим эмуляции BIOS (U) EFI, называемый «CSM». Однако для Linux по-прежнему можно использовать схему разбиения GPT даже из режима BIOS (или EFI-CSM), но для двойной загрузки с Windows это требует гибридного разбиения: до четырех разделов может быть определено как в GPT, так и в Таблицы разделов MBR одновременно.
Уже установленная Windows откажется загружаться при изменении режима загрузки или схемы разметки. Кроме того, более старые системы Windows вообще не поддерживают GPT (или EFI), что требует использования BIOS или EFI-CSM вместе с MBR. Если Windows поддерживает EFI, ее можно переустановить в собственном режиме UEFI и схеме разбиения GPT, а также в Linux; см. раздел UEFI с GPT.
Гибридное разделение между GPT и MBR создает как допустимую таблицу разделов GPT, так и допустимую таблицу разделов MBR одновременно, но ограничивает общее количество гибридных разделов четырьмя из-за ограничения MBR четырьмя основными разделами.Поскольку ESP (системный раздел EFI, содержащий загрузчики EFI) занимает один раздел, остается только три общих раздела между MBR и GPT. Когда один раздел используется для Windows, а другой — для Linux, возможен только один дополнительный гибридный раздел, например, отдельный Linux / загрузочный раздел или общий раздел данных между двумя операционными системами.
Предупреждение
Обычно таблица разделов GPT всегда также создает таблицу разделов MBR, которая содержит только один раздел, охватывающий весь диск. Это гарантирует, что более старое программное обеспечение не ошибочно считает диск «пустым». MBR с ее защитным разделом поэтому называется «защитной MBR» и является частью спецификации GPT.
При определении гибридных разделов эта защитная функция GPT приносится в жертву! Устаревшее программное обеспечение больше не будет видеть используемое пространство при анализе гибридной MBR. Программное обеспечение, которое не знает GPT и видит только MBR, может ошибочно принять неопределенное дисковое пространство как неиспользуемое и пустое. Данные, записанные между определенными разделами MBR, могут вызвать потерю данных в базовых разделах GPT!Если системе доступны два физических диска, отличным решением будет использование одного диска GPT, а другого — схемы разделения MBR.Обычно при установке Windows в качестве «системного» и «загрузочного» используется только один раздел, называемый «диск C:». В режиме BIOS начальный раздел для загрузки, «системный раздел», должен быть разделом MBR. Это относится ко всем версиям Windows, начиная с Windows XP, и включает Windows 10. Начиная с Windows Vista (фактически Windows XP x64 Edition) операционная система Microsoft поддерживает доступ к разделам GPT. Решение состоит в том, чтобы переместить часть установки «системный раздел» на диск с разделами MBR и преобразовать «загрузочный раздел» (содержащий \ WINDOWS) в диск с разделами GPT.После этого Windows сможет получить доступ ко всем разделам GPT на одном диске и продолжит использовать разделы MBR (или гибридные разделы) на диске, содержащем «системный раздел». Установка Windows (содержащая \ WINDOWS) будет разделом GPT даже при загрузке в режиме BIOS.
Разметка BIOS с помощью GPT
Когда в системе присутствует таблица разделов GPT, должен быть доступен небольшой загрузочный раздел BIOS с типом
EF02
(который отличается от системного раздела EFI (ESP) , который имеет типEF00
). .1 МиБ будет достаточно для работы, но 2-4 МиБ — более безопасный вариант. Этот загрузочный раздел BIOS будет содержать второй этап загрузчика. Загрузочные разделы BIOS не нужно форматировать с файловой системой; команда grub-install перезапишет любую существующую файловую систему своей собственной.Важно
Загрузочный раздел BIOS — это , а не , тот же раздел, который обычно монтируется в / boot. / Boot и загрузка BIOS — это разные разделы, и их следует обрабатывать отдельно.Загрузочный раздел BIOS должен регулярно монтироваться в системе , а не (т.е. в / etc / fstab должен быть определен , а не ). Раздел / boot можно регулярно монтировать без проблем и, следовательно, он может присутствовать в файле / etc / fstab.Чтобы установить раздел в качестве раздела BIOS, используйте инструмент командной строки parted (sys-block / parted), набрав (измените
1
на номер раздела, который нужно отметить как загрузочный раздел BIOS!):
(раздельный)
набор 1 bios_grub на
С помощью утилиты cgdisk sys-apps / gptfdisk это достигается путем установки типа раздела на
0xEF02
и присвоения ему меткиgptbios
.Системный раздел EFI не требуется, но было бы разумно убедиться, что загрузочный раздел BIOS достаточно велик для преобразования в него, если системная плата позже будет обновлена до платы UEFI.
Ниже приведен результат нажатия клавиши p с помощью утилиты gdisk на диске с разделами GPT с загрузочным разделом BIOS [0xEF02] и разделом EFI [0xEF00]:
root #
gdisk / dev / sdc
GPT fdisk (gdisk) версии 0.8.1 Сканирование таблицы разделов: MBR: защитный BSD: нет APM: нет GPT: присутствует Обнаружен действующий GPT с защитной MBR; используя GPT. Команда (? Для помощи): p Диск / dev / sdc: 976773168 секторов, 465,8 ГиБ Размер логического сектора: 512 байт Идентификатор диска (GUID): AA369F4D-37A4-4C0D-A357-DC24B99A6337 Таблица разделов вмещает до 128 записей Первый используемый сектор - 34, последний используемый сектор - 976773134 Перегородки будут выровнены по границам 2048 секторов Всего свободного места 2014 секторов (1007. 0 КБ) Номер Начало (сектор) Конец (сектор) Размер Код Название 1 2048 828377087 395,0 ГиБ 8E00 Linux LVM 2 828377088 8647 30,0 ГиБ 0700 Основные данные Microsoft 3 8648 975177727 40,0 ГиБ 0700 Основные данные Microsoft 4 975177728 976754687 770,0 MiB 8300 Файловая система Linux 5 976754688 976756735 1024,0 KiB EF02 Загрузочный раздел BIOS 6 976756736 976773134 8,0 MiB EF00 Система EFI Команда (? Для помощи):Примечание
Шестнадцатеричный префикс0x
не нужно вводить для GPT при использовании fdisk.Используя ту же настройку, утилита parted выдает вывод с немного другим синтаксисом:
root #
parted / dev / sdc
GNU Parted 3.0 Использование / dev / sdc (разошлись) печать ... Размер сектора (логический / физический): 512Б / 512Б Таблица разделов: gpt Номер Начало Конец Размер Имя файловой системы Флаги 1 1049 КБ 424 ГБ 424 ГБ Linux LVM lvm 2424 ГБ 456 ГБ 32,2 ГБ Базовые данные Microsoft 3 456 ГБ 499 ГБ 42.9 ГБ базовых данных Microsoft 4 499 ГБ 500 ГБ 807 МБ ext2 файловая система Linux 5 500 ГБ 500 ГБ 1049 КБ Загрузочный раздел BIOS bios_grub 6 500 ГБ 500 ГБ 8396 КБ EFI Загрузка системы (расстались)Создание разделов в gdisk несложно для пользователей, знакомых с утилитой создания разделов fdisk. После запуска gdisk введите n (для нового) в главном меню, укажите начальный и конечный секторы (при необходимости) и установите тип раздела
EF00
для системного раздела EFI.Пользователи, выполнившие инструкции по установке Gentoo, уже настроили правильную схему разметки.
UEFI с GPT
Убедитесь, что каталог / boot доступен — если он использует отдельный раздел, убедитесь, что он смонтирован:
Запустите команду grub-install, чтобы скопировать соответствующие файлы в / boot / grub. Это должно установить GRUB в / boot / grub, скопировать образ ядра в /boot/efi/EFI/gentoo/grubx64. efi и вызвать efibootmgr, чтобы добавить загрузочную запись.
root #
grub-install --efi-directory = / boot / efi
Установка завершена. Об ошибках не сообщается.Важно
Приведенная выше команда предполагает, что системный раздел EFI (ESP) в формате FAT смонтирован в / boot / efi. Если ESP смонтирован непосредственно в / boot, используйте вместо него--efi-directory = / boot
.grub-install также принимает параметр
--target
для установки архитектуры процессора и системной платформы. Если не указано иное, grub-install попытается угадать правильные значения; в системе с загрузкой AMD64 UEFI он по умолчанию будет использоватьx86_64-efi
.grub-install также принимает параметр--boot-directory
, чтобы указать программе установки GRUB, в каком каталоге искать загрузочные файлы. По умолчанию это / boot, но полезно при попытке переместить корневой раздел.Разбиение на разделы для UEFI с помощью GPT
Для загрузки UEFI GPT система должна иметь выделенный системный раздел EFI, содержащий файловую систему FAT.
Раздел EFI может заменить , имеющий раздел / boot на / dev / sda1, на раздел / boot / efi на / dev / sda1.Это означает, что успешный сценарий загрузки UEFI с использованием GRUB может работать с двумя разделами (всего три, если требуется раздел подкачки): корневой раздел и раздел EFI. При такой конфигурации папка / boot будет расположена в корневом / разделе (в / boot), а раздел EFI будет монтировать в папку загрузки (в / boot / efi). Дополнительные пояснения см. В примере файла / etc / fstab ниже.
ФАЙЛ
/ etc / fstab
Пример файла / etc / fstab с поддержкой UEFI с разделом подкачки:/ dev / sda1 / boot / efi vfat noauto, noatime 1 2 / dev / sda2 нет подкачки sw 0 0 / dev / sda3 / ext4 noatime 0 1Создание раздела размером 100 МБ для / boot / efi должно обеспечить достаточно места для хранения нескольких
- . efi (несколько записей, скорее всего, не понадобятся; в большинстве систем будет использоваться только одна).
Создайте раздел с помощью выбранного инструмента разделения. Инструменты gdisk (sys-apps / gptfdisk) и parted (sys-block / parted) прекрасно подходят для этой цели. При использовании утилиты gdisk обязательно используйте тип EF00
.
Создайте файловую систему FAT в системном разделе EFI с помощью mkfs.fat и добавьте ее в / etc / fstab, следуя примеру ниже:
корень #
mkfs.жир -F 32 -n efi-boot / dev / sda1
корень #
mkdir / boot / efi
ФАЙЛ / etc / fstab
Добавление записи монтирования / boot / efi
/ dev / sda1 / boot / efi vfat noauto, noatime 1 2Примечание
Полезно установить переменную GRUB_PLATFORMS в /etc/portage/make.conf. Это поможет GRUB определить, какие параметры использовать при обнаружении правильной цели EFI.Для 32-битных систем UEFI используйтеefi-32
. Для 64-битной версии используйтеefi-64
.Важно
Для правильной установки GRUB каталог EFI должен быть смонтирован и модуль ядраefivars
должен быть загружен до успешного завершения команды grub-install.Альтернатива: с использованием расположения прошивки UEFI по умолчанию
Если прошивка UEFI системы не может найти файл загрузчика EFI GRUB, использование местоположения загрузчика по умолчанию должно обеспечить рабочее решение.Это обходит меню загрузки, управляемое efibootmgr, и, таким образом, предлагает ограниченную функциональность, но менее подвержено ошибкам. Для этого убедитесь, что раздел EFI смонтирован в / boot / efi, затем скопируйте файл grubx64.efi, расположенный в /boot/efi/EFI/gentoo/grubx64.efi, в /boot/efi/EFI/BOOT/BOOTX64. EFI. В этом примере предполагается 64-разрядная система UEFI, соответственно настройте для 32-разрядных систем UEFI.
Открытая прошивка (IEEE 1275) на PowerPC
См. Здесь.
Расширенные функции
GRUB 2 имеет множество функций, которые делают его очень мощным загрузчиком.Он поддерживает:
- Загрузка с платформ UEFI.
- Загрузка с дисков с разделами GPT без необходимости гибридной MBR (гибридная MBR может быть включена по мере необходимости для совместимости или переносимости).
- Загрузка с раздела / boot в формате btrfs.
- Загрузка из пула ZFS.
- Загрузка непосредственно из набора raid btrfs без необходимости использования initramfs для ранней настройки монтирования.
- Загрузка непосредственно из управления логическими томами (например, LVM2).
- Загрузка с поддержкой DM-RAID (RAID 0, 1, 4, 5, 6, 9 и 10).
- Загрузка с зашифрованных устройств (LUKS).
Некоторые особенности описаны более подробно далее.
Цепная нагрузка
GRUB 2 был построен с действительно улучшенным режимом цепной загрузки по сравнению с GRUB Legacy. Чтобы загрузить другой загрузчик по цепочке, используйте опцию цепной загрузчик
.
ФАЙЛ /etc/grub.d/40_custom
Последовательная загрузка другого загрузчика
menuentry "Custom Super-bootloader example" { insmod part_msdos цепочка insmod цепной погрузчик (hd1,1) +1 }Для получения дополнительной информации о цепной загрузке см. Дополнительную страницу «Цепная загрузка».
Если вы хотите защитить GRUB, чтобы никто не мог изменить параметры загрузки или использовать командную строку, вы можете добавить комбинацию пользователя и пароля в файлы конфигурации GRUB. Программа grub-mkpasswd-pbkdf2 генерирует хэши паролей для GRUBː
пользователь $
grub-mkpasswd-pbkdf2
Пароль: Повторно введите пароль: PBKDF2 хеш вашего пароля: grub. pbkdf2.sha512.10000.9CA4611006FE96BC77A ...
Затем добавьте следующее к
ФАЙЛ
/ etc / grub.d / 35_auth:
# Пользователь Grub echo 'set superusers = "имя пользователя"' # Grub пароль echo 'password_pbkdf2 <имя пользователя> <пароль>'Использование отображения буфера кадра
Чтобы GRUB использовал графический дисплей фреймбуфера, повторно установите GRUB с включенным USE-флагом
truetype
. Это установит шрифт True Type по умолчанию, а также утилиту преобразования шрифтов.
root #
emerge --ask --newuse sys-boot / grub: 2
Приступите к настройке файла конфигурации по умолчанию, расположенного в / etc / default / grub.Например:
ФАЙЛ
/ etc / default / grub
Настройки, связанные с кадровым буфером# Установить разрешение и глубину цвета GRUB_GFXMODE = 1366x768x32 # Сохранять разрешение при загрузке ядра GRUB_GFXPAYLOAD_LINUX = сохранить # Установить фоновое изображение GRUB_BACKGROUND = "/ boot / grub / bg.png" # Использовать собственный шрифт, преобразованный с помощью утилиты grub-mkfont GRUB_FONT = "/ boot / grub / fonts / roboto.pf2" # Установить цвета меню GRUB_COLOR_NORMAL = "голубой / черный" GRUB_COLOR_HIGHLIGHT = "светло-голубой / синий"Устранение неисправностей
Большинство проблем можно решить, убедившись, что расположение разделов правильное.Убедитесь, что перед первым разделом диска доступно достаточно места, или, при необходимости, убедитесь, что доступен загрузочный раздел BIOS . Также убедитесь, что /boot/grub/grub.cfg был правильно сгенерирован с помощью grub-mkconfig, или сгенерируйте его с помощью пользовательского пункта меню.
Дополнительные сведения об устранении неполадок см. В подразделе «Устранение неполадок».
Прошивка материнской платы не находит файл .
EFI
Некоторые производители материнских плат поддерживают только одно расположение для расширения.EFI в системном разделе EFI (ESP). Если это так, просто переместите файл GRUB по умолчанию в папку / efi / boot /. Сначала убедитесь, что ESP смонтирован. Предполагая, что ESP смонтирован в / boot / efi (как предлагается в Руководстве), выполните:
корень #
mkdir -p / boot / efi / efi / boot
root #
cp /boot/efi/efi/gentoo/grubx64.efi /boot/efi/efi/boot/bootx64.efi
Вы также можете использовать параметр удаления с командой grub-install для автоматического создания этого файла:
root #
grub-install --efi-directory = / boot / efi --removable
Установка завершена.Об ошибках не сообщается.Это должно помочь прошивке материнской платы загрузить исполняемый файл GRUB. Перезагрузите систему, чтобы увидеть, правильно ли теперь прошивка загружает GRUB.
os-prober и UEFI в chroot
Утилита sys-boot / os-prober используется для обнаружения альтернативных установок, таких как Microsoft Windows. Для правильной работы он должен иметь доступ к информации из udev живой среды для тестирования системного раздела EFI.
Выполните эти команды в среде хоста, чтобы предоставить необходимые файлы (пример показывает, что Gentoo смонтирован в / mnt / gentoo, как в Руководстве):
корень #
mkdir -p / mnt / gentoo / run / udev
root #
mount -o bind / run / udev / mnt / gentoo / run / udev
root #
mount --make-rslave / mnt / gentoo / run / udev
Установка нового ядра
Каждый раз, когда устанавливается новое ядро, необходимо перенастроить GRUB для его распознавания.Это можно сделать с помощью grub-mkconfig, как показано ниже, или вручную.
Примечание
Убедитесь, что для этого шага смонтирован раздел / boot.
root #
grub-mkconfig -o /boot/grub/grub.cfg
Создание grub.cfg ... Нашел образ linux: /boot/kernel-3.3.8-gentoo Найден образ initrd: /boot/initramfs-genkernel-x86_64-3.3.8-gentoo Нашел образ linux: /boot/kernel-3.2.12-gentoo Найден образ initrd: / boot / initramfs-genkernel-x86_64-3.2.12-gentoo ГотовоОбратите внимание, что нужно только перенастроить GRUB, а не , переустановить в основную загрузочную запись (MBR) загрузочного диска. С другой стороны, когда сам GRUB был обновлен, его нужно переустановить на загрузочный диск, но обычно не требуется перенастраивать.
См. Также
- В разделе «Последовательная загрузка» описано использование GRUB2 для загрузки других загрузчиков. Это важно прочитать при двойной загрузке систем или когда GRUB2 необходимо настроить для загрузки файлов ISO.
- В расширенном хранилище задокументированы необходимые шаги по установке и использованию GRUB в более сложных ситуациях хранения, таких как программный RAID, логические тома или зашифрованные файловые системы.
- В разделе «Переменные конфигурации» задокументирован исчерпывающий список переменных конфигурации GRUB, используемых в / etc / default / grub.
- В разделе «Устранение неполадок» представлен список распространенных ошибок GRUB (с их решениями).
- В таблице гибридных разделов задокументировано использование смешанной настройки MBR / GPT, а также показано, как использовать такую гибридную структуру разделов с GRUB.
Внешние ресурсы
Для получения дополнительной информации см .:
Как отремонтировать, восстановить или переустановить Grub 2 с Ubuntu Live CD или USB · Как установить Ubuntu
Как восстановить, восстановить или переустановить Grub 2 с помощью Ubuntu Live CD или USB
Grub 2 обычно переопределяется при установке Windows или другой операционной системы. Чтобы Ubuntu контролировал процесс загрузки, вам необходимо переустановить (восстановить / восстановить) Grub с помощью Ubuntu Live CD.
Предупреждение
Используя команду sudo, , особенно с Live CD, может нанести серьезный ущерб вашей системе. Перед выполнением любых команд прочтите все инструкции и подтвердите, что понимаете. При вставке в Терминал используйте Ctrl + Shift + V, НЕ Ctrl + V.
Терминальные команды
Смонтируйте раздел, в котором находится установка Ubuntu. Если вы не уверены, что это такое, запустите GParted (входит в состав Live CD) и узнайте.Обычно это раздел EXT4. Замените XY буквой диска и номером раздела, например: sudo mount -t ext4 / dev / sda1 / mnt.
крепление sudo -t ext4 / dev / sdXY / mnt
Теперь свяжите каталоги, к которым grub нужен доступ для обнаружения других операционных систем, вот так.
sudo mount —bind / dev / mnt / dev &&
sudo mount —bind / dev / pts / mnt / dev / pts &&
sudo mount —bind / proc / mnt / proc &&
sudo mount —bind / sys / mnt / sys
Теперь мы переходим к этому с помощью chroot.
Теперь установите, проверьте и обновите grub.
На этот раз вам нужно только добавить букву диска (обычно a) для замены X, например: grub-install / dev / sda, grub-install –recheck / dev / sda.
grub-install / dev / sdX
grub-install --recheck / dev / sdX
Теперь grub вернулся, осталось только выйти из chrooted-системы и размонтировать все.
выход &&
sudo umount / mnt / sys &&
sudo umount / mnt / proc &&
sudo umount / mnt / dev / pts &&
sudo umount / mnt / dev &&
sudo umount / mnt
Выключите и снова включите компьютер, и вы увидите экран Grub2 по умолчанию.
Вы можете обновить grub или переустановить burg, как вам нравится.
Поздравляем, вы только что отремонтировали / восстановили / переустановили Grub 2 с помощью Ubuntu Live CD!
Установите GRUB2 на USB из Windows
Как установить Grub2 на USB из Windows. Ниже описан процесс установки Grub2 на USB-накопитель из Windows. Мы будем использовать grub-install. exe , который поставляется с zip-файлом grub-for-windows.После выполнения этих инструкций загрузчика ваша USB-флешка должна быть загружаемой с Grub2 из UEFI или BIOS на всех компьютерных системах.
Вы также можете использовать этот метод для замены или обновления версии Grub2, загруженной через цепочку syslinux, которая поставляется с YUMI-UEFI.
Установка Grub2 на USB из Windows
Примечание : Grub2 для BIOS (i386-pc) можно установить на раздел exFAT, NTFS или Fat / Fat32. В то время как Grub2 UEFI (i386-efi / x86_64-efi) будет устанавливаться только на раздел, отформатированный в Fat / Fat32.Хотя вы по-прежнему можете загружать и запускать файлы из разделов NTFS, exFAT.
1. Загрузите grub-2.04-for-windows.zip и распакуйте (разархивируйте) его содержимое на рабочий стол Windows. В качестве альтернативы вы можете использовать модифицированную версию Grub2 от a1ive со многими дополнениями -> ЗДЕСЬ.
Как показано ниже, у вас должна получиться папка grub-2.04-for-windows. Эта папка будет содержать grub-install.exe среди нескольких других файлов.
2. Вам нужно будет использовать командную строку для запуска grub-install.exe
по Откройте командную строку ;
1.) В окне Windows «Введите здесь для поиска» введите cmd.exe
2.) Затем нажмите Запуск от имени администратора
3. Затем, в перейдите в каталог grub-2.04-for-windows ,
Введите следующее в командную строку и нажмите Enter.
cd% UserProfile% \ Desktop \ grub * для Windows
4. Теперь вам нужно открыть Windows Disk Management Tool , чтобы вы могли определить букву USB-накопителя и соответствующий ему номер диска.
Для этого введите следующее, затем нажмите Enter.
diskmgmt.msc
5. В окне «Управление дисками» отметьте, какой номер диска и буква диска тома принадлежат вашему USB-устройству.
6. Вернитесь в командную строку,
Чтобы установить Grub2 для BIOS , введите или скопируйте следующее:
(заменив X буквой вашего диска и # номером вашего диска),
и нажмите Enter.
grub-install.exe --force --no-floppy --target = i386-pc --boot-directory = X : \ boot //./PHYSICALDRIVE #
7. Затем для установки Grub2 для 32-битного UEFI ,
grub-install.exe --force --removable --no-floppy --target = i386-efi --boot-directory = X : \ boot --efi-directory = X : \
8. Наконец, для установки Grub2 для UEFI 64 bit ,
grub-install.exe --force --removable --no-floppy --target = x86_64-efi --boot-directory = X : \ boot --efi-directory = X : \
Если все прошло хорошо, теперь вы сможете загрузиться с USB-накопителя в работающую среду Grub2.Теперь ваше USB-устройство может загружаться с помощью UEFI и BIOS из 32-разрядных или 64-разрядных систем. Поддержка всех трех архитектур i386-pc, i386-efi и x86_64-efi.
Если вы использовали это руководство на диске, подготовленном для YUMI-UEFI, загрузчик Syslinux должен был быть напрямую заменен на Grub 2. 😉
Установить GRUB2 на USB из Windows, опубликованной в разделе Флэш-накопитель, устанавливает с помощью Windows, Использование и настройка Linux
B.5: GRUB2 — Установка — Разработка LibreTexts
GNU GRUB
GNU GRUB (сокращение от GNU GRand Unified Bootloader, обычно называемое GRUB) — это пакет загрузчика из проекта GNU.GRUB — это эталонная реализация спецификации мультизагрузки Free Software Foundation, которая предоставляет пользователю выбор: загрузить одну из нескольких операционных систем, установленных на компьютере, или выбрать конкретную конфигурацию ядра, доступную в определенных разделах операционной системы.
GNU GRUB был разработан на основе пакета под названием Grand Unified Bootloader (игра на тему теории Великого Объединения [5]). Он преимущественно используется для Unix-подобных систем. Операционная система GNU использует GNU GRUB в качестве загрузчика, как и большинство дистрибутивов Linux и операционная система Solaris в системе x86
.
Рисунок \ (\ PageIndex {1} \): GRUB2 на жестком диске с разделами на MBR.(«GRUB2 на жестком диске с разделами на MBR» от нескольких участников, Википедия под лицензией CC BY-SA 4.0)
Запуск в системах с использованием встроенного ПО BIOS:
- 1-й этап: boot.img записывается в первые 440 байтов главной загрузочной записи (MBR в секторе 0) или, необязательно, в загрузочный сектор раздела (PBR / VBR). Он обращается к diskboot.img по 64-битному адресу LBA, таким образом, он может загружаться, превышая предел 2 ГиБ для MBR. Фактический номер сектора записывается grub-install.
- 2-й этап: diskboot.img — это первый сектор core.img (называемый этапом 1.5 в GRUB Legacy) с единственной целью — загрузить остальную часть core.img, идентифицированную номерами секторов LBA, также записанными с помощью grub-install.
- На дисках с MBR-разделами: core.img хранится в пустых секторах (если есть) между MBR и первым разделом. Последние операционные системы предлагают здесь зазор в 1 Мбайт для выравнивания (2047 * 512 байт или 255 * 4 КБ секторов). Раньше этот пробел составлял 62 сектора (31 КиБ) в качестве напоминания об ограничении количества секторов C / H / S-адресации, которое использовалось Bios до 1998 года, следовательно, ядром.img должен быть меньше 32 КБ.
- На дисках с разделами GPT: количество разделов не ограничено четырьмя, поэтому core.img записывается в свой собственный крошечный (1 МиБ) загрузочный раздел BIOS без файловой системы.
- 3-й этап: core.img входит в 32-битный защищенный режим, распаковывает себя (ядро grub и модули файловой системы для достижения / boot / grub), затем загружает /boot/grub/
/normal. mod из настроенного раздела с помощью grub-install. Если индекс раздела изменился, GRUB не сможет найти нормальный.mod и представляет пользователю приглашение GRUB Rescue, в котором пользователь «может» найти и загрузить normal.mod или ядро Linux. - Каталог / boot / grub может находиться на любом разделе (GRUB может читать многие файловые системы, включая NTFS). В зависимости от того, как он был установлен, он находится либо в корневом разделе дистрибутива, либо в отдельном / загрузочном разделе.
- 4-й этап: normal.mod (эквивалент этапа 2 в GRUB Legacy) анализирует /boot/grub/grub.cfg, при необходимости загружает модули (например,для графического интерфейса) и показывает меню.
Запуск в системах с прошивкой UEFI:
- Распространено на материнских платах с ок. 2012.
- /efi/
/grubx64.efi устанавливается в виде файла в системный раздел EFI и загружается напрямую прошивкой, без boot.img в секторе 0. - / boot / grub / также можно установить в системный раздел EFI.
После запуска
GRUB представляет меню, в котором пользователь может выбрать операционную систему (ОС), найденную с помощью grub-install.GRUB можно настроить на автоматическую загрузку указанной ОС по истечении заданного пользователем тайм-аута. Если таймаут установлен на ноль секунд, нажатие и удерживание ⇧ Shift во время загрузки компьютера позволяет получить доступ к меню загрузки. [9]
В меню выбора операционной системы GRUB принимает пару команд:
- Нажав e, можно редактировать параметры ядра выбранного пункта меню до запуска операционной системы. Причина, по которой это делается в GRUB (т.е.е. не редактировать параметры в уже загруженной системе) может быть аварийным случаем: система не загрузилась. Используя строку параметров ядра, можно, среди прочего, указать модуль, который должен быть отключен (занесен в черный список) для ядра. Это может потребоваться, если конкретный модуль ядра сломан и, таким образом, препятствует загрузке. Например, чтобы внести модуль ядра nvidia-current в черный список, можно добавить modprobe.blacklist = nvidia-current в конце параметров ядра.
- Нажав c, пользователь входит в командную строку GRUB.Командная строка GRUB не является обычной оболочкой Linux, например, bash и принимает только определенные команды GRUB, задокументированные различными дистрибутивами Linux. [10]
После выбора параметров загрузки GRUB загружает выбранное ядро в память и передает управление ядру. В качестве альтернативы GRUB может передать управление процессом загрузки другому загрузчику, используя загрузку по цепочке. Это метод, используемый для загрузки операционных систем, которые не поддерживают спецификацию мультизагрузки или не поддерживаются непосредственно GRUB.
Команда grub2-install
grub2-install устанавливает GRUB на устройство. Это включает в себя копирование образов GRUB в целевой каталог (обычно / boot / grub ), а на некоторых платформах также может включать установку GRUB в загрузочный сектор. Если grub2 устанавливается в системе UEFI, обязательно используйте параметр —efi-directory, чтобы файл sget был помещен в правильный каталог.
Синтаксис:
grub-install [ОПЦИИ] … INSTALL_DEVICE
Обратите внимание, что это команда grub-install, хотя она устанавливает grub2
Параметры команды:
Опция | Опция Значение |
---|---|
—modules = МОДУЛИ | Модули предварительной загрузки, указанные в MODULES. |
—install-modules = МОДУЛИ | Устанавливайте только МОДУЛИ и их зависимости. По умолчанию устанавливаются все доступные модули. |
—themes = ТЕМЫ | Установить ТЕМЫ. По умолчанию устанавливается тема звездного поля, если она доступна. |
—fonts = ШРИФТЫ | Установите ШРИФТЫ. По умолчанию устанавливается шрифт Unicode. |
—locales = МЕСТНЫЕ | Устанавливайте только локали, перечисленные в LOCALES.По умолчанию устанавливаются все доступные языковые стандарты. |
—compress = no, xz, gz, lzo | Сжимайте файлы GRUB, используя указанный алгоритм сжатия. |
—directory = DIR | Используйте образы и модули в DIR. |
—grub-mkimage = ФАЙЛ | Используйте ФАЙЛ как grub-mkimage. По умолчанию это / usr / bin / grub-mkimage. |
—boot-directory = DIR | Используйте DIR в качестве загрузочного каталога.По умолчанию это / boot. GRUB поместит свои файлы в подкаталог этого каталога с именем grub. |
—target = TARGET | Установите GRUB для платформы TARGET. По умолчанию используется платформа grub-install. |
—grub-setup = ФАЙЛ | Используйте ФАЙЛ как grub-setup. По умолчанию это / usr / bin / grub-setup. |
—grub-mkrelpath = ФАЙЛ | Используйте ФАЙЛ как grub-mkrelpath.По умолчанию это / usr / bin / grub-mkrelpath. |
—grub-probe = ФАЙЛ | Используйте ФАЙЛ в качестве щупа. По умолчанию это / usr / bin / grub-mkrelpath. |
— разрешенная дискета | Сделайте устройство загрузочным как дискету. Этот параметр используется по умолчанию для устройств / dev / fdX. Некоторые BIOS не загружают образы, созданные с этой опцией. |
— перепроверка | Удалите любую существующую карту устройств и при необходимости создайте новую. |
— сила | Устанавливать, даже если обнаружены проблемы. |
— идентификатор-файла-форс | Использовать файл идентификаторов, даже если доступен UUID. |
—disk-module = МОДУЛЬ | Используйте МОДУЛЬ для доступа к диску. Это позволяет вам вручную указать доступ к биосдиску или к собственному диску. Эта опция доступна только на целевой платформе BIOS. |
— съемный | Считайте целевое устройство съемным.Эта опция доступна только на целевой платформе EFI. |
—bootloader-id = ID | Использовать ID в качестве ID загрузчика. Эта возможность доступна только на целевой платформе EFI. |
—efi-directory = DIR | Используйте DIR в качестве корневого системного раздела EFI. Эта возможность доступна только на целевой платформе EFI. |
УСТАНОВИТЕ_УСТРОЙСТВО | Установите GRUB на блочное устройство INSTALL_DEVICE. |
Адаптировано из:
«GNU GRUB» различными участниками, Википедия находится под лицензией CC BY-SA 4.0
Как восстановить загрузчик GRUB2 в Linux
Джек Уоллен показывает, насколько легко восстановить загрузчик GRUB2 в Linux.
Вероятно, это будет очень редкий случай, когда вам понадобится отремонтировать или переустановить загрузчик GRUB2 на одном из серверов Linux вашего центра обработки данных, но когда это время придет, вы будете рады знаниям.Потому что ничто не может похвастаться таким праздником для системного администратора, как необходимость полной переустановки ОС и восстановления данных на критически важном сервере.
Я расскажу вам, как это сделать — восстановить и переустановить GRUB2 с помощью USB-устройства Ubuntu Live.
СМОТРЕТЬ: Команды управления службами Linux (TechRepublic Premium)
Что вам понадобится
Не ждите, пока у вас появится отказавший экземпляр GRUB2, прежде чем вы справитесь с этой задачей.С этой целью мы просто будем использовать для этой цели рабочий (тестовый) экземпляр Ubuntu Server. Вы также захотите иметь загрузочное USB-устройство с экземпляром Ubuntu Desktop, готовым к загрузке. Для этого вы можете использовать такой инструмент, как Pop! _OS Popsicle или всегда верный Unetbootin. Я настоятельно рекомендую вам использовать настольную версию Ubuntu — есть очень удобный графический инструмент, который может решить эту проблему. В любом случае убедитесь, что вы создали загрузочное USB-устройство, прежде чем пытаться это сделать.
Примечание: Инструмент, который мы собираемся использовать, будет работать в любой системе, использующей GRUB2.Хотя мы будем использовать живой экземпляр Ubuntu Desktop, этот процесс будет работать, даже если вы ремонтируете, скажем, Fedora или CentOS. Поскольку загрузчиком является GRUB2, все должно быть в порядке — GRUB2 является загрузчиком по умолчанию в большинстве дистрибутивов Linux.
Как отремонтировать GRUB2
Загрузите затронутую или тестовую машину с USB-устройства и нажмите «Попробовать Ubuntu». Когда появится рабочий стол, убедитесь, что есть рабочее сетевое соединение, и откройте окно терминала. Что мы сейчас сделаем, так это установим инструмент под названием boot-repair.Для этого добавьте необходимый репозиторий с помощью команды:
sudo apt-add-repository ppa: yannubuntu / boot-repair
После добавления репозитория обновите apt с помощью команды:
sudo apt-get update
После завершения обновления apt установите восстановление загрузки с помощью команды:
sudo apt-get install boot-repair -y
Запустите только что установленное приложение с помощью команды:
boot-repair
Щелкните «Рекомендуемый ремонт» (, рис. A, ).
Рисунок A
Запуск восстановления при загрузке через живой сеанс Ubuntu.
Инструмент выполнит стандартные исправления для GRUB2. Когда процесс завершится, boot-repair спросит вас, хотите ли вы загрузить отчет в pastebin (, рис. B, ).
Рисунок B
Приложение восстановления загрузки завершило свой процесс восстановления.
Когда загрузка завершится, boot-repair предоставит вам URL-адрес, который вы можете использовать для просмотра отчета (, рис. C, ).Если вы хотите увидеть, что восстановление при загрузке повлияло на вашу систему, скопируйте и вставьте URL-адрес в браузер и прочтите отчет.
Рисунок C
Восстановление загрузки предоставило мне URL-адрес, чтобы я мог просмотреть отчет.
Помните, что сообщение Pastebin истечет через пару дней, поэтому обязательно прочтите его в ближайшее время, иначе вы упустите возможность увидеть, что инструмент сделал для исправления GRUB2. В моем случае восстановление загрузки переустановило загрузчик GRUB2 с помощью команд:
grub-install --efi-directory = / boot / efi --target = x86_64-efi --uefi-secure-boot обновление-grub
Если при восстановлении загрузки не удается исправить GRUB2, возможно, вам придется выполнить тот же процесс, но нажать кнопку «Дополнительные параметры», чтобы получить доступ к некоторым дополнительным функциям (, рис. D, ).
Примечание: Вам не следует использовать дополнительные параметры, если вы не знаете, что делаете.
Рисунок D
Расширенные параметры восстановления загрузки предлагают множество дополнительных функций.
Опция расширенных функций дает вам доступ к следующим функциям:
Резервное копирование и переименование файлов EFI Windows
Восстановление файловых систем
Альтернативное расположение для GRUB2
Очистить GRUB перед переустановкой
Обновите GRUB до последней версии
Опять же, не пытайтесь использовать расширенные функции, если вы точно не знаете, что делаете.
После завершения процесса восстановления загрузчика перезагрузите компьютер, извлеките USB-накопитель и скрестите пальцы, что загрузчик был успешно восстановлен. Хорошей новостью является то, что восстановление загрузки действительно хорошо решает наиболее распространенные проблемы, из-за которых системы GRUB2 не загружаются. С помощью этого удобного инструмента с графическим интерфейсом вам не придется возиться с более сложным процессом восстановления загрузчика Linux из командной строки.
Подпишитесь на TechRepublic’s How To Make Tech Work on YouTube для получения всех последних технических советов для бизнес-профессионалов от Джека Уоллена.
Еженедельный бюллетень с открытым исходным кодом
Вы не хотите пропустить наши советы, руководства и комментарии по ОС Linux и приложениям с открытым исходным кодом.
Доставлено по вторникам
Зарегистрироваться Сегодня
См. Также
Изображение: iStockphoto / Евгений Школенко
linux — Как переустановить GRUB2 EFI?
Как и в случае с Maxine, я обнаружил, что мои настройки UEFI в BIOS повреждены, и моя машина не загружается.
В моем случае это Lenovo ThinkServer RD430 с Linux Mint Debian, и казалось, что все, что я сделал бы с , касательно update-grub или замены каких-либо жестких дисков на сервере, приведет к тому, что сервер не загрузится. ОС в моем случае — linuxmint-201403-mate-dvd-64bit, установленная через USB. (см. ниже полное описание событий, из-за которых UEFI не работает)
Выполнение тех же действий на ThinkServer TS140 ни разу не привело к тому, что UEFI потерял сознание. Посмотрел страницу драйвера RD430, и моя биография — две старые версии.Мне никогда раньше не приходилось обновлять BIOS на материнской плате, поэтому я не из тех, кто обновляется автоматически, когда появляются новые версии. После обновления биографии ответ Максин выше работал, только с поворотом …
# efibootmgr -c --disk / dev / sdX --part Y
# efibootmgr -v
BootCurrent: 0004
Тайм-аут: 1 секунда
BootOrder: 0002,0000,0003,0001,0004
Boot0000 * linuxmint HD (1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7) Файл (\ EFI \ linuxmint \ grubx64.efi)
Boot0001 * LMDE Linux Mint Debian HD (1,800,15d505800,934c598c-fe3c-fd43-84a1-fa38e4f72552) Файл (\ EFI \ linuxmint \ grubx64.efi)
Boot0002 * Linux HD (1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7) Файл (\ elilo.efi)
Boot0003 * UEFI: встроенный поставщик оболочки EFI (5023b95c-db26-429b-a648-bd47664c8012,) AMBO
Boot0004 * UEFI: VerbatimSTORE N GO 1.00 ACPI (a0341d0,0) PCI (1a, 0) USB (1,0) USB (4,0) HD (1,80,1d70780,00000000) AMBO
мята / #
Команда efibootmgr -c
добавила две записи: 0000
и 0002
!
Boot0002 * Linux HD
первая запись в порядке загрузки неверна .
0000
Запись верна.
Чтобы проверить это, я попытался загрузиться без прерывания, это запись 0002
. Как и ожидалось, это не сработало. Итак, я перезапустил сервер, нажал F12 и выбрал linuxmint
. Как и ожидалось, моя установка LMDE загрузилась.
Способ удаления ненужных записей через efibootmgr:
# efibootmgr -b 2 -B
Я использовал эту команду для удаления записей 0001
и 0002
.Вариант 0001
был из моей последней попытки восстановить ОС.
Примечания UEFI
Если вы читаете это и так же разочарованы UEFI, как я / был, вот несколько заметок и ресурсов:
»Загрузка в оболочку UEFI сродни использованию оболочки DOS.
»Корпорация Intel создала справочное руководство по командам оболочки efi в формате PDF.
»Документ Lenovo UEFI_on_TS430 — единственный ресурс, который я видел, объясняющий использование оболочки efi.
»Еще одна ссылка на оболочку uefi из nPartition Administrator’s Guide .
»Вы можете попробовать загрузиться в раздел из оболочки efi, перейдя к загрузчику и запустив его.
»UEFI хочет, чтобы на диске была таблица разделов GPT, а не таблица частей msdos.
»UEFI хочет, чтобы первый раздел на вашем диске был отформатирован в fat32 или vfat.
»Для« общей »загрузки в корне должен быть каталог / EFI / boot
с bootx64.efi
в нем.
»Некоторые копируют свой grubx64.efi
, откуда он был установлен, в / EFI / boot / bootx64.efi
и этот чит у них сработал.
»Каждый раз, когда вы вносите изменения в личинку, используйте efibootmgr -v
до и после, чтобы убедиться, что с вашей перезагрузкой все в порядке.
Мой опыт работы с RD430
Я устанавливал ОС более 10 раз за последнюю неделю, пытаясь разобраться в этом и настроить сервер. Моя конфигурация представляет собой SSD на этом RAID-контроллере в слоте PCIe 2.0 с установленным на нем LMDE. RAID-контроллер AOC-S3008L-L8i (перепрошит в режим IT) во 2-м слоте PCIe 3.0 с 6 дисками по 3 ТБ.Оперативная память: 12 ГБ ECC (3x 4 ГБ).
Вот изменения, которые я сделал бы, из-за которых моя система не загружалась:
»Измените слоты PCI S3008L-L8i (оставив карту SSD + в покое).
»Отключить запрос BIOS RAID программного обеспечения LSi для встроенного контроллера.
»Вставьте мою старую карту HighPoint RocketRaid в свободный слот PCIe.
»Внесите изменения в / etc / default / grub
, а затем запустите update-grub
.
(, может быть, grub-install
тоже нужно запустить? )
Глава 26.Работа с GRUB 2 Red Hat Enterprise Linux 7
Red Hat Enterprise Linux 7 распространяется с версией 2 GNU GRand Unified Bootloader (GRUB 2), которая позволяет пользователю выбрать операционную систему или ядро для загрузки во время загрузки системы. GRUB 2 также позволяет пользователю передавать аргументы ядру.
26,1. Введение в GRUB 2
GRUB 2 считывает свою конфигурацию из файла /boot/grub2/grub.cfg
на традиционных машинах на базе BIOS и из / boot / efi / EFI / redhat / grub.cfg
на машинах с UEFI. Этот файл содержит информацию о меню.
Файл конфигурации GRUB 2, grub.cfg
, создается во время установки или при вызове утилиты / usr / sbin / grub2-mkconfig и автоматически обновляется grubby
при каждой установке нового ядра. При регенерации вручную с использованием grub2-mkconfig файл создается в соответствии с файлами шаблонов, расположенными в /etc/grub.d/
, и пользовательскими настройками в файле / etc / default / grub
.Изменения grub.cfg
будут потеряны каждый раз, когда grub2-mkconfig будет использоваться для регенерации файла, поэтому необходимо также позаботиться о том, чтобы отразить любые ручные изменения в / etc / default / grub
.
Обычные операции с grub.cfg
, такие как удаление и добавление новых ядер, должны выполняться с помощью инструмента grubby
, а для скриптов — с помощью инструмента new-kernel-pkg
. Если вы используете grubby
для изменения ядра по умолчанию, изменения будут унаследованы при установке новых ядер.Для получения дополнительной информации о grubby
см. Раздел 26.4, «Внесение постоянных изменений в меню GRUB 2 с помощью инструмента grubby».
Файл / etc / default / grub
используется инструментом grub2-mkconfig
, который используется anaconda
при создании grub.cfg
в процессе установки и может использоваться в случае возникновения системы. сбой, например, если необходимо воссоздать конфигурации загрузчика. Вообще не рекомендуется заменять жатку .cfg
, запустив вручную grub2-mkconfig
, кроме как в крайнем случае. Обратите внимание, что любые изменения вручную в / etc / default / grub
требуют перестройки файла grub.cfg
.
Среди различных фрагментов кода и директив файл конфигурации grub.cfg
содержит один или несколько блоков menuentry
, каждый из которых представляет одну запись загрузочного меню GRUB 2. Эти блоки всегда начинаются с ключевого слова menuentry
, за которым следует заголовок, список параметров и открывающая фигурная скобка, и заканчиваются закрывающей фигурной скобкой.Все, что находится между открывающей и закрывающей скобками, должно иметь отступ. Например, ниже приведен пример блока menuentry
для Red Hat Enterprise Linux 7 с ядром Linux 3.8.0-0.40.el7.x86_64:
menuentry 'Red Hat Enterprise Linux Server' --class red --class gnu-linux --class gnu --class os $ menuentry_id_option 'gnulinux-simple-c60731dc-9046-4000-9182-64bdcce08616' { load_video установить gfxpayload = keep insmod gzio insmod part_msdos insmod xfs установить root = 'hd0, msdos1' если [x $ feature_platform_search_hint = xy]; потом поиск --no-floppy --fs-uuid --set = root --hint-bios = hd0, msdos1 --hint-efi = hd0, msdos1 --hint-baremetal = ahci0, msdos1 --hint = 'hd0, msdos1 '19d9e294-65f8-4e37-8e73-d41d6daa6e58 еще поиск --no-floppy --fs-uuid --set = root 19d9e294-65f8-4e37-8e73-d41d6daa6e58 фи echo 'Загрузка Linux 3.8.0-0.40.el7.x86_64 ... ' linux16 /vmlinuz-3.8.0-0.40.el7.x86_64 root = / dev / mapper / rhel-root ro rd.md = 0 rd.dm = 0 rd.lvm.lv = rhel / swap crashkernel = auto rd.luks = 0 vconsole.keymap = us rd.lvm.lv = rhel / root rhgb quiet echo 'Загрузка начального RAM-диска ...' initrd /initramfs-3.8.0-0.40.el7.x86_64.img }
Каждый блок menuentry
, представляющий установленное ядро Linux, содержит linux
в 64-разрядных системах IBM POWER Series, linux16
в системах на основе x86_64 BIOS и linuxefi
в системах на основе UEFI.Затем директивы initrd
, за которыми следует путь к ядру и образ initramfs
соответственно. Если был создан отдельный раздел / boot
, пути к ядру и образу initramfs
относятся к / boot
. В приведенном выше примере строка initrd /initramfs-3.8.0-0.40.el7.x86_64.img
означает, что образ initramfs
фактически расположен по адресу /boot/initramfs-3.8.0-0.40.el7.x86_64 .img
при монтировании корневой файловой системы
, а также для пути к ядру.
Номер версии ядра, указанный в строке linux16 / vmlinuz-kernel_version
, должен совпадать с номером версии образа initramfs
, указанного в строке initrd /initramfs-kernel_version.img
каждого блока menuentry
. Дополнительную информацию о том, как проверить исходный образ RAM-диска, см. В Руководстве по администрированию ядра Red Hat Enterprise 7.
В блоках menuentry
директива initrd
должна указывать на расположение (относительно каталога / boot /
, если он находится в отдельном разделе) файла initramfs
, соответствующего той же версии ядра.Эта директива называется initrd
, потому что предыдущий инструмент, который создавал начальные образы RAM-дисков, mkinitrd
, создавал так называемые файлы initrd
. Директива grub.cfg
остается директивой initrd
для обеспечения совместимости с другими инструментами. Соглашение об именах файлов в системах, использующих утилиту dracut
для создания начального образа RAM-диска, — это initramfs- kernel_version .img
.
Для получения информации об использовании Dracut см. Руководство администратора ядра Red Hat Enterprise 7.
26.2. Настройка GRUB 2
Изменения в меню GRUB 2 можно сделать временно во время загрузки, сделать постоянным для отдельной системы во время работы системы или как часть создания нового файла конфигурации GRUB 2.
26,5. Настройка файла конфигурации GRUB 2
Сценарии GRUB 2 ищут компьютер пользователя и создают меню загрузки на основе того, какие операционные системы находят скрипты. Чтобы отразить последние параметры загрузки системы, меню загрузки автоматически перестраивается при обновлении ядра или добавлении нового ядра.
Однако пользователи могут захотеть создать меню, содержащее определенные записи, или расположить их в определенном порядке. GRUB 2 позволяет выполнять базовую настройку меню загрузки, чтобы пользователи могли контролировать то, что на самом деле отображается на экране.
GRUB 2 использует серию скриптов для создания меню; они расположены в каталоге /etc/grub.d/
. Включены следующие файлы:
-
00_header
, который загружает настройки GRUB 2 из файла/ etc / default / grub
. -
01_users
, который считывает пароль суперпользователя из файлаuser.cfg
. В Red Hat Enterprise Linux 7.0 и 7.1 этот файл создавался только в том случае, если пароль загрузки был определен в файле кикстарта во время установки, и он включал заданный пароль в виде обычного текста. -
10_linux
, который находит ядра в разделе по умолчанию Red Hat Enterprise Linux. -
30_os-prober
, который создает записи для операционных систем, обнаруженных в других разделах. -
40_custom
, шаблон, который можно использовать для создания дополнительных пунктов меню.
Сценарии из каталога /etc/grub.d/
читаются в алфавитном порядке и поэтому могут быть переименованы для изменения порядка загрузки определенных пунктов меню.
Чтобы скрыть список загрузочных ядер, не устанавливайте для GRUB_TIMEOUT
значение 0 в / etc / default / grub
. При такой настройке система всегда загружается сразу же по пункту меню по умолчанию, и если ядро по умолчанию не загружается, невозможно загрузить более старое ядро.
Вместо этого, чтобы GRUB 2 не отображал список загрузочных ядер при запуске системы, установите параметр GRUB_TIMEOUT_STYLE
в файле / etc / default / grub
следующим образом:
GRUB_TIMEOUT_STYLE = скрыто
Чтобы отобразить список при загрузке, нажмите и удерживайте любую буквенно-цифровую клавишу, когда информация BIOS отображается с помощью клавиатуры или другой последовательной консоли, и GRUB 2 представит вам меню GRUB 2.
26.5.1. Изменение загрузочной записи по умолчанию
По умолчанию ключ для директивы GRUB_DEFAULT
в файле / etc / default / grub
— это слово , сохраненное
. Это указывает GRUB 2 загрузить ядро, указанное в директиве saved_entry
в файле среды GRUB 2, расположенном по адресу / boot / grub2 / grubenv
. Вы можете установить другую запись GRUB 2 по умолчанию, используя команду grub2-set-default
, которая обновит файл среды GRUB 2.
По умолчанию в качестве значения saved_entry
установлено имя последнего установленного ядра типа пакета kernel . Это определено в / etc / sysconfig / kernel
директивами UPDATEDEFAULT
и DEFAULTKERNEL
. Файл может быть просмотрен пользователем root
следующим образом:
~] # cat / etc / sysconfig / kernel # UPDATEDEFAULT указывает, должен ли new-kernel-pkg делать # новое ядро по умолчанию UPDATEDEFAULT = да # DEFAULTKERNEL указывает тип пакета ядра по умолчанию DEFAULTKERNEL = ядро
Директива DEFAULTKERNEL
указывает, какой тип пакета будет использоваться по умолчанию.Установка пакета типа kernel-debug не изменит ядро по умолчанию, в то время как для DEFAULTKERNEL
задан тип пакета , ядро .
GRUB 2 поддерживает использование числового значения в качестве ключа для директивы saved_entry
, чтобы изменить порядок по умолчанию, в котором загружаются операционные системы. Чтобы указать, какая операционная система должна быть загружена первой, передайте ее номер команде grub2-set-default
. Например:
~] # grub2-set-default 2
Обратите внимание, что позиция пункта меню в списке обозначается числом, начинающимся с нуля; следовательно, в приведенном выше примере будет загружена третья запись.Это значение будет заменено именем следующего ядра, которое будет установлено.
Чтобы заставить систему всегда использовать конкретную запись меню, используйте имя записи меню в качестве ключа к директиве GRUB_DEFAULT
в файле / etc / default / grub
. Чтобы вывести список доступных пунктов меню, выполните следующую команду от имени root
:
~] # awk -F \ '' $ 1 == "menuentry" {print $ 2} '/etc/grub2.cfg
Имя файла / etc / grub2.cfg
— это символическая ссылка на файл grub.cfg
, расположение которого зависит от архитектуры. По соображениям надежности символическая ссылка не используется в других примерах в этой главе. При записи в файл лучше использовать абсолютные пути, особенно при ремонте системы.
Изменения в / etc / default / grub
требуют перестройки файла grub.cfg
следующим образом:
На компьютерах с BIOS введите следующую команду от имени
root
:~] # grub2-mkconfig -o / boot / grub2 / grub.CFG
На машинах с UEFI введите следующую команду от имени
root
:~] # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
26.5.3. Добавление новой записи
При выполнении команды grub2-mkconfig
GRUB 2 ищет ядра Linux и другие операционные системы на основе файлов, расположенных в каталоге /etc/grub.d/
. Сценарий /etc/grub.d/10_linux
ищет установленные ядра Linux в том же разделе.Сценарий /etc/grub.d/30_os-prober
выполняет поиск других операционных систем. Записи меню также автоматически добавляются в меню загрузки при обновлении ядра.
Файл 40_custom
, расположенный в каталоге /etc/grub.d/
, является шаблоном для пользовательских записей и выглядит следующим образом:
#! / Bin / sh exec tail -n +3 $ 0 # Этот файл предоставляет простой способ добавлять пользовательские пункты меню. Просто введите # пунктов меню, которые вы хотите добавить после этого комментария.Будьте осторожны, чтобы не изменить # строка 'exec tail' выше.
Этот файл можно редактировать или копировать. Обратите внимание, что как минимум действительный пункт меню должен включать как минимум следующее:
меню "<Название>" { <Данные> }
26.6. Защита GRUB 2 паролем
GRUB 2 предлагает два типа защиты паролем:
- Пароль требуется для изменения пунктов меню , но не для загрузки существующих пунктов меню;
- Пароль требуется для изменения пунктов меню и для загрузки одного, нескольких или всех пунктов меню.
Настройка GRUB 2 для запроса пароля только для изменения записей
Чтобы потребовать аутентификацию по паролю для изменения записей GRUB 2, выполните следующие действия:
Выполните команду
grub2-setpassword
от имени пользователя root:~] # grub2-setpassword
Введите и подтвердите пароль:
Введите пароль: Подтвердите пароль:
Следуя этой процедуре, создается / boot / grub2 / user.cfg
файл, содержащий хэш пароля. Пользователь для этого пароля, root
, определяется в файле /boot/grub2/grub.cfg
. С этим изменением для изменения загрузочной записи во время загрузки необходимо указать имя пользователя root
и ваш пароль.
Настройка GRUB 2 для запроса пароля для изменения и загрузки записей
Установка пароля с помощью grub2-setpassword
предотвращает несанкционированное изменение пунктов меню, но не от несанкционированной загрузки.Чтобы также потребовать пароль для загрузки записи, выполните следующие действия после установки пароля с помощью grub2-setpassword
:
Если вы забудете свой пароль GRUB 2, вы не сможете загрузить записи, которые вы перенастроили в следующей процедуре.
- Откройте файл
/boot/grub2/grub.cfg
. - Найдите загрузочную запись, которую вы хотите защитить паролем, выполнив поиск строк, начинающихся с
menuentry
. Удалите параметр
--unrestricted
из блока ввода меню, например:[содержимое файла усечено] menuentry 'Red Hat Enterprise Linux Server (3.10.0-327.18.2.rt56.223.el7_2.x86_64) 7.2 (Maipo)' --class red --class gnu-linux --class gnu --class os - неограниченный $ menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-c109825c-de2f-4340-a0ef-4f47d19fe4bf' { load_video установить gfxpayload = keep [содержимое файла усечено]
- Сохраните и закройте файл.
Теперь даже загрузка записи требует ввода имени пользователя и пароля root
.
Ручные изменения в /boot/grub2/grub.cfg
сохраняются при установке новых версий ядра, но теряются при повторном создании grub.cfg
с помощью команды grub2-mkconfig
. Поэтому, чтобы сохранить защиту паролем, используйте описанную выше процедуру после каждого использования grub2-mkconfig
.
Если вы удалите параметр --unrestricted
из каждого пункта меню в файле / boot / grub2 / grub.cfg
, все вновь установленные ядра будут иметь пункт меню, созданный без --unrestricted
и, следовательно, автоматически наследуют защиту паролем.
Пароли, установленные перед обновлением до Red Hat Enterprise Linux 7.2
Инструмент grub2-setpassword
был добавлен в Red Hat Enterprise Linux 7.2 и теперь является стандартным методом установки паролей GRUB 2. Это контрастирует с предыдущими версиями Red Hat Enterprise Linux, где загрузочные записи нужно было вручную указывать в файле / etc / grub.d / 40_custom
файл, а суперпользователи — в файле /etc/grub.d/01_users
.
Дополнительные пользователи GRUB 2
Для загрузочных записей без параметра --unrestricted
требуется пароль root. Однако GRUB 2 также позволяет создавать дополнительных пользователей без полномочий root, которые могут загружать такие записи без ввода пароля. Для изменения записей по-прежнему требуется пароль root. Информацию о создании таких пользователей см. В Руководстве по GRUB 2.
26.7. Переустановка GRUB 2
Переустановка GRUB 2 — удобный способ исправить определенные проблемы, обычно вызванные неправильной установкой GRUB 2, отсутствующими файлами или неисправной системой. Другие причины для переустановки GRUB 2 включают следующее:
- Обновление с предыдущей версии GRUB.
- Пользователю требуется загрузчик GRUB 2 для управления установленными операционными системами. Однако некоторые операционные системы устанавливаются со своими собственными загрузчиками.Переустановка GRUB 2 возвращает управление желаемой операционной системе.
- Добавление загрузочной информации на другой диск.
26.7.1. Переустановка GRUB 2 на компьютерах с BIOS
При использовании команды grub2-install
информация о загрузке обновляется и недостающие файлы восстанавливаются. Учтите, что файлы восстанавливаются только в том случае, если они не повреждены.
Используйте команду grub2-install device
для переустановки GRUB 2, если система работает нормально.Например, если sda
— это ваше устройство :
~] # grub2-install / dev / sda
26.7.2. Переустановка GRUB 2 на машинах с UEFI
При использовании команды yum restart grub2-efi shim
информация о загрузке обновляется, а отсутствующие файлы восстанавливаются. Учтите, что файлы восстанавливаются только в том случае, если они не повреждены.
Используйте команду yum install grub2-efi shim
, чтобы переустановить GRUB 2, если система работает нормально.Например:
~] # yum переустановите прокладку grub2-efi
26.7.3. Сброс и повторная установка GRUB 2
Этот метод полностью удаляет все файлы конфигурации GRUB 2 и системные настройки. Примените этот метод, чтобы сбросить все параметры конфигурации до значений по умолчанию. Удаление файлов конфигурации и последующая переустановка GRUB 2 устраняют сбои, вызванные повреждением файлов и неправильной конфигурацией. Для этого от имени root
выполните следующие действия:
- Запустите файл
rm / etc / grub.d / *
команда; - Выполните команду
rm / etc / sysconfig / grub
; Для систем EFI только , выполните следующую команду:
~] # yum переустановите grub2-efi shim grub2-tools
Для систем BIOS и EFI выполните эту команду:
~] # yum переустановите grub2-tools
Восстановите файл
grub.cfg
, выполнив командуgrub2-mkconfig -o
следующим образом:На компьютерах с BIOS введите следующую команду от имени
root
:~] # grub2-mkconfig -o / boot / grub2 / grub.CFG
На машинах с UEFI введите следующую команду от имени
root
:~] # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
- Теперь выполните процедуру, описанную в Раздел 26.7, «Переустановка GRUB 2», чтобы восстановить GRUB 2 в разделе
/ boot /
.
26,8. Обновление с GRUB Legacy до GRUB 2
Когда вы выполняете обновление Red Hat Enterprise Linux (RHEL) с версии 6 до 7 на месте, обновление с GRUB Legacy
до GRUB 2
не происходит автоматически, а должно выполняться вручную.Выполните обновление GRUB по следующим причинам:
- В RHEL 7 и более поздних версиях
GRUB Legacy
больше не поддерживается и не получает обновлений. -
GRUB Legacy
не может загружаться в системах без каталога/ boot /
. -
GRUB 2
имеет больше возможностей и более надежен. -
GRUB 2
поддерживает больше конфигураций оборудования, файловых систем и макетов дисков.
Обновление с GRUB Legacy до GRUB 2 после обновления операционной системы на месте
Обновление с GRUB Legacy до GRUB 2
Убедитесь, что пакет GRUB Legacy был удален с помощью средства обновления Red Hat Upgrade Tool :
~] # yum remove grub
Удаление пакета grub2 не влияет на установленный загрузчик GRUB Legacy.
Убедитесь, что установлен пакет grub2 .Если grub2 отсутствует в системе после обновления до RHEL 7, вы можете установить его вручную, запустив:
~] # yum install grub2
Если система загружается с использованием EFI, установите следующие пакеты, если они отсутствуют:
~] # yum install grub2-efi-x64 shim-x64
Создание файлов конфигурации GRUB 2
В этом разделе описывается, как добавить конфигурацию GRUB 2
без удаления исходной конфигурации GRUB Legacy
.Процедура сохраняет конфигурацию GRUB Legacy
на случай, если GRUB 2
работает некорректно.
Вручную создайте файл
/ etc / default / grub
, используя один из следующих параметров:В зависимости от вашего загрузчика:
Если система загружается с использованием устаревшего BIOS, установите файлы
GRUB 2
в каталог/ boot / grub /
на диске / dev / device_name :~] # grub2-install --grub-setup = / bin / true / dev / имя_устройства
Замените / dev / device_name файлом загрузочного устройства.
Параметр
--grub-setup = / bin / true
гарантирует, что старая конфигурацияGRUB Legacy
не будет удалена.Если система загружается с использованием EFI, создайте загрузочную запись для загрузчика оболочки совместимости и измените переменную
BootOrder
, чтобы микропрограмма загружала с GRUB 2 попрокладку
:~] # efibootmgr -c -L 'Red Hat Enterprise Linux 7' -d / dev / имя_устройства -p 1 -l '\ EFI \ redhat \ shimx64.efi '
Замените / dev / device_name файлом загрузочного устройства.
Обратите внимание на разницу в расширениях файлов конфигурации:
-
.conf
дляGRUB
-
.cfg
дляGRUB 2
Не перезаписывайте старый файл конфигурации
GRUB
по ошибке на следующем шаге.Создайте файл конфигурации
GRUB 2
:Если в системе используется устаревшая версия BIOS:
~] # grub2-mkconfig -o / boot / grub2 / grub.CFG
Если в системе используется EFI:
~] # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Тестирование GRUB 2 с установленным загрузчиком GRUB Legacy
В этом разделе описывается, как протестировать GRUB 2
без удаления конфигурации GRUB Legacy
. Конфигурация GRUB Legacy
должна оставаться до тех пор, пока конфигурация GRUB 2
не будет проверена; в противном случае система может перестать загружаться.Чтобы безопасно протестировать конфигурацию GRUB 2
, мы запустим GRUB 2
из GRUB Legacy
.
Этот раздел относится только к устаревшей загрузке BIOS. В случае EFI загрузочные записи существуют как для старого, так и для нового загрузчика, и вы можете загрузить старый устаревший GRUB, выбрав загрузочную запись с настройками прошивки EFI.
Добавьте новый раздел в
/boot/grub/grub.conf
.Для систем с отдельным разделом
/ boot
используйте:название GRUB 2 Test корень (hd0,0) ядро / grub2 / i386-pc / core.img багажник
Замените (hd0,0) обозначением загрузочного устройства
GRUB Legacy
.Для систем без отдельного раздела
/ boot
используйте:название GRUB 2 Test корень (hd0,0) ядро /boot/grub2/i386-pc/core.img багажник
Замените (hd0,0) обозначением загрузочного устройства
GRUB Legacy
.- Перезагрузите систему.
- Когда представлено меню
GRUB Legacy
, выберите записьGRUB 2 Test
. - Когда отображается меню
GRUB 2
, выберите ядро для загрузки. - Если описанное выше не помогло, перезапустите и не выберите
GRUB 2 Test
запись при следующей загрузке.
Замена загрузчика GRUB Legacy в системах, использующих BIOS
Если GRUB 2 работает успешно:
Замените загрузчик GRUB Legacy на загрузчик GRUB 2:
~] # grub2-install / dev / sda
Удалите старый файл конфигурации GRUB Legacy:
~] # rm / boot / grub / grub.конф
Перезагрузите систему:
~] # reboot
Удаление устаревшего GRUB в системах, использующих EFI
Если GRUB 2 работает успешно:
Проверьте содержимое каталога
/ boot / efi / EFI / redhat /
и удалите устаревшие файлы, относящиеся только к Legacy GRUB:~] # rm /boot/efi/EFI/redhat/grub.efi ~] # rm /boot/efi/EFI/redhat/grub.conf
Если вы выполнили обновление на месте с RHEL 6 до RHEL 7 с помощью утилит Preupgrade Assistant и Red Hat Upgrade Tool, удалите также резервные копии файлов, упомянутых выше, которые заканчиваются на
.preupg
суффикс:~] # rm /boot/efi/EFI/redhat/*.preupg
Найдите старую загрузочную запись, которая ссылается на файл
\ EFI \ redhat \ grub.efi
, с помощью командыefibootmgr
:~] # efibootmgr -v | grep '\\ EFI \\ redhat \\ grub.efi'
Пример вывода:
Boot0001 * Linux HD (1, GPT, 542e410f-cbf2-4cce-9f5d-61c4764a5d54,0x800,0x64000) / Файл (\ EFI \ redhat \ grub.efi)
Номер записи в данном случае —
0001
.Удалите идентифицированную загрузочную запись. Следующая команда удаляет загрузочную запись из приведенного выше примера:
~] # efibootmgr -Bb 0001
Если у вас несколько таких загрузочных записей, удалите все идентифицированные старые загрузочные записи.
После обновления до RHEL7 из более ранней версии, такой как RHEL6, операционная система не поддерживается до тех пор, пока не будет успешно завершено ручное обновление загрузчика GRUB Legacy до GRUB 2 .Это связано с тем, что установка пакетов в основных выпусках не поддерживается. В случае RHEL 7 поддерживается, разрабатывается и тестируется только GRUB 2; в отличие от GRUB Legacy от RHEL 6.
26.9. GRUB 2 через последовательную консоль
В этом разделе описывается, как настроить GRUB 2
для последовательной связи на машинах без дисплея или клавиатуры.
Чтобы получить доступ к терминалу GRUB 2
через последовательное соединение, в определение ядра необходимо добавить дополнительную опцию, чтобы это конкретное ядро контролировало последовательное соединение.
Например:
консоль = ttyS0,9600n8
Где console = ttyS0
— это используемый последовательный терминал, 9600
— скорость передачи, n
— без контроля четности и 8
— длина слова в битах. Значительно более высокая скорость передачи данных, например 115200
, предпочтительна для таких задач, как отслеживание файлов журнала.
Дополнительные сведения о настройках последовательной консоли см. В разделе «Устанавливаемая и внешняя документация».
26.9.1. Настройка GRUB 2 для однократной загрузки
Чтобы настроить систему на использование последовательного терминала только во время одного процесса загрузки, когда появится меню загрузки GRUB 2, переместите курсор на ядро, которое вы хотите запустить, и нажмите клавишу e , чтобы отредактировать параметры ядра. Удалите параметры rhgb
и quiet
и добавьте параметры консоли в конец строки linux16
следующим образом:
linux16 /vmlinuz-3.10.0-0.rc4.59.el7.x86_64 root = / dev / mapper / rhel-root ro rd.md = 0 rd.dm = 0 rd.lvm.lv = rhel / swap crashkernel = auto rd.luks = 0 vconsole.keymap = us rd.lvm.lv = rhel / root консоль = ttyS0,9600
Эти настройки не являются постоянными и применяются только для однократной загрузки.
26.9.2. Настройка GRUB 2 для постоянного изменения
Чтобы внести постоянные изменения в пункт меню в системе, используйте инструмент grubby
. Например, чтобы обновить запись для ядра по умолчанию, введите следующую команду:
~] # grubby --remove-args = "rhgb quiet" --args = console = ttyS0,9600 --update-kernel = DEFAULT
Параметр --update-kernel
также принимает ключевое слово ALL
или список номеров индексов ядра, разделенных запятыми.См. Раздел «Добавление и удаление аргументов из пункта меню GRUB 2» для получения дополнительной информации об использовании grubby
.
26.9.3. Настройка нового файла GRUB 2
Если требуется для создания нового файла конфигурации GRUB 2, добавьте следующие две строки в файл / etc / default / grub
:
GRUB_TERMINAL = "серийный" GRUB_SERIAL_COMMAND = "serial --speed = 9600 --unit = 0 --word = 8 --parity = no --stop = 1"
Первая строка отключает графический терминал.Обратите внимание, что указание ключа GRUB_TERMINAL
переопределяет значения GRUB_TERMINAL_INPUT
и GRUB_TERMINAL_OUTPUT
. Во второй строке настройте скорость передачи, четность и другие значения в соответствии с вашей средой и оборудованием. Значительно более высокая скорость передачи данных, например 115200
, предпочтительна для таких задач, как отслеживание файлов журнала. После внесения изменений в файл / etc / default / grub
необходимо обновить файл конфигурации GRUB 2.
Восстановите файл grub.cfg
, выполнив команду grub2-mkconfig -o
следующим образом:
На компьютерах с BIOS введите следующую команду от имени
root
:~] # grub2-mkconfig -o /boot/grub2/grub.cfg
На машинах с UEFI введите следующую команду от имени
root
:~] # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
26.9.4. Использование экрана для подключения к последовательной консоли
Экран Инструмент служит в качестве последовательного терминала. Чтобы установить его, запустите root
:
~] # экран установки yum
Чтобы подключиться к вашему компьютеру с помощью последовательной консоли, используйте команду в следующем формате:
экран / dev / console_port baud_rate
По умолчанию, если параметр не указан, screen использует стандартную скорость передачи 9600 бод.Чтобы установить более высокую скорость передачи, введите:
~] $ screen / dev / console_port
115200
Где console_port — это ttyS0
или ttyUSB0
и т. Д.
Чтобы завершить сеанс на экране , нажмите Ctrl + a , введите : выйти из
и нажмите Введите .
См. Страницу руководства screen (1)
для дополнительных опций и подробной информации.
26.11. Унифицированный расширяемый интерфейс микропрограмм (UEFI) Безопасная загрузка
Унифицированный расширяемый интерфейс микропрограмм ( UEFI ) Технология безопасной загрузки гарантирует, что микропрограмма системы проверяет, подписан ли системный загрузчик криптографическим ключом, авторизованным базой данных открытых ключей, содержащихся в микропрограмме. С проверкой подписи в загрузчике следующего этапа и ядре можно предотвратить выполнение кода пространства ядра, который не был подписан доверенным ключом.
Цепочка доверия устанавливается от микропрограммы к подписанным драйверам и модулям ядра следующим образом. Загрузчик первой ступени, shim.efi
, подписан закрытым ключом UEFI и аутентифицирован открытым ключом, подписанным центром сертификации (CA), хранящимся в базе данных микропрограмм. shim.efi
содержит открытый ключ Red Hat «Безопасная загрузка Red Hat (ключ CA 1)», который используется для аутентификации как загрузчика GRUB 2, grubx64.efi
, так и ядра Red Hat.Ядро, в свою очередь, содержит открытые ключи для аутентификации драйверов и модулей.
Безопасная загрузка — это компонент проверки пути загрузки спецификации Unified Extensible Firmware Interface (UEFI). Спецификация определяет:
- программный интерфейс для криптографически защищенных переменных UEFI в энергонезависимой памяти,
- как доверенные корневые сертификаты X.509 хранятся в переменных UEFI,
- проверка приложений UEFI, таких как загрузчики и драйверы,
- процедуры отзыва заведомо плохих сертификатов и хэшей приложений.
Безопасная загрузка UEFI не препятствует установке или удалению загрузчиков второго уровня и не требует явного подтверждения пользователем таких изменений. Подписи проверяются во время загрузки, а не при установке или обновлении загрузчика. Таким образом, UEFI Secure Boot не останавливает манипуляции с путями загрузки, а помогает обнаруживать несанкционированные изменения. Новый загрузчик или ядро будут работать, пока они подписаны ключом, которому доверяет система.
26.11.1. Поддержка безопасной загрузки UEFI в Red Hat Enterprise Linux 7
Red Hat Enterprise Linux 7 включает поддержку функции безопасной загрузки UEFI, что означает, что Red Hat Enterprise Linux 7 может быть установлен и запущен в системах, где включена безопасная загрузка UEFI. В системах на основе UEFI с включенной технологией безопасной загрузки все загружаемые драйверы должны быть подписаны доверенным ключом, иначе система их не примет. Все драйверы, предоставляемые Red Hat, подписаны одним из закрытых ключей Red Hat и аутентифицированы соответствующим открытым ключом Red Hat в ядре.
Если вы хотите загрузить драйверы, созданные извне, драйверы, отсутствующие на DVD-диске Red Hat Enterprise Linux, вы должны убедиться, что эти драйверы также подписаны.
Информация о подписи пользовательских драйверов доступна в Руководстве по администрированию ядра Red Hat Enterprise Linux 7.
Ограничения, налагаемые безопасной загрузкой UEFI
Поскольку поддержка безопасной загрузки UEFI в Red Hat Enterprise Linux 7 предназначена для обеспечения того, чтобы система запускала код режима ядра только после того, как ее подпись была должным образом аутентифицирована, существуют определенные ограничения.
Загрузка модуля GRUB 2 отключена, поскольку нет инфраструктуры для подписи и проверки модулей GRUB 2, а это означает, что разрешение их загрузки будет представлять собой выполнение ненадежного кода внутри периметра безопасности, определяемого безопасной загрузкой. Вместо этого Red Hat предоставляет подписанный двоичный файл GRUB 2, в который уже включены все модули, поддерживаемые Red Hat Enterprise Linux 7.
Более подробная информация доступна в статье базы знаний Red Hat «Ограничения, налагаемые безопасной загрузкой UEFI».