summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter10
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.1-sysv/chapter10')
-rw-r--r--lfs-12.1-sysv/chapter10/chapter10.html101
-rw-r--r--lfs-12.1-sysv/chapter10/fstab.html191
-rw-r--r--lfs-12.1-sysv/chapter10/grub.html354
-rw-r--r--lfs-12.1-sysv/chapter10/introduction.html87
-rw-r--r--lfs-12.1-sysv/chapter10/kernel.html756
5 files changed, 0 insertions, 1489 deletions
diff --git a/lfs-12.1-sysv/chapter10/chapter10.html b/lfs-12.1-sysv/chapter10/chapter10.html
deleted file mode 100644
index 9497f7e..0000000
--- a/lfs-12.1-sysv/chapter10/chapter10.html
+++ /dev/null
@@ -1,101 +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. Делаем систему LFS загрузочной
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <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.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Часть&nbsp;IV.&nbsp;Сборка системы LFS
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="../chapter09/etcshells.html" title=
- "Создание файла /etc/shells">Пред.</a>
- <p>
- Создание файла /etc/shells
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="introduction.html" title=
- "Введение">След.</a>
- <p>
- Введение
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="../part4.html" title=
- "Часть&nbsp;IV.&nbsp;Сборка системы LFS">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="chapter">
- <a id="chapter-bootable" name="chapter-bootable"></a>10. Делаем систему
- LFS загрузочной
- </h1>
- <div class="chapter" lang="ru" xml:lang="ru">
- <div class="toc">
- <h3>
- Содержание
- </h3>
- <ul>
- <li class="sect1">
- <a href="introduction.html">Введение</a>
- </li>
- <li class="sect1">
- <a href="fstab.html">Создание файла /etc/fstab</a>
- </li>
- <li class="sect1">
- <a href="kernel.html">Linux-6.7.4</a>
- </li>
- <li class="sect1">
- <a href="grub.html">Использование GRUB для настройки процесса
- загрузки</a>
- </li>
- </ul>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="../chapter09/etcshells.html" title=
- "Создание файла /etc/shells">Пред.</a>
- <p>
- Создание файла /etc/shells
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="introduction.html" title=
- "Введение">След.</a>
- <p>
- Введение
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="../part4.html" title=
- "Часть&nbsp;IV.&nbsp;Сборка системы LFS">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>
diff --git a/lfs-12.1-sysv/chapter10/fstab.html b/lfs-12.1-sysv/chapter10/fstab.html
deleted file mode 100644
index add2432..0000000
--- a/lfs-12.1-sysv/chapter10/fstab.html
+++ /dev/null
@@ -1,191 +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.2. Создание файла /etc/fstab
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <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.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 10. Делаем систему LFS загрузочной
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="introduction.html" title=
- "Введение">Пред.</a>
- <p>
- Введение
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="kernel.html" title="Linux-6.7.4">След.</a>
- <p>
- Linux-6.7.4
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-bootable-fstab" name="ch-bootable-fstab"></a>10.2. Создание
- файла /etc/fstab
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Файл <code class="filename">/etc/fstab</code> используется некоторыми
- программами для определения того, какие файловые системы должны
- монтироваться по умолчанию, в каком порядке и какие из них должны
- быть проверены (на наличие ошибок целостности) перед монтированием.
- Создайте новую таблицу файловых систем следующим образом:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/fstab &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/fstab
-
-# file system mount-point type options dump fsck
-# order
-
-/dev/<em class=
-"replaceable"><code>&lt;xxx&gt;</code></em> / <em class=
-"replaceable"><code>&lt;fff&gt;</code></em> defaults 1 1
-/dev/<em class=
-"replaceable"><code>&lt;yyy&gt;</code></em> swap swap pri=1 0 0
-proc /proc proc nosuid,noexec,nodev 0 0
-sysfs /sys sysfs nosuid,noexec,nodev 0 0
-devpts /dev/pts devpts gid=5,mode=620 0 0
-tmpfs /run tmpfs defaults 0 0
-devtmpfs /dev devtmpfs mode=0755,nosuid 0 0
-tmpfs /dev/shm tmpfs nosuid,nodev 0 0
-cgroup2 /sys/fs/cgroup cgroup2 nosuid,noexec,nodev 0 0
-
-# End /etc/fstab</code>
-EOF</kbd></pre>
- <p>
- Замените <em class="replaceable"><code>&lt;xxx&gt;</code></em>,
- <em class="replaceable"><code>&lt;yyy&gt;</code></em>, и <em class=
- "replaceable"><code>&lt;fff&gt;</code></em> подходящими для системы
- значениями, например, <code class="filename">sda2</code>,
- <code class="filename">sda5</code>, и <code class=
- "systemitem">ext4</code>. Для получения подробной информации о
- параметрах в этом файле, смотрите <a class="ulink" href=
- "https://man.archlinux.org/man/fstab.5">fstab(5)</a>.
- </p>
- <p>
- Файловым системам операционных систем MS DOS и Windows (таким как
- vfat, ntfs, smbfs, cifs, iso9660, udf) требуется специальная опция
- utf8, чтобы не-ASCII символы в именах файлов интерпретировались
- правильно. Для локалей, отличных от UTF-8, значение <code class=
- "option">iocharset</code> должно быть таким же, как набор символов
- локали и настроено так, чтобы ядро понимало его. Это будет работать,
- если соответствующее определение набора символов (находится в разделе
- File systems -&gt; Native Language Support при настройке ядра) было
- скомпилировано в ядро или собрано как модуль. Однако, если набор
- символов локали — UTF-8, параметр <code class=
- "option">iocharset=utf8</code> сделает файловую систему
- чувствительной к регистру. Чтобы исправить это, используйте
- специальную опцию <code class="option">utf8</code> вместо
- <code class="option">iocharset=utf8</code> для локалей UTF-8.
- Параметр <span class="quote">«<span class=
- "quote">codepage</span>»</span> также необходим для файловых систем
- vfat и smbfs. Он должен быть установлен на номер кодовой страницы,
- используемый в MS-DOS в вашей стране. Например, для монтирования
- флешек пользователь локали ru_RU.KOI8-R должен установить следующие
- значения в группе параметров строки монтирования в <code class=
- "filename">/etc/fstab</code>:
- </p>
- <pre class="screen"><code class=
- "literal">noauto,user,quiet,showexec,codepage=866,iocharset=koi8r</code></pre>
- <p>
- Соответствующий фрагмент параметров для пользователей ru_RU.UTF-8
- выглядит следующим образом:
- </p>
- <pre class="screen"><code class=
- "literal">noauto,user,quiet,showexec,codepage=866,utf8</code></pre>
- <p>
- Обратите внимание, что <code class="option">iocharset</code>
- используется по умолчанию для <code class="literal">iso8859-1</code>
- (которая сохраняет файловую систему нечувствительной к регистру), а
- параметр <code class="option">utf8</code> указывает ядру, что нужно
- преобразовать имена файлов с использованием UTF-8, чтобы их можно
- было интерпретировать в локали UTF-8.
- </p>
- <p>
- Также возможно указать значения кодовой страницы по умолчанию и
- iocharset для некоторых файловых систем во время настройки ядра.
- Соответствующие параметры называются <span class=
- "quote">«<span class="quote">Default NLS Option</span>»</span>
- (<code class="option">CONFIG_NLS_DEFAULT)</code>, <span class=
- "quote">«<span class="quote">Default Remote NLS Option</span>»</span>
- (<code class="option">CONFIG_SMB_NLS_DEFAULT</code>), <span class=
- "quote">«<span class="quote">Default codepage for FAT</span>»</span>
- (<code class="option">CONFIG_FAT_DEFAULT_CODEPAGE</code>) и
- <span class="quote">«<span class="quote">Default iocharset for
- FAT</span>»</span> (<code class=
- "option">CONFIG_FAT_DEFAULT_IOCHARSET</code>). Нет возможности
- указать эти параметры для файловой системы ntfs во время компиляции
- ядра.
- </p>
- <p>
- Для некоторых типов жестких дисков можно сделать файловую систему
- ext3 более устойчивой к сбоям питания. Чтобы сделать это, добавьте
- параметр <code class="option">barrier=1</code> к соответствующей
- записи в <code class="filename">/etc/fstab</code>. Чтобы проверить,
- поддерживает ли диск эту опцию, запустите <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/general/hdparm.html">
- hdparm</a> на соответствуюшем разделе. Например, если:
- </p>
- <pre class="userinput"><kbd class=
- "command">hdparm -I /dev/sda | grep NCQ</kbd></pre>
- <p>
- возвращает непустой вывод, опция поддерживается.
- </p>
- <p>
- Примечание: разделы на основе управления логическими томами (LVM) не
- могут использовать параметр <code class="option">barrier</code>.
- </p>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="introduction.html" title=
- "Введение">Пред.</a>
- <p>
- Введение
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="kernel.html" title="Linux-6.7.4">След.</a>
- <p>
- Linux-6.7.4
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>
diff --git a/lfs-12.1-sysv/chapter10/grub.html b/lfs-12.1-sysv/chapter10/grub.html
deleted file mode 100644
index e13115c..0000000
--- a/lfs-12.1-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 Vsnapshot" />
- <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.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 10. Делаем систему LFS загрузочной
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="kernel.html" title="Linux-6.7.4">Пред.</a>
- <p>
- Linux-6.7.4
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-bootable-grub" name="ch-bootable-grub"></a>10.4.
- Использование GRUB для настройки процесса загрузки
- </h1>
- <div class="wrap" lang="ru" xml:lang="ru">
- <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.1/postlfs/grub-setup.html">
- странице BLFS</a>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <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.1/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="ru" xml:lang="ru">
- <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="ru" xml:lang="ru">
- <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="ru" xml:lang="ru">
- <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.7.4-lfs-12.1" {
- linux /boot/vmlinuz-6.7.4-lfs-12.1 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.7.4">Пред.</a>
- <p>
- Linux-6.7.4
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>
diff --git a/lfs-12.1-sysv/chapter10/introduction.html b/lfs-12.1-sysv/chapter10/introduction.html
deleted file mode 100644
index 75ad21d..0000000
--- a/lfs-12.1-sysv/chapter10/introduction.html
+++ /dev/null
@@ -1,87 +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.1. Введение
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <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.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 10. Делаем систему LFS загрузочной
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="chapter10.html" title=
- "Делаем систему LFS загрузочной">Пред.</a>
- <p>
- Делаем систему LFS загрузочной
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="fstab.html" title=
- "Создание файла /etc/fstab">След.</a>
- <p>
- Создание файла /etc/fstab
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-bootable-introduction" name=
- "ch-bootable-introduction"></a>10.1. Введение
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Пришло время сделать систему LFS загрузочной. В этой главе
- обсуждается создание файла <code class="filename">/etc/fstab</code>,
- сборка ядра для новой системы и установка загрузчика GRUB, чтобы
- система LFS могла быть выбрана для загрузки при запуске.
- </p>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="chapter10.html" title=
- "Делаем систему LFS загрузочной">Пред.</a>
- <p>
- Делаем систему LFS загрузочной
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="fstab.html" title=
- "Создание файла /etc/fstab">След.</a>
- <p>
- Создание файла /etc/fstab
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>
diff --git a/lfs-12.1-sysv/chapter10/kernel.html b/lfs-12.1-sysv/chapter10/kernel.html
deleted file mode 100644
index bb6908f..0000000
--- a/lfs-12.1-sysv/chapter10/kernel.html
+++ /dev/null
@@ -1,756 +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.3. Linux-6.7.4
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <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.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 10. Делаем систему LFS загрузочной
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="fstab.html" title=
- "Создание файла /etc/fstab">Пред.</a>
- <p>
- Создание файла /etc/fstab
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="grub.html" title=
- "Использование GRUB для настройки процесса загрузки">След.</a>
- <p>
- Использование GRUB для настройки процесса загрузки
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-bootable-kernel" name="ch-bootable-kernel"></a>10.3.
- Linux-6.7.4
- </h1>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Этот пакет содержит ядро Linux.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время сборки:</strong>
- <span class="segbody">0.6 - 20.4 SBU (обычно около 1.4
- SBU)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">1.8 - 10.6 GB
- (обычно около 2 GB)</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 10.3.1. Установка ядра
- </h2>
- <p>
- Сборка ядра состоит из нескольких этапов—настройка, компиляция и
- установка. Ознакомьтесь с файлом <code class=
- "filename">README</code> в дереве исходных текстов, чтобы узнать об
- альтернативных способах настройки ядра.
- </p>
- <div class="admon important">
- <img alt="[Важно]" src="../images/important.png" />
- <h3>
- Важно
- </h3>
- <p>
- Сборка ядра Linux в первый раз — одна из самых сложных задач в
- LFS. Правильный выбор параметров зависит от конкретного
- оборудования для целевой системы и ваших потребностей. Для ядра
- доступно почти 12 000 элементов конфигурации, хотя для
- большинства компьютеров требуется только около трети из них.
- Редакторы LFS рекомендуют пользователям, не знакомым с этим
- процессом, внимательно следовать описанным ниже процедурам.
- Главная цель сейчас состоит в том, чтобы довести первоначальную
- систему до состояния, когда вы сможете войти в систему из
- командной строки при последующей перезагрузке в <a class="xref"
- href="../chapter11/reboot.html" title=
- "11.3. Перезагрузка системы">Раздел&nbsp;11.3, «Перезагрузка
- системы»</a>. Вопросы оптимизация и кастомизация второстепенны.
- </p>
- <p>
- Для получения общей информации о конфигурации ядра смотрите
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/kernel-configuration.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/kernel-configuration.txt</a>.
- Дополнительную информацию о настройке и сборке ядра можно найти
- по адресу <a class="ulink" href=
- "https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/">https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/</a>.
- Эти ссылки немного устарели, но все же дают разумное
- представление о процессе.
- </p>
- <p>
- Если ничего не помогает, вы можете обратиться за помощью в список
- рассылки <a class="ulink" href=
- "https://www.linuxfromscratch.org/mail.html">lfs-support</a>.
- Обратите внимание, что подписка необходима для того, чтобы
- рассылка не содержала спама.
- </p>
- </div>
- <p>
- Подготовьте пакет к компиляции, выполнив следующую команду:
- </p>
- <pre class="userinput"><kbd class="command">make mrproper</kbd></pre>
- <p>
- Выполнение этой команды гарантирует, что дерево исходников будет
- абсолютно чистым. Разработчики ядра рекомендуют запускать эту
- команду перед каждой компиляцией. Не следует полагаться на то, что
- дерево исходных текстов ядра будет чистым после распаковки.
- </p>
- <p>
- Существует несколько способов настройки параметров ядра. Обычно это
- делается с помощью псевдографического интерфейса, например так:
- </p>
- <pre class="userinput"><kbd class=
- "command">make menuconfig</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значения необязательных переменных окружения
- make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>LANG=&lt;переменная_LANG_хоста&gt;
- LC_ALL=</code></em></span>
- </dt>
- <dd>
- <p>
- Устанавливает значение локали на то, которое используется на
- хосте. Это может понадобиться для правильного отображения
- интерфейса menuconfig с помощью ncurses в текстовой консоли
- Linux с UTF-8.
- </p>
- <p>
- Если это необходимо, обязательно замените значение <em class=
- "replaceable"><code>&lt;переменной_LANG&gt;</code></em> на
- значение переменной <code class="envar">$LANG</code> вашего
- хоста. В качестве альтернативы вы можете использовать
- значения переменных <code class="envar">$LC_ALL</code> или
- <code class="envar">$LC_CTYPE</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><span class="command"><strong>make
- menuconfig</strong></span></span>
- </dt>
- <dd>
- <p>
- Эта команда запускает интерфейс на основе ncurses. Для
- использования других (графических) интерфейсов, выполните
- <span class="command"><strong>make help</strong></span>.
- </p>
- </dd>
- </dl>
- </div>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Хорошей отправной точкой для настройки ядра, может стать запуск
- команды <span class="command"><strong>make
- defconfig</strong></span>. В результате её выполнения будет
- создана базовая конфигурация с учётом архитектуры системы.
- </p>
- <p>
- Обязательно включите/отключите/настройте следующие параметры,
- иначе система может работать некорректно или вообще не
- загружаться:
- </p>
- <pre class="screen"><span class="blue">G</span>eneral setup ---&gt;
- [ ] <span class=
-"blue">C</span>ompile the kernel with warnings as errors [WERROR]
- <span class="blue">C</span>PU/Task time and stats accounting ---&gt;
- [*] <span class=
-"blue">P</span>ressure stall information tracking [PSI]
- [ ] <span class=
-"blue">R</span>equire boot parameter to enable pressure stall information tracking
- ... [PSI_DEFAULT_DISABLED]
- &lt; &gt; <span class=
-"blue">E</span>nable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS]
- [*] <span class=
-"blue">C</span>ontrol Group support ---&gt; [CGROUPS]
- [*] M<span class=
-"blue">e</span>mory controller [MEMCG]
- [ ] <span class=
-"blue">C</span>onfigure standard kernel features (expert users) ---&gt; [EXPERT]
-
-<span class="blue">P</span>rocessor type and features ---&gt;
- [*] <span class=
-"blue">B</span>uild a relocatable kernel [RELOCATABLE]
- [*] <span class=
-"blue">R</span>andomize the address of the kernel image (KASLR) [RANDOMIZE_BASE]
-
-<span class="blue">G</span>eneral architecture-dependent options ---&gt;
- [*] <span class=
-"blue">S</span>tack Protector buffer overflow detection [STACKPROTECTOR]
- [*] <span class=
-"blue">S</span>trong Stack Protector [STACKPROTECTOR_STRONG]
-
-<span class="blue">D</span>evice Drivers ---&gt;
- <span class="blue">G</span>eneric Driver Options ---&gt;
- [ ] <span class=
-"blue">S</span>upport for uevent helper [UEVENT_HELPER]
- [*] M<span class=
-"blue">a</span>intain a devtmpfs filesystem to mount at /dev [DEVTMPFS]
- [*] <span class=
-"blue">A</span>utomount devtmpfs at /dev, after the kernel mounted the rootfs
- ... [DEVTMPFS_MOUNT]
- <span class="blue">G</span>raphics support ---&gt;
- &lt; /*/M&gt; <span class=
-"blue">D</span>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
- ... [DRM]
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] <span class=
-"blue">E</span>nable legacy fbdev support for your modesetting driver
- ... [DRM_FBDEV_EMULATION]
- <span class="blue">C</span>onsole display driver support ---&gt;
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] <span class=
-"blue">F</span>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</pre>
- <p>
- Включите некоторые дополнительные функции, если вы собираете
- 64-битную систему. Если вы используете menuconfig, включите их в
- следующем порядке: сначала <em class=
- "parameter"><code>CONFIG_PCI_MSI</code></em>, затем <em class=
- "parameter"><code>CONFIG_IRQ_REMAP</code></em>, и, наконец,
- <em class="parameter"><code>CONFIG_X86_X2APIC</code></em>, потому
- что параметр отображается только после выбора его зависимости.
- </p>
- <pre class="screen"><span class=
- "blue">P</span>rocessor type and features ---&gt;
- [*] <span class=
-"blue">S</span>upport x2apic [X86_X2APIC]
-
-<span class="blue">D</span>evice Drivers ---&gt;
- [*] <span class=
-"blue">P</span>CI support ---&gt; [PCI]
- [*] M<span class=
-"blue">e</span>ssage Signaled Interrupts (MSI and MSI-X) [PCI_MSI]
- [*] <span class=
-"blue">I</span>OMMU Hardware Support ---&gt; [IOMMU_SUPPORT]
- [*] <span class=
-"blue">S</span>upport for Interrupt Remapping [IRQ_REMAP]</pre>
- <p>
- Если вы создаете 32-разрядную систему, работающую на оборудовании
- с объемом оперативной памяти более 4 ГБ, измените конфигурацию
- таким образом, чтобы ядро могло использовать до 64 ГБ оперативной
- памяти:
- </p>
- <pre class="screen"><span class=
- "blue">P</span>rocessor type and features ---&gt;
- H<span class="blue">i</span>gh Memory Support ---&gt;
- (X) <span class=
-"blue">6</span>4GB [HIGHMEM64G]</pre>
- <p>
- Если раздел для системы LFS находится на NVME SSD (то есть узлом
- устройства для раздела является <code class=
- "filename">/dev/nvme*</code>, а не <code class=
- "filename">/dev/sd*</code>), включите параметр NVME support,
- иначе система LFS не будет загружаться:
- </p>
- <pre class="screen"><span class=
- "blue">D</span>evice Drivers ---&gt;
- N<span class="blue">V</span>ME Support ---&gt;
- &lt;*&gt; N<span class=
-"blue">V</span>M Express block device [BLK_DEV_NVME]</pre>
- </div>
- <p>
- Есть несколько других параметров, которые могут понадобиться в
- зависимости от особенностей системы. Для получения списка
- необходимых опций для пакетов BLFS смотрите <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/longindex.html#kernel-config-index">
- Список опций ядра BLFS</a>.
- </p>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Если ваша хост поддерживает UEFI и вы хотите загрузить LFS с
- помощью него, вам необходимо настроить некоторые параметры ядра,
- следуя инструкции <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/grub-setup.html#uefi-kernel">
- на странице BLFS</a>, <span class="bold"><strong>даже если вы
- будете использовать загрузчик UEFI из основного
- дистрибутива</strong></span>.
- </p>
- </div>
- <div class="variablelist">
- <p class="title">
- <strong>Пояснения для выбранных выше параметров ядра:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class="parameter"><code>Randomize the
- address of the kernel image (KASLR)</code></em></span>
- </dt>
- <dd>
- <p>
- Включите ASLR для образа ядра, чтобы уменьшить вероятность
- некоторых атак, основанных на фиксированных адресах
- конфиденциальных данных или кода в ядре.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Compile the
- kernel with warnings as errors</code></em></span>
- </dt>
- <dd>
- <p>
- Включение этого параметра может привести к сбою сборки, если
- компилятор и/или конфигурация отличается от конфигурации ядра
- разработчиков.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Enable kernel
- headers through /sys/kernel/kheaders.tar.xz</code></em></span>
- </dt>
- <dd>
- <p>
- Для сборки ядра с этим параметром необходим пакет
- <span class="command"><strong>cpio</strong></span>.
- <span class="command"><strong>cpio</strong></span> не
- устанавливается в LFS.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Configure
- standard kernel features (expert users)</code></em></span>
- </dt>
- <dd>
- <p>
- Эта опция приведет к отображению некоторых параметров в
- интерфейсе конфигурации, но изменение этих параметров может
- быть опасным. Не используйте её, если вы не знаете, что
- делаете.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Strong Stack
- Protector</code></em></span>
- </dt>
- <dd>
- <p>
- Включите SSP для ядра. Мы включили его для всего
- пользовательского пространства с помощью <em class=
- "parameter"><code>--enable-default-ssp</code></em>, настроив
- GCC, но ядро не использует настройки GCC по умолчанию для
- SSP. Мы включаем это явно здесь.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Support for
- uevent helper</code></em></span>
- </dt>
- <dd>
- <p>
- Включение этого параметра может вызвать сбои при управление
- устройствами через Udev.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Maintain a
- devtmpfs</code></em></span>
- </dt>
- <dd>
- <p>
- С помощью этого параметра узлы устройств создаются
- автоматически и заполняются самим ядром, даже без запуска
- Udev. Udev будет работать поверх, управляя разрешениями и
- добавляя необходимые символические ссылки. Этот элемент
- конфигурации необходим всем пользователям Udev.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Automount
- devtmpfs at /dev</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволит смонтировать представление ядра
- устройств в /dev при переключении на корневую файловую
- систему непосредственно перед запуском init.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Enable legacy
- fbdev support for your modesetting driver</code></em> и
- <em class="parameter"><code>Framebuffer Console
- support</code></em></span>
- </dt>
- <dd>
- <p>
- Они необходимы для отображения консоли Linux на графическом
- процессоре, управляемом драйвером DRI (Direct Rendering
- Infrastructure - инфраструктура прямого рендеринга). Если
- <code class="option">CONFIG_DRM</code> (Direct Rendering
- Manager - диспетчер прямого рендеринга) включен, вам также
- следует включить эти две опции, иначе вы увидите пустой экран
- после загрузки драйвера DRI.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Support
- x2apic</code></em></span>
- </dt>
- <dd>
- <p>
- Поддержка запуска 64-разрядного контроллера прерываний для
- x86 процессоров в режиме x2APIC. x2APIC может быть включен в
- BIOS на системах x86 и у ядра собранного без этой опции будет
- kernel panic при загрузке. Эта опция не окажет никакого
- эффекта, но и не причиняет вреда, если x2APIC отключен в
- BIOS.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- В качестве альтернативы, в некоторых ситуациях может быть уместно
- использование команды <span class="command"><strong>make
- oldconfig</strong></span>. Смотрите файл <code class=
- "filename">README</code> для получения дополнительной информации.
- </p>
- <p>
- По желанию, вы можете пропустить настройку ядра, скопировав
- конфигурационный файл ядра <code class="filename">.config</code>,
- из хост системы(если он доступен) в каталог куда было распаковано
- ядро <code class="filename">linux-6.7.4</code>. Однако, мы не
- рекомендуем этот вариант. Намного лучше изучить все параметры меню
- и создать конфигурацию ядра с нуля.
- </p>
- <p>
- Скомпилируйте образ ядра и модули:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- При использовании модулей, могут потребоваться файлы конфигурации,
- которые расположены в каталоге <code class=
- "filename">/etc/modprobe.d</code>. Информация о модулях и
- конфигурации ядра находится в <a class="xref" href=
- "../chapter09/udev.html" title=
- "9.3. Взаимодействие с устройствами и модулями">Раздел&nbsp;9.3,
- «Взаимодействие с устройствами и модулями»</a> и в документации к
- ядру <code class="filename">linux-6.7.4/Documentation</code>. Кроме
- этого, стоит ознакомиться с руководством <a class="ulink" href=
- "https://man.archlinux.org/man/modprobe.d.5">modprobe.d(5)</a>.
- </p>
- <p>
- Если поддержка модулей не была отключена в параметрах ядра,
- установите модули с помощью:
- </p>
- <pre class="userinput"><kbd class=
- "command">make modules_install</kbd></pre>
- <p>
- После окончания компиляции, необходимо выполнить еще несколько
- шагов для завершения установки ядра. Некоторые файлы должны быть
- скопированы в каталог <code class="filename">/boot</code>.
- </p>
- <div class="admon caution">
- <img alt="[Внимание]" src="../images/caution.png" />
- <h3>
- Внимание
- </h3>
- <p>
- Если вы решили использовать отдельный <code class=
- "filename">/boot</code> раздел для системы LFS (возможно, общий
- раздел <code class="filename">/boot</code> с хост-дистрибутивом),
- скопированные ниже файлы должны быть помещены туда. Самый простой
- способ сделать это — сначала создать запись для <code class=
- "filename">/boot</code> в <code class=
- "filename">/etc/fstab</code> (подробности читайте в предыдущем
- разделе), затем выполните следующую команду от имени пользователя
- <code class="systemitem">root</code> в среде <span class=
- "emphasis"><em>chroot</em></span>:
- </p>
- <pre class="userinput"><kbd class="command">mount /boot</kbd></pre>
- <p>
- Путь к узлу устройства в команде опущен, поскольку <span class=
- "command"><strong>mount</strong></span> может прочитать его из
- <code class="filename">/etc/fstab</code>.
- </p>
- </div>
- <p>
- Путь к образу ядра может различаться в зависимости от используемой
- платформы. Имя файла, может быть произвольным, но начинаться должно
- с <span class="emphasis"><em>vmlinuz</em></span> для обеспечения
- совместимости с автоматической настройкой процесса загрузки,
- описанного в следующем разделе. Следующая команда предполагает
- архитектуру x86:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-6.7.4-lfs-12.1</kbd></pre>
- <p>
- <code class="filename">System.map</code> - это символьный файл для
- ядра. Он содержит точки входа каждой функции в API ядра, а также
- адреса структур данных для запущенного ядра. Он используется в
- качестве ресурса при исследовании проблем с ядром. Выполните
- следующую команду для установки файла:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv System.map /boot/System.map-6.7.4</kbd></pre>
- <p>
- Файл конфигурации ядра <code class="filename">.config</code>
- создается на шаге <span class="command"><strong>make
- menuconfig</strong></span> и содержит все параметры ядра, которое
- было скомпилировано только что. Рекомендуется сохранить этот файл
- на будущее:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv .config /boot/config-6.7.4</kbd></pre>
- <p>
- Установите документацию ядра:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -r Documentation -T /usr/share/doc/linux-6.7.4</kbd></pre>
- <p>
- Важно отметить, что файлы в каталоге с исходным кодом ядра не
- принадлежат пользователю <span class=
- "emphasis"><em>root</em></span>. Всякий раз, когда пакет
- распаковывается от имени пользователя <span class=
- "emphasis"><em>root</em></span> (как это и выполнялось внутри среды
- chroot), файлы имеют те идентификаторы пользователя и группы,
- которые были присвоены при распаковке. Обычно это не вызывает
- проблем для других устанавливаемых пакетов, так как каталог с
- исходниками удаляется после установки пакета. Однако исходный код
- ядра Linux часто сохраняется в течение длительного времени. Из-за
- этого существует вероятность того, что идентификатор пользователя,
- используемый при распаковке, будет назначен другому пользователю. В
- таком случае, этот пользователь будет иметь доступ на запись в этот
- каталог.
- </p>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- В ряде случаев требуется обновить конфигурацию ядра для пакетов,
- которые будут установлены позже в BLFS. В отличии от других
- пакетов, нет необходимости удалять дерево исходного кода ядра
- после установки только что собранного ядра.
- </p>
- <p>
- Если вы планируете оставить каталог с исходным кодом ядра,
- выполните команду <span class="command"><strong>chown -R 0:0
- *</strong></span> находясь в каталоге <code class=
- "filename">linux-6.7.4</code>, чтобы все файлы принадлежали
- пользователю <span class="emphasis"><em>root</em></span>.
- </p>
- </div>
- <div class="admon warning">
- <img alt="[Предупреждение]" src="../images/warning.png" />
- <h3>
- Предупреждение
- </h3>
- <p>
- Иногда, в документации к ядру, рекомендуют создать символическую
- ссылку <code class="filename">/usr/src/linux</code> указывающую
- на каталог с исходниками ядра. Эта рекомендация относится к ядрам
- до версии 2.6 и <span class="emphasis"><em>не должна</em></span>
- выполняться в системе LFS, так как это может вызвать проблемы с
- пакетами, которые вы, возможно, захотите собрать, когда ваша
- базовая система LFS будет готова.
- </p>
- </div>
- <div class="admon warning">
- <img alt="[Предупреждение]" src="../images/warning.png" />
- <h3>
- Предупреждение
- </h3>
- <p>
- Заголовочные файлы в системном каталоге <code class=
- "filename">include</code> (<code class=
- "filename">/usr/include</code>) <span class=
- "emphasis"><em>всегда</em></span> используются те, которые
- применялись при компиляции Glibc, то есть подготовленные
- заголовочные файлы, установленные в <a class="xref" href=
- "../chapter05/linux-headers.html" title=
- "5.4. Заголовочные файлы Linux-6.7.4 API">Раздел&nbsp;5.4,
- «Заголовочные файлы Linux-6.7.4 API»</a>. Поэтому их <span class=
- "emphasis"><em>никогда</em></span> не следует заменять на чистые
- заголовочные файлы ядра или любые другие подготовленные
- заголовочные файлы.
- </p>
- </div>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="conf-modprobe" name="conf-modprobe"></a>10.3.2. Настройка
- порядка загрузки модулей Linux
- </h2>
- <p>
- В большинстве случаев модули Linux загружаются автоматически, но
- иногда требуется определенный порядок. Программа, которая загружает
- модули, <span class="command"><strong>modprobe</strong></span> или
- <span class="command"><strong>insmod</strong></span>, использует
- файл <code class="filename">/etc/modprobe.d/usb.conf</code> как раз
- для этой цели. Этот файл должен быть заполнен таким образом, что
- если USB-драйверы (ehci_hcd, ohci_hcd и uhci_hcd) были собраны в
- виде модулей, то они будут загружены в правильном порядке; ehci_hcd
- должен быть загружен до ohci_hcd и uhci_hcd для того, чтобы
- избежать предупреждений во время загрузки.
- </p>
- <p>
- Создайте новый файл <code class=
- "filename">/etc/modprobe.d/usb.conf</code>, выполнив следующую
- команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">install -v -m755 -d /etc/modprobe.d
-cat &gt; /etc/modprobe.d/usb.conf &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/modprobe.d/usb.conf
-
-install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
-install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
-
-# End /etc/modprobe.d/usb.conf</code>
-EOF</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="contents-kernel" name="contents-kernel"></a>10.3.3.
- Содержимое пакета Linux
- </h2>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные файлы:</strong>
- <span class="segbody">config-6.7.4, vmlinuz-6.7.4-lfs-12.1, и
- System.map-6.7.4</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/lib/modules,
- /usr/share/doc/linux-6.7.4</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h3>
- Краткое описание
- </h3>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="config" name="config"></a><span class=
- "term"><code class="filename">config-6.7.4</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит в себе все параметры конфигурации ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lfskernel" name="lfskernel"></a><span class=
- "term"><code class=
- "filename">vmlinuz-6.7.4-lfs-12.1</code></span>
- </p>
- </td>
- <td>
- <p>
- Ядро системы Linux. При включении компьютера ядро — это
- первая загружаемая часть операционной системы. Оно
- обнаруживает и инициализирует все компоненты аппаратного
- обеспечения компьютера, делает их доступными в виде
- дерева каталогов с файлами для доступа к ним программ и
- превращает один процессор в мультизадачную машину,
- способную выполнять множество программ как будто
- одновременно.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="System.map" name="System.map"></a><span class=
- "term"><code class=
- "filename">System.map-6.7.4</code></span>
- </p>
- </td>
- <td>
- <p>
- Список адресов и символов; файл содержит точки входа и
- адреса всех функций и структур данных в ядре
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="fstab.html" title=
- "Создание файла /etc/fstab">Пред.</a>
- <p>
- Создание файла /etc/fstab
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="grub.html" title=
- "Использование GRUB для настройки процесса загрузки">След.</a>
- <p>
- Использование GRUB для настройки процесса загрузки
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>