diff options
Diffstat (limited to 'lfs-12.0-sysv/chapter10/grub.html')
-rw-r--r-- | lfs-12.0-sysv/chapter10/grub.html | 354 |
1 files changed, 0 insertions, 354 deletions
diff --git a/lfs-12.0-sysv/chapter10/grub.html b/lfs-12.0-sysv/chapter10/grub.html deleted file mode 100644 index c41e3fa..0000000 --- a/lfs-12.0-sysv/chapter10/grub.html +++ /dev/null @@ -1,354 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> - <title> - 10.4. Использование GRUB для настройки процесса загрузки - </title> - <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" /> - <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /> - <link rel="stylesheet" href="../stylesheets/lfs-print.css" type= - "text/css" media="print" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - </head> - <body class="lfs" id="lfs-12.0"> - <div class="navheader"> - <h4> - Линукс с нуля - Версия 12.0 - </h4> - <h3> - Глава 10. Делаем систему LFS загрузочной - </h3> - <ul> - <li class="prev"> - <a accesskey="p" href="kernel.html" title="Linux-6.4.12">Пред.</a> - <p> - Linux-6.4.12 - </p> - </li> - <li class="next"> - <a accesskey="n" href="../chapter11/chapter11.html" title= - "Заключение">След.</a> - <p> - Заключение - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter10.html" title= - "Глава 10. Делаем систему LFS загрузочной">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.0">Начало</a> - </li> - </ul> - </div> - <div class="wrap" lang="en" xml:lang="en"> - <h1 class="sect1"> - <a id="ch-bootable-grub" name="ch-bootable-grub"></a>10.4. - Использование GRUB для настройки процесса загрузки - </h1> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Если ваша система поддерживает UEFI и вы хотите загрузить LFS с - помощью UEFI, вам следует пропустить инструкции на этой странице, - но все равно изучить синтаксис <code class= - "filename">grub.cfg</code> и способ указания раздела в файле с этой - страницы, а также настроить GRUB с поддержкой UEFI используя - инструкции, приведенные на <a class="ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/postlfs/grub-setup.html"> - странице BLFS</a>. - </p> - </div> - <div class="sect2" lang="en" xml:lang="en"> - <h2 class="sect2"> - 10.4.1. Введение - </h2> - <div class="admon warning"> - <img alt="[Предупреждение]" src="../images/warning.png" /> - <h3> - Предупреждение - </h3> - <p> - При неправильной настройке GRUB ваша система перестанет - загружаться без вспомогательно загрузочного CD-ROM или - USB-накопителя. Для загрузки системы LFS этот раздел - необязателен. Вы можете просто использовать существующий - загрузчик, например Grub-Legacy, GRUB2 или LILO. - </p> - </div> - <p> - Убедитесь, что аварийный загрузочный диск готов к <span class= - "quote">«<span class="quote">спасению</span>»</span> компьютера, - если он перестанет загружаться. Если у вас еще нет загрузочного - диска, вы можете создать его. Для этого необходимо перейти в раздел - BLFS и установить программу <strong class= - "userinput"><code>xorriso</code></strong> из пакета <a class= - "ulink" href= - "https://mirror.linuxfromscratch.ru/blfs/view/12.0/multimedia/libisoburn.html"> - libisoburn</a>. - </p> - <pre class="userinput"><kbd class="command">cd /tmp -grub-mkrescue --output=grub-img.iso -xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso</kbd></pre> - </div> - <div class="sect2" lang="en" xml:lang="en"> - <h2 class="sect2"> - 10.4.2. Соглашения об именовании GRUB - </h2> - <p> - GRUB использует собственную структуру именования дисков и разделов - в виде <span class="emphasis"><em>(hdn,m)</em></span>, где - <span class="emphasis"><em>n</em></span> — номер жесткого диска, а - <span class="emphasis"><em>m</em></span> — номер раздела. Номера - жестких дисков начинаются с нуля, а номера разделов начинаются с - единицы для обычных разделов (с пяти для расширенных разделов). - Обратите внимание, что это отличается от более ранних версий, где - оба номера начинались с нуля. Например, раздел <code class= - "filename">sda1</code> это <span class= - "emphasis"><em>(hd0,1)</em></span> в GRUB, а <code class= - "filename">sdb3</code> <span class= - "emphasis"><em>(hd1,3)</em></span>. В отличие от Linux, GRUB не - считает приводы CD-ROM жесткими дисками. Например, если - используемый CD-привода определяется как <code class= - "filename">hdb</code>, а второй жесткий диск как <code class= - "filename">hdc</code>, этот второй жесткий диск все равно будет - <span class="emphasis"><em>(hd1)</em></span>. - </p> - </div> - <div class="sect2" lang="en" xml:lang="en"> - <h2 class="sect2"> - 10.4.3. Настройка - </h2> - <p> - GRUB записывает данные на первый физический сектор жесткого диска. - Эта область не является частью какой-либо файловой системы. - Программа в загрузочном разделе имеет доступ к модулям GRUB - расположенным по умолчанию в /boot/grub/. - </p> - <p> - Расположение загрузочного раздела - это выбор пользователя, который - влияет на конфигурацию. Одна из рекомендаций заключается в том, - чтобы иметь отдельный небольшой раздел (примерно 200 МБ) - исключительно для загрузочной информации. В этом случае каждая - сборка, будь то LFS или другой дистрибутив, может обращаться к тем - же загрузочным файлам, а доступ может быть получен из любой - загруженной системы. Если вы решите так сделать, вам необходимо - примонтировать отдельный раздел, переместить все файлы из текущего - каталога <code class="filename">/boot</code> (например, ядро Linux, - которое вы создали на предыдущем этапе) в новый раздел. Затем нужно - отмонтировать раздел и примонтировать его заново в каталог - <code class="filename">/boot</code>. Когда вы это сделаете, - обязательно обновите данные в файле <code class= - "filename">/etc/fstab</code>. - </p> - <p> - Оставить <code class="filename">/boot</code> на текущем разделе LFS - это тоже рабочее решение, но его настройка для загрузки нескольких - систем сложнее. - </p> - <p> - Используя информацию выше, определите соответствующие точки - монтирования для корневого раздела (или загрузочного раздела, если - используется отдельный). В следующем примере предполагается, что - корневым (или отдельным загрузочным) разделом является <code class= - "filename">sda2</code>. - </p> - <p> - Установите файлы GRUB в каталог <code class= - "filename">/boot/grub</code> и настройте загрузочный сектор: - </p> - <div class="admon warning"> - <img alt="[Предупреждение]" src="../images/warning.png" /> - <h3> - Предупреждение - </h3> - <p> - Следующая команда перезапишет текущий загрузчик. Не выполняйте - эту команду, если это не нужно, например, если вы используете - сторонний менеджер загрузки для управления главной загрузочной - записью (MBR). - </p> - </div> - <pre class="userinput"><kbd class= - "command">grub-install /dev/sda</kbd></pre> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Если система была загружена с использованием UEFI, <span class= - "command"><strong>grub-install</strong></span> попытается - установить файлы для <span class= - "emphasis"><em>x86_64-efi</em></span>, но эти файлы не были - установлены в <a class="xref" href="../chapter08/chapter08.html" - title= - "Глава 8. Установка базового системного программного обеспечения"> - Глава 8</a>. Если это так, добавьте <code class= - "option">--target i386-pc</code> к приведенной выше команде. - </p> - </div> - </div> - <div class="sect2" lang="en" xml:lang="en"> - <h2 class="sect2"> - <a id="grub-cfg" name="grub-cfg"></a>10.4.4. Создание файла - конфигурации GRUB - </h2> - <p> - Создайте файл <code class="filename">/boot/grub/grub.cfg</code>: - </p> - <pre class="userinput"><kbd class= - "command">cat > /boot/grub/grub.cfg << "EOF" -<code class="literal"># 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.4.12-lfs-12.0" { - linux /boot/vmlinuz-6.4.12-lfs-12.0 root=/dev/sda2 ro -}</code> -EOF</kbd></pre> - <p> - Команды <span class="command"><strong>insmod</strong></span> - загружают модули <span class="application">GRUB</span> с именами - <code class="filename">part_gpt</code> и <code class= - "filename">ext2</code>. Несмотря на название, <code class= - "filename">ext2</code> фактически поддерживаются файловые системы - <code class="systemitem">ext2</code>, <code class= - "systemitem">ext3</code> и <code class="systemitem">ext4</code>. - Команда <span class="command"><strong>grub-install</strong></span> - встроила некоторые модули в основной образ <span class= - "application">GRUB</span> (установленный в MBR или раздел GRUB - BIOS) для доступа к другим модулям (в <code class= - "filename">/boot/grub/i386-pc</code>), поэтому в стандартной - конфигурации эти два модуля уже встроены и эти две команды - <span class="command"><strong>insmod</strong></span> ничего не - будут делать. В любом случае, от них нет никакого вреда, но они - могут понадобиться в некоторых редких конфигурациях. - </p> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - С точки зрения <span class="application">GRUB</span>, файлы ядра - относятся к используемому разделу. Если вы используется отдельный - раздел /boot, удалите /boot из приведенной выше строки - <span class="emphasis"><em>linux</em></span>. Вам также - потребуется изменить строку <span class="emphasis"><em>set - root</em></span> так, чтобы она указывала на загрузочный раздел. - </p> - </div> - <div class="admon note"> - <img alt="[Примечание]" src="../images/note.png" /> - <h3> - Примечание - </h3> - <p> - Наименование раздела для GRUB может измениться, если вы добавили - или удалили некоторые диски (это могут быть как съемные диски, - так и USB-устройства). Изменение может привести к сбою загрузки, - потому что <code class="filename">grub.cfg</code> ссылается на - <span class="quote">«<span class="quote">старые</span>»</span> - указатели. Чтобы не столкнуться с этой проблемой, необходимо - использовать UUID раздела и файловой системы вместо указателя - GRUB для указания устройства. Запустите команду <span class= - "command"><strong>lsblk -o - UUID,PARTUUID,PATH,MOUNTPOINT</strong></span>, чтобы посмотреть - UUID ваших файловых систем (в столбце <code class= - "literal">UUID</code>) и разделов (в столбце <code class= - "literal">PARTUUID</code>). Затем замените <code class= - "literal">set root=(hdx,y)</code> на <code class="literal">search - --set=root --fs-uuid <em class="replaceable"><code><UUID - файловой системы, в которой установлено - ядро></code></em></code>, и замените <code class= - "literal">root=/dev/sda2</code> на <code class= - "literal">root=PARTUUID=<em class="replaceable"><code><UUID - раздела, в котором собрана LFS></code></em></code>. - </p> - <p> - Обратите внимание, что UUID раздела и UUID файловой системы на - этом разделе это совершенно разные вещи. Некоторые онлайн-ресурсы - могут предлагать вам использовать <code class= - "literal">root=UUID=<em class="replaceable"><code><UUID - файловой системы></code></em></code> вместо <code class= - "literal">root=PARTUUID=<em class="replaceable"><code><UUID - раздела></code></em></code>, но для этого требуется initramfs, - которая не рассматривается в LFS. - </p> - <p> - Имя узла устройства для раздела в <code class= - "filename">/dev</code> также может измениться (хотя это менее - вероятно, чем изменение указателя GRUB). Вы можете заменить пути - к узлам устройств, таким как <code class= - "literal">/dev/sda1</code> на <code class= - "literal">PARTUUID=<em class="replaceable"><code><UUID - раздела></code></em></code>, в <code class= - "filename">/etc/fstab</code>, чтобы избежать потенциального сбоя - загрузки в случае, если имя узла устройства изменилось. - </p> - </div> - <p> - GRUB - чрезвычайно мощная программа, предоставляющая огромное - количество вариантов загрузки с самых разных устройств, работающих - систем и типов разделов. Существует также множество опций - настройки, таких как графические экраны-заставки, воспроизведение - звука, ввод с помощью мыши и т. д., детали этих опций выходят за - рамки этой инструкции. - </p> - <div class="admon caution"> - <img alt="[Внимание]" src="../images/caution.png" /> - <h3> - Внимание - </h3> - <p> - Существует команда <span class= - "application">grub-mkconfig</span>, которая может автоматически - записывать файл конфигурации. Она использует набор скриптов из - каталога /etc/grub.d/ и уничтожит любые сделанные вами настройки. - Эти скрипты предназначены в первую очередь для обычных - дистрибутивов и не рекомендуются для LFS. Если вы устанавливаете - коммерческий дистрибутив Linux, есть вероятность, что эта - программа будет запущена. Обязательно создайте резервную копию - файла grub.cfg. - </p> - </div> - </div> - </div> - <div class="navfooter"> - <ul> - <li class="prev"> - <a accesskey="p" href="kernel.html" title="Linux-6.4.12">Пред.</a> - <p> - Linux-6.4.12 - </p> - </li> - <li class="next"> - <a accesskey="n" href="../chapter11/chapter11.html" title= - "Заключение">След.</a> - <p> - Заключение - </p> - </li> - <li class="up"> - <a accesskey="u" href="chapter10.html" title= - "Глава 10. Делаем систему LFS загрузочной">Наверх</a> - </li> - <li class="home"> - <a accesskey="h" href="../index.html" title= - "Линукс с нуля - Версия 12.0">Начало</a> - </li> - </ul> - </div> - </body> -</html> |