From 5a6834585c43296c2207f5f251d3d5c237c7c8d2 Mon Sep 17 00:00:00 2001 From: Sn4il Date: Wed, 6 Mar 2024 10:25:41 +0300 Subject: Update LFS mirror --- lfs-12.1-sysv/chapter10/grub.html | 354 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 354 insertions(+) create mode 100644 lfs-12.1-sysv/chapter10/grub.html (limited to 'lfs-12.1-sysv/chapter10/grub.html') diff --git a/lfs-12.1-sysv/chapter10/grub.html b/lfs-12.1-sysv/chapter10/grub.html new file mode 100644 index 0000000..e13115c --- /dev/null +++ b/lfs-12.1-sysv/chapter10/grub.html @@ -0,0 +1,354 @@ + + + + + + 10.4. Использование GRUB для настройки процесса загрузки + + + + + + + + +

+ 10.4. + Использование GRUB для настройки процесса загрузки +

+
+
+ [Примечание] +

+ Примечание +

+

+ Если ваша система поддерживает UEFI и вы хотите загрузить LFS с + помощью UEFI, вам следует пропустить инструкции на этой странице, + но все равно изучить синтаксис grub.cfg и способ указания раздела в файле с этой + страницы, а также настроить GRUB с поддержкой UEFI используя + инструкции, приведенные на + странице BLFS. +

+
+
+

+ 10.4.1. Введение +

+
+ [Предупреждение] +

+ Предупреждение +

+

+ При неправильной настройке GRUB ваша система перестанет + загружаться без вспомогательно загрузочного CD-ROM или + USB-накопителя. Для загрузки системы LFS этот раздел + необязателен. Вы можете просто использовать существующий + загрузчик, например Grub-Legacy, GRUB2 или LILO. +

+
+

+ Убедитесь, что аварийный загрузочный диск готов к «спасению» компьютера, + если он перестанет загружаться. Если у вас еще нет загрузочного + диска, вы можете создать его. Для этого необходимо перейти в раздел + BLFS и установить программу xorriso из пакета + libisoburn. +

+
cd /tmp
+grub-mkrescue --output=grub-img.iso
+xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
+
+
+

+ 10.4.2. Соглашения об именовании GRUB +

+

+ GRUB использует собственную структуру именования дисков и разделов + в виде (hdn,m), где + n — номер жесткого диска, а + m — номер раздела. Номера + жестких дисков начинаются с нуля, а номера разделов начинаются с + единицы для обычных разделов (с пяти для расширенных разделов). + Обратите внимание, что это отличается от более ранних версий, где + оба номера начинались с нуля. Например, раздел sda1 это (hd0,1) в GRUB, а sdb3 (hd1,3). В отличие от Linux, GRUB не + считает приводы CD-ROM жесткими дисками. Например, если + используемый CD-привода определяется как hdb, а второй жесткий диск как hdc, этот второй жесткий диск все равно будет + (hd1). +

+
+
+

+ 10.4.3. Настройка +

+

+ GRUB записывает данные на первый физический сектор жесткого диска. + Эта область не является частью какой-либо файловой системы. + Программа в загрузочном разделе имеет доступ к модулям GRUB + расположенным по умолчанию в /boot/grub/. +

+

+ Расположение загрузочного раздела - это выбор пользователя, который + влияет на конфигурацию. Одна из рекомендаций заключается в том, + чтобы иметь отдельный небольшой раздел (примерно 200 МБ) + исключительно для загрузочной информации. В этом случае каждая + сборка, будь то LFS или другой дистрибутив, может обращаться к тем + же загрузочным файлам, а доступ может быть получен из любой + загруженной системы. Если вы решите так сделать, вам необходимо + примонтировать отдельный раздел, переместить все файлы из текущего + каталога /boot (например, ядро Linux, + которое вы создали на предыдущем этапе) в новый раздел. Затем нужно + отмонтировать раздел и примонтировать его заново в каталог + /boot. Когда вы это сделаете, + обязательно обновите данные в файле /etc/fstab. +

+

+ Оставить /boot на текущем разделе LFS + это тоже рабочее решение, но его настройка для загрузки нескольких + систем сложнее. +

+

+ Используя информацию выше, определите соответствующие точки + монтирования для корневого раздела (или загрузочного раздела, если + используется отдельный). В следующем примере предполагается, что + корневым (или отдельным загрузочным) разделом является sda2. +

+

+ Установите файлы GRUB в каталог /boot/grub и настройте загрузочный сектор: +

+
+ [Предупреждение] +

+ Предупреждение +

+

+ Следующая команда перезапишет текущий загрузчик. Не выполняйте + эту команду, если это не нужно, например, если вы используете + сторонний менеджер загрузки для управления главной загрузочной + записью (MBR). +

+
+
grub-install /dev/sda
+
+ [Примечание] +

+ Примечание +

+

+ Если система была загружена с использованием UEFI, grub-install попытается + установить файлы для x86_64-efi, но эти файлы не были + установлены в + Глава 8. Если это так, добавьте --target i386-pc к приведенной выше команде. +

+
+
+
+

+ 10.4.4. Создание файла + конфигурации GRUB +

+

+ Создайте файл /boot/grub/grub.cfg: +

+
cat > /boot/grub/grub.cfg << "EOF"
+# Begin /boot/grub/grub.cfg
+set default=0
+set timeout=5
+
+insmod part_gpt
+insmod ext2
+set root=(hd0,2)
+
+menuentry "GNU/Linux, Linux 6.7.4-lfs-12.1" {
+        linux   /boot/vmlinuz-6.7.4-lfs-12.1 root=/dev/sda2 ro
+}
+EOF
+

+ Команды insmod + загружают модули GRUB с именами + part_gpt и ext2. Несмотря на название, ext2 фактически поддерживаются файловые системы + ext2, ext3 и ext4. + Команда grub-install + встроила некоторые модули в основной образ GRUB (установленный в MBR или раздел GRUB + BIOS) для доступа к другим модулям (в /boot/grub/i386-pc), поэтому в стандартной + конфигурации эти два модуля уже встроены и эти две команды + insmod ничего не + будут делать. В любом случае, от них нет никакого вреда, но они + могут понадобиться в некоторых редких конфигурациях. +

+
+ [Примечание] +

+ Примечание +

+

+ С точки зрения GRUB, файлы ядра + относятся к используемому разделу. Если вы используется отдельный + раздел /boot, удалите /boot из приведенной выше строки + linux. Вам также + потребуется изменить строку set + root так, чтобы она указывала на загрузочный раздел. +

+
+
+ [Примечание] +

+ Примечание +

+

+ Наименование раздела для GRUB может измениться, если вы добавили + или удалили некоторые диски (это могут быть как съемные диски, + так и USB-устройства). Изменение может привести к сбою загрузки, + потому что grub.cfg ссылается на + «старые» + указатели. Чтобы не столкнуться с этой проблемой, необходимо + использовать UUID раздела и файловой системы вместо указателя + GRUB для указания устройства. Запустите команду lsblk -o + UUID,PARTUUID,PATH,MOUNTPOINT, чтобы посмотреть + UUID ваших файловых систем (в столбце UUID) и разделов (в столбце PARTUUID). Затем замените set root=(hdx,y) на search + --set=root --fs-uuid <UUID + файловой системы, в которой установлено + ядро>, и замените root=/dev/sda2 на root=PARTUUID=<UUID + раздела, в котором собрана LFS>. +

+

+ Обратите внимание, что UUID раздела и UUID файловой системы на + этом разделе это совершенно разные вещи. Некоторые онлайн-ресурсы + могут предлагать вам использовать root=UUID=<UUID + файловой системы> вместо root=PARTUUID=<UUID + раздела>, но для этого требуется initramfs, + которая не рассматривается в LFS. +

+

+ Имя узла устройства для раздела в /dev также может измениться (хотя это менее + вероятно, чем изменение указателя GRUB). Вы можете заменить пути + к узлам устройств, таким как /dev/sda1 на PARTUUID=<UUID + раздела>, в /etc/fstab, чтобы избежать потенциального сбоя + загрузки в случае, если имя узла устройства изменилось. +

+
+

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

+
+ [Внимание] +

+ Внимание +

+

+ Существует команда grub-mkconfig, которая может автоматически + записывать файл конфигурации. Она использует набор скриптов из + каталога /etc/grub.d/ и уничтожит любые сделанные вами настройки. + Эти скрипты предназначены в первую очередь для обычных + дистрибутивов и не рекомендуются для LFS. Если вы устанавливаете + коммерческий дистрибутив Linux, есть вероятность, что эта + программа будет запущена. Обязательно создайте резервную копию + файла grub.cfg. +

+
+
+
+ + + -- cgit v1.2.3