summaryrefslogtreecommitdiff
path: root/lfs-12.0-sysv/chapter10/grub.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.0-sysv/chapter10/grub.html')
-rw-r--r--lfs-12.0-sysv/chapter10/grub.html354
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. Установка базового системного программного обеспечения">
- Глава&nbsp;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 &gt; /boot/grub/grub.cfg &lt;&lt; "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>&lt;UUID
- файловой системы, в которой установлено
- ядро&gt;</code></em></code>, и замените <code class=
- "literal">root=/dev/sda2</code> на <code class=
- "literal">root=PARTUUID=<em class="replaceable"><code>&lt;UUID
- раздела, в котором собрана LFS&gt;</code></em></code>.
- </p>
- <p>
- Обратите внимание, что UUID раздела и UUID файловой системы на
- этом разделе это совершенно разные вещи. Некоторые онлайн-ресурсы
- могут предлагать вам использовать <code class=
- "literal">root=UUID=<em class="replaceable"><code>&lt;UUID
- файловой системы&gt;</code></em></code> вместо <code class=
- "literal">root=PARTUUID=<em class="replaceable"><code>&lt;UUID
- раздела&gt;</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>&lt;UUID
- раздела&gt;</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>