summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter09
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.1-sysv/chapter09')
-rw-r--r--lfs-12.1-sysv/chapter09/bootscripts.html513
-rw-r--r--lfs-12.1-sysv/chapter09/chapter09.html115
-rw-r--r--lfs-12.1-sysv/chapter09/etcshells.html111
-rw-r--r--lfs-12.1-sysv/chapter09/inputrc.html156
-rw-r--r--lfs-12.1-sysv/chapter09/introduction.html182
-rw-r--r--lfs-12.1-sysv/chapter09/locale.html256
-rw-r--r--lfs-12.1-sysv/chapter09/network.html342
-rw-r--r--lfs-12.1-sysv/chapter09/symlinks.html430
-rw-r--r--lfs-12.1-sysv/chapter09/udev.html490
-rw-r--r--lfs-12.1-sysv/chapter09/usage.html1081
10 files changed, 0 insertions, 3676 deletions
diff --git a/lfs-12.1-sysv/chapter09/bootscripts.html b/lfs-12.1-sysv/chapter09/bootscripts.html
deleted file mode 100644
index ebcc945..0000000
--- a/lfs-12.1-sysv/chapter09/bootscripts.html
+++ /dev/null
@@ -1,513 +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>
- 9.2. LFS-Bootscripts-20230728
- </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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="introduction.html" title=
- "Введение">Пред.</a>
- <p>
- Введение
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="udev.html" title=
- "Взаимодействие с устройствами и модулями">След.</a>
- <p>
- Взаимодействие с устройствами и модулями
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-bootscripts" name="ch-config-bootscripts"></a>9.2.
- LFS-Bootscripts-20230728
- </h1>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Пакет LFS-Bootscripts содержит набор скриптов для запуска/остановки
- системы LFS при загрузке/завершении работы. Файлы конфигурации и
- процедуры, необходимые для настройки /процесса загрузки, описаны в
- следующих разделах.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время сборки:</strong>
- <span class="segbody">менее 0.1 SBU</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">244 KB</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.2.1. Установка пакета LFS-Bootscripts
- </h2>
- <p>
- Установите пакет:
- </p>
- <pre class="userinput"><kbd class="command">make install</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="contents-bootscripts" name="contents-bootscripts"></a>9.2.2.
- Содержимое пакета LFS-Bootscripts
- </h2>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные скрипты:</strong>
- <span class="segbody">checkfs, cleanfs, console, functions,
- halt, ifdown, ifup, localnet, modules, mountfs, mountvirtfs,
- network, rc, reboot, sendsignals, setclock, ipv4-static, swap,
- sysctl, sysklogd, template, udev и udev_retry</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/etc/rc.d, /etc/init.d (символическая
- ссылка), /etc/sysconfig, /lib/services, /lib/lsb (символическая
- ссылка)</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="checkfs-bootscripts" name=
- "checkfs-bootscripts"></a><span class="term"><span class=
- "command"><strong>checkfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Проверяет целостность файловых систем перед их
- монтированием (за исключением журналируемых и сетевых
- файловых систем)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="cleanfs-bootscripts" name=
- "cleanfs-bootscripts"></a><span class="term"><span class=
- "command"><strong>cleanfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Удаляет файлы, которые не должны сохраняться между
- перезагрузками, например, те, которые находятся в
- директориях <code class="filename">/run/</code> и
- <code class="filename">/var/lock/</code>; скрипт
- пересоздает <code class="filename">/run/utmp</code> и
- удаляет файлы, которые, возможно, существуют <code class=
- "filename">/etc/nologin</code>, <code class=
- "filename">/fastboot</code>, и <code class=
- "filename">/forcefsck</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="console-bootscripts" name=
- "console-bootscripts"></a><span class="term"><span class=
- "command"><strong>console</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает правильную таблицу раскладок для требуемой
- раскладки клавиатуры; он также устанавливает экранный
- шрифт
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="functions-bootscripts" name=
- "functions-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>functions</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Содержит общие функции, такие как проверка ошибок и
- состояния, которые используются несколькими загрузочными
- скриптами
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="halt-bootscripts" name=
- "halt-bootscripts"></a><span class="term"><span class=
- "command"><strong>halt</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Останавливает работу системы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ifdown-bootscripts" name=
- "ifdown-bootscripts"></a><span class="term"><span class=
- "command"><strong>ifdown</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Останавливает сетевое устройство
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ifup-bootscripts" name=
- "ifup-bootscripts"></a><span class="term"><span class=
- "command"><strong>ifup</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Инициализирует сетевое устройство
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="localnet-bootscripts" name=
- "localnet-bootscripts"></a><span class=
- "term"><span class="command"><strong>localnet</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Настраивает имя хоста системы и локальное устройство
- loopback
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="modules-bootscripts" name=
- "modules-bootscripts"></a><span class="term"><span class=
- "command"><strong>modules</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает модули ядра из списка, который находится в
- файле <code class=
- "filename">/etc/sysconfig/modules</code>, используя
- указанные там же аргументы
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mountfs-bootscripts" name=
- "mountfs-bootscripts"></a><span class="term"><span class=
- "command"><strong>mountfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Монтирует все файловые системы, кроме тех, которые
- помечены как <span class=
- "emphasis"><em>noauto</em></span> или сетевых файловых
- систем
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="mountvirtfs-bootscripts" name=
- "mountvirtfs-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>mountvirtfs</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Монтирует виртуальные файловые системы, такие как
- <code class="systemitem">proc</code>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="network-bootscripts" name=
- "network-bootscripts"></a><span class="term"><span class=
- "command"><strong>network</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Выполняет настройку сетевых интерфейсов, например,
- сетевых карт, и настаивает шлюз по-умолчанию (где это
- применимо)
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="rc-bootscripts" name=
- "rc-bootscripts"></a><span class="term"><span class=
- "command"><strong>rc</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Основной сценарий управления; он отвечает за запуск всех
- остальных загрузочных скриптов один за другим, в
- последовательности, определяемой именами символических
- ссылок на другие скрипты.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="reboot-bootscripts" name=
- "reboot-bootscripts"></a><span class="term"><span class=
- "command"><strong>reboot</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Перезагружает систему
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sendsignals-bootscripts" name=
- "sendsignals-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>sendsignals</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Обеспечивает завершение каждого процесса перед
- перезагрузкой или остановкой системы.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="setclock-bootscripts" name=
- "setclock-bootscripts"></a><span class=
- "term"><span class="command"><strong>setclock</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Сбрасывает системные часы на местное время, если
- аппаратные часы не установлены на всемирное
- координированное время (UTC).
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="ipv4-static-bootscripts" name=
- "ipv4-static-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>ipv4-static</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Предоставляет функциональные возможности, необходимые для
- назначения статического адреса сетевому интерфейсу.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="swap-bootscripts" name=
- "swap-bootscripts"></a><span class="term"><span class=
- "command"><strong>swap</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Включает и отключает файлы и разделы, используемые для
- подкачки.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sysctl-bootscripts" name=
- "sysctl-bootscripts"></a><span class="term"><span class=
- "command"><strong>sysctl</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Загружает в работающее ядро значения системных настроек
- из файла <code class="filename">/etc/sysctl.conf</code>,
- если этот файл существует
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="sysklogd-bootscripts" name=
- "sysklogd-bootscripts"></a><span class=
- "term"><span class="command"><strong>sysklogd</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Запускает и останавливает демоны журналирования
- сообщений, выдаваемых системой и ядром.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="template-bootscripts" name=
- "template-bootscripts"></a><span class=
- "term"><span class="command"><strong>template</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Шаблон для создания пользовательских загрузочных скриптов
- для других демонов
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="udev-bootscripts" name=
- "udev-bootscripts"></a><span class="term"><span class=
- "command"><strong>udev</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Подготавливает каталог <code class="filename">/dev</code>
- и запускает демон udev
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="udev-retry-bootscripts" name=
- "udev-retry-bootscripts"></a><span class=
- "term"><span class=
- "command"><strong>udev_retry</strong></span></span>
- </p>
- </td>
- <td>
- <p>
- Повторяет неудачные попытки запуска udev uevents и
- копирует сгенерированные файлы правил из <code class=
- "filename">/run/udev</code> в <code class=
- "filename">/etc/udev/rules.d</code> если требуется.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </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="udev.html" title=
- "Взаимодействие с устройствами и модулями">След.</a>
- <p>
- Взаимодействие с устройствами и модулями
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</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/chapter09/chapter09.html b/lfs-12.1-sysv/chapter09/chapter09.html
deleted file mode 100644
index 0d7f3eb..0000000
--- a/lfs-12.1-sysv/chapter09/chapter09.html
+++ /dev/null
@@ -1,115 +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>
- Глава 9. Системные настройки
- </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="../chapter08/cleanup.html" title=
- "Очистка">Пред.</a>
- <p>
- Очистка
- </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-config" name="chapter-config"></a>9. Системные настройки
- </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="bootscripts.html">LFS-Bootscripts-20230728</a>
- </li>
- <li class="sect1">
- <a href="udev.html">Взаимодействие с устройствами и модулями</a>
- </li>
- <li class="sect1">
- <a href="symlinks.html">Управление устройствами</a>
- </li>
- <li class="sect1">
- <a href="network.html">Настройка сети</a>
- </li>
- <li class="sect1">
- <a href="usage.html">Настройка и использование загрузочных
- скриптов System V</a>
- </li>
- <li class="sect1">
- <a href="locale.html">Настройка системной локали</a>
- </li>
- <li class="sect1">
- <a href="inputrc.html">Создание файла /etc/inputrc</a>
- </li>
- <li class="sect1">
- <a href="etcshells.html">Создание файла /etc/shells</a>
- </li>
- </ul>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="../chapter08/cleanup.html" title=
- "Очистка">Пред.</a>
- <p>
- Очистка
- </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/chapter09/etcshells.html b/lfs-12.1-sysv/chapter09/etcshells.html
deleted file mode 100644
index 0b95e4a..0000000
--- a/lfs-12.1-sysv/chapter09/etcshells.html
+++ /dev/null
@@ -1,111 +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>
- 9.9. Создание файла /etc/shells
- </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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="inputrc.html" title=
- "Создание файла /etc/inputrc">Пред.</a>
- <p>
- Создание файла /etc/inputrc
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="../chapter10/chapter10.html" title=
- "Делаем систему LFS загрузочной">След.</a>
- <p>
- Делаем систему LFS загрузочной
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-shells" name="ch-config-shells"></a>9.9. Создание
- файла /etc/shells
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Файл <code class="filename">shells</code> содержит список оболочек
- входа в систему. Приложения используют этот файл для определения
- корректности оболочки. Для каждой оболочки должна присутствовать одна
- строка, состоящая из пути к файлу оболочки относительно корня
- структуры каталогов (/).
- </p>
- <p>
- Например, <span class="command"><strong>chsh</strong></span>
- обращается к этому файлу, чтобы определить, может ли
- непривилегированный пользователь изменить оболочку входа для своей
- учетной записи. Если имя команды не указано в списке, пользователю
- будет отказано в возможности изменять оболочки.
- </p>
- <p>
- Это обязательное условие для таких приложений, как <span class=
- "application">GDM</span>, которые не заполняют список пользователей,
- если ему не удаётся найти <code class="filename">/etc/shells</code>,
- или демонов FTP, которые традиционно запрещают доступ пользователям с
- оболочками, не включенными в этот файл.
- </p>
- <pre class="root"><kbd class=
- "command">cat &gt; /etc/shells &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/shells
-
-/bin/sh
-/bin/bash
-
-# End /etc/shells</code>
-EOF</kbd></pre>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="inputrc.html" title=
- "Создание файла /etc/inputrc">Пред.</a>
- <p>
- Создание файла /etc/inputrc
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="../chapter10/chapter10.html" title=
- "Делаем систему LFS загрузочной">След.</a>
- <p>
- Делаем систему LFS загрузочной
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</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/chapter09/inputrc.html b/lfs-12.1-sysv/chapter09/inputrc.html
deleted file mode 100644
index f1d2811..0000000
--- a/lfs-12.1-sysv/chapter09/inputrc.html
+++ /dev/null
@@ -1,156 +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>
- 9.8. Создание файла /etc/inputrc
- </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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="locale.html" title=
- "Настройка системной локали">Пред.</a>
- <p>
- Настройка системной локали
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="etcshells.html" title=
- "Создание файла /etc/shells">След.</a>
- <p>
- Создание файла /etc/shells
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-inputrc" name="ch-config-inputrc"></a>9.8. Создание
- файла /etc/inputrc
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Файл <code class="filename">inputrc</code> это конфигурационный файл
- библиотеки readline, который предоставляет возможности
- редактирования, когда пользователь вводит строку с терминала. Он
- работает путем преобразования ввода с клавиатуры в определенные
- действия. Readline используется bash и большинством других оболочек,
- а также многими другими приложениями.
- </p>
- <p>
- Большинство людей не нуждаются в специальных настройках, поэтому
- приведенная ниже команда создает глобальный <code class=
- "filename">/etc/inputrc</code>, используемый всеми, кто входит в
- систему. Если позже вы решите, что вам нужно переопределить значения
- по умолчанию для одного из пользователей, вы можете создать файл
- <code class="filename">.inputrc</code> в домашнем каталоге
- пользователя и указать в нём измененные настройки.
- </p>
- <p>
- Дополнительные сведения о редактировании файла <code class=
- "filename">inputrc</code> см. в разделе <span class=
- "command"><strong>info bash</strong></span> в секции <span class=
- "emphasis"><em>Readline Init File</em></span>. Также хорошим
- источником информации является <span class="command"><strong>info
- readline</strong></span>.
- </p>
- <p>
- Ниже приведен общий глобальный <code class="filename">inputrc</code>
- с комментариями, объясняющими, что делают различные параметры.
- Обратите внимание, что комментарии не могут находиться в той же
- строке, что и команды. Создайте файл с помощью следующей команды:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/inputrc &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/inputrc
-# Modified by Chris Lynn &lt;roryo@roryo.dynup.net&gt;
-
-# Разрешить перенос приглашения оболочки на следующую строку
-set horizontal-scroll-mode Off
-
-# Разрешить 8-битный ввод
-set meta-flag On
-set input-meta On
-
-# Отключить обрезание восьмого бита в вводимых символах
-set convert-meta Off
-
-# Выводить на экран все восемь бит
-set output-meta On
-
-# Звуковой сигнал - none, visible или audible, соответственно никакого, видимый или слышимый
-set bell-style none
-
-# Нижеследующие команды привязывают escape-последовательности (первый аргумент)
-# к специфичным для Readline функциям (второй аргумент)
-"\eOd": backward-word
-"\eOc": forward-word
-
-# для консоли linux
-"\e[1~": beginning-of-line
-"\e[4~": end-of-line
-"\e[5~": beginning-of-history
-"\e[6~": end-of-history
-"\e[3~": delete-char
-"\e[2~": quoted-insert
-
-# для xterm
-"\eOH": beginning-of-line
-"\eOF": end-of-line
-
-# для Konsole
-"\e[H": beginning-of-line
-"\e[F": end-of-line
-
-# End /etc/inputrc</code>
-EOF</kbd></pre>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="locale.html" title=
- "Настройка системной локали">Пред.</a>
- <p>
- Настройка системной локали
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="etcshells.html" title=
- "Создание файла /etc/shells">След.</a>
- <p>
- Создание файла /etc/shells
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</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/chapter09/introduction.html b/lfs-12.1-sysv/chapter09/introduction.html
deleted file mode 100644
index 69b8cfc..0000000
--- a/lfs-12.1-sysv/chapter09/introduction.html
+++ /dev/null
@@ -1,182 +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>
- 9.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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="chapter09.html" title=
- "Системные настройки">Пред.</a>
- <p>
- Системные настройки
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="bootscripts.html" title=
- "LFS-Bootscripts-20230728">След.</a>
- <p>
- LFS-Bootscripts-20230728
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-introduction" name="ch-config-introduction"></a>9.1.
- Введение
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Загрузка системы Linux включает в себя несколько задач. Процесс
- должен монтировать как виртуальные, так и реальные файловые системы,
- инициализировать устройства, активировать файл подкачки, проверять
- целостность файловых систем, монтировать любые разделы или файл
- подкачки, устанавливать системные часы, запускать сеть, запускать
- требуемые системой службы и выполнять любые другие необходимые
- пользователю задачи. Этот процесс должен быть организован таким
- образом, чтобы задачи выполнялись в правильном порядке, но в то же
- время как можно быстрее.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="sysv-desc" name="sysv-desc"></a>9.1.1. System V
- </h2>
- <p>
- System V это классический процесс загрузки, который использовался в
- Unix и Unix-подобных системах, таких как Linux с 1983 года. Он
- состоит из небольшой программы <span class=
- "command"><strong>init</strong></span>, которая настраивает базовые
- программы, такие как <span class=
- "command"><strong>login</strong></span> (через getty) и запускает
- скрипт. Этот скрипт, обычно именуемый <span class=
- "command"><strong>rc</strong></span> управляет выполнением
- дополнительных сценариев, необходимых для инициализации системы.
- </p>
- <p>
- Программа <span class="command"><strong>init</strong></span>
- управляется файлом <code class="filename">/etc/inittab</code> и
- разделена по уровням выполнения, которые могут быть выбраны
- пользователем. В LFS используются следующие уровни:
- </p>
- <div class="literallayout">
- <p>
- 0&nbsp;—&nbsp;выключение<br />
- 1&nbsp;—&nbsp;Однопользовательский&nbsp;режим<br />
- 2&nbsp;—&nbsp;Определяемый&nbsp;пользователем<br />
- 3&nbsp;—&nbsp;Полный&nbsp;многопользовательский&nbsp;режим<br />
- 4&nbsp;—&nbsp;Определяемый&nbsp;пользователем<br />
- 5&nbsp;—&nbsp;Полный&nbsp;многопользовательский&nbsp;режим&nbsp;с&nbsp;дисплей-менеджером<br />
-
- 6&nbsp;—&nbsp;перезагрузка
- </p>
- </div>
- <p>
- Уровень выполнения по умолчанию равен 3 или 5.
- </p>
- <h3>
- Преимущества
- </h3>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Устоявшаяся, хорошо отлаженная система.
- </p>
- </li>
- <li class="listitem">
- <p>
- Легко настраивается.
- </p>
- </li>
- </ul>
- </div>
- <h3>
- Недостатки
- </h3>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Может загружаться медленнее. Загрузка базовой системы LFS в
- среднем занимает 8-12 секунд, при этом время загрузки
- измеряется от первого сообщения ядра до запроса на вход в
- систему. Подключение к сети обычно устанавливается примерно
- через 2 секунды после запроса на вход в систему.
- </p>
- </li>
- <li class="listitem">
- <p>
- Последовательная обработка задач загрузки. Это связано с
- предыдущим пунктом. Задержка в работе любого процесса,
- например, проверка файловой системы, приведет к задержке
- всего процесса загрузки.
- </p>
- </li>
- <li class="listitem">
- <p>
- Напрямую не поддерживает дополнительные функции, такие как
- контрольные группы (cgroups) и диспетчер системных ресурсов
- для каждого пользователя.
- </p>
- </li>
- <li class="listitem">
- <p>
- Добавление init-скриптов требует ручных однотипных действий.
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="chapter09.html" title=
- "Системные настройки">Пред.</a>
- <p>
- Системные настройки
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="bootscripts.html" title=
- "LFS-Bootscripts-20230728">След.</a>
- <p>
- LFS-Bootscripts-20230728
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</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/chapter09/locale.html b/lfs-12.1-sysv/chapter09/locale.html
deleted file mode 100644
index 15d4163..0000000
--- a/lfs-12.1-sysv/chapter09/locale.html
+++ /dev/null
@@ -1,256 +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>
- 9.7. Настройка системной локали
- </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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="usage.html" title=
- "Настройка и использование загрузочных скриптов System V">Пред.</a>
- <p>
- Настройка и использование загрузочных скриптов System V
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="inputrc.html" title=
- "Создание файла /etc/inputrc">След.</a>
- <p>
- Создание файла /etc/inputrc
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-locale" name="ch-config-locale"></a>9.7. Настройка
- системной локали
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Некоторые переменные окружения, необходимые для поддержки вашего
- языка. Правильная их установка влияет на:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Выходные данные программ, переводятся на ваш родной язык
- </p>
- </li>
- <li class="listitem">
- <p>
- Правильную интерпретацию символов в буквы, цифры и другие
- классы. Это необходимо для того, чтобы <span class=
- "command"><strong>bash</strong></span> правильно принимал
- не-ASCII символы, в командной строке в неанглоязычных языковых
- системах
- </p>
- </li>
- <li class="listitem">
- <p>
- Правильную для страны сортировку по алфавиту
- </p>
- </li>
- <li class="listitem">
- <p>
- Подходящий формат бумаги по умолчанию
- </p>
- </li>
- <li class="listitem">
- <p>
- Правильное форматирование денежных значений, значений времени и
- дат
- </p>
- </li>
- </ul>
- </div>
- <p>
- Ниже замените <em class="replaceable"><code>&lt;ll&gt;</code></em>
- двухбуквенным кодом нужного вам языка (например <code class=
- "literal">en</code>), а <em class=
- "replaceable"><code>&lt;CC&gt;</code></em> двухбуквенным кодом
- соответствующей страны (например <code class="literal">GB</code>).
- <em class="replaceable"><code>&lt;charmap&gt;</code></em> нужно
- заменить на каноническую кодировку для выбраной вами локали. Также
- могут присутствовать необязательные модификаторы, такие как
- <code class="literal">@euro</code>.
- </p>
- <p>
- Список всех локалей, поддерживаемых Glibc, можно получить, выполнив
- следующую команду:
- </p>
- <pre class="userinput"><kbd class="command">locale -a</kbd></pre>
- <p>
- Таблицы символов могут иметь несколько синонимов. Например
- <code class="literal">ISO-8859-1</code> так же называют <code class=
- "literal">iso8859-1</code> и <code class="literal">iso88591</code>.
- Некоторые приложения не могут корректно обрабатывать различные
- синонимы (например <code class="literal">UTF-8</code> должно быть
- указано как <code class="literal">UTF-8</code>, а не <code class=
- "literal">utf8</code>), поэтому в большинстве случаев безопаснее
- всего выбрать каноническое имя для конкретной локали. Для определения
- канонического имени локали выполните команду ниже, заменив <em class=
- "replaceable"><code>&lt;locale name&gt;</code></em> на вывод
- <span class="command"><strong>locale -a</strong></span> для желаемой
- локали (например <code class="literal">en_GB.iso88591</code> в нашем
- примере).
- </p>
- <pre class="userinput"><kbd class="command">LC_ALL=<em class=
- "replaceable"><code>&lt;locale name&gt;</code></em> locale charmap</kbd></pre>
- <p>
- Для локали <code class="literal">en_GB.iso88591</code> приведенная
- выше команда напечатает:
- </p>
- <pre class="screen"><code class=
- "computeroutput">ISO-8859-1</code></pre>
- <p>
- Окончательная настройка локали будет выглядеть так: <code class=
- "literal">en_GB.ISO-8859-1</code>. Важно, чтобы локаль, найденная с
- помощью приведенной выше методики, была проверена перед её
- добавлением в файлы запуска Bash:
- </p>
- <pre class="userinput"><kbd class=
- "command">LC_ALL=&lt;locale name&gt; locale language
-LC_ALL=&lt;locale name&gt; locale charmap
-LC_ALL=&lt;locale name&gt; locale int_curr_symbol
-LC_ALL=&lt;locale name&gt; locale int_prefix</kbd></pre>
- <p>
- Приведенные выше команды должны вывести название языка, кодировку
- символов, используемую в локали, местную валюту и телефонный код
- страны. Если какая-либо из команд завершается с сообщением об ошибке,
- похожим на указанное ниже, это означает, что ваша локаль либо не была
- установлена в Главе 8, либо не поддерживается стандартной установкой
- Glibc.
- </p>
- <pre class="screen"><code class=
- "computeroutput">locale: Cannot set LC_* to default locale: No such file or directory</code></pre>
- <p>
- Если это произойдет, вам следует либо установить желаемую локаль с
- помощью команды <span class=
- "command"><strong>localedef</strong></span>, либо рассмотреть
- возможность выбора другой локали. Дальнейшие инструкции не
- предполагают таких сообщений об ошибках от Glibc.
- </p>
- <p>
- Другие пакеты также могут работать некорректно (но не всегда будут
- отображать какие-либо сообщения об ошибках), если название локали не
- соответствует их ожиданиям. В таких случаях изучите, какие ещё
- дистрибутивы Linux поддерживают ваш язык, возможно, это даст
- некоторую полезную информацию
- </p>
- <p>
- Программа оболочки <span class=
- "command"><strong>/bin/bash</strong></span> (далее именуемая как
- <span class="quote">«<span class="quote">оболочка</span>»</span>)
- использует начальный набор файлов, чтобы помочь создать среду для
- запуска. Каждый файл имеет определенное назначение и может по-разному
- влиять на вход в систему и интерактивное окружение. Файлы в каталоге
- <code class="filename">/etc</code> содержат глобальные настройки.
- Если в домашнем каталоге существуют эквивалентные файлы, они могут
- переопределить глобальные настройки.
- </p>
- <p>
- Интерактивная оболочка входа запускается после успешного входа с
- использованием <span class=
- "command"><strong>/bin/login</strong></span>, прочитав файл
- <code class="filename">/etc/passwd</code>. Интерактивная оболочка без
- входа в систему запускается из командной строки (например,
- <code class="prompt">[prompt]$</code><span class=
- "command"><strong>/bin/bash</strong></span>). Неинтерактивная
- оболочка обычно присутствует когда выполняется скрипт оболочки. Он
- неинтерактивен, поскольку обрабатывает скрипт и не ожидает ввода
- пользователем между командами.
- </p>
- <p>
- Создайте файл <code class="filename">/etc/profile</code> <span class=
- "phrase">после того, как будут определены правильные настройки
- локали, чтобы установить желаемый язык</span>, но вместо этого
- установите локаль <code class="literal">C.UTF-8</code> при запуске
- консоли Linux (чтобы программы не выводили символы, которые консоль
- Linux не может отобразить):
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/profile &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/profile
-
-for i in $(locale); do
- unset ${i%=*}
-done
-
-if [[ "$TERM" = linux ]]; then
- export LANG=C.UTF-8
-else
- export LANG=<em class=
-"replaceable"><code>&lt;ll&gt;_&lt;CC&gt;.&lt;charmap&gt;&lt;@modifiers&gt;</code></em>
-fi
-
-# End /etc/profile</code>
-EOF</kbd></pre>
- <p>
- Локаль <code class="literal">C</code> (используемая по умолчанию) и
- <code class="literal">en_US</code> (одна из рекомендуемых для
- англоязычных пользователей в Соединенных Штатах) это разные локали.
- <code class="literal">C</code> использует 7-битный набор символов
- US-ASCII и обрабатывает байты с установленным старшим битом как
- недопустимые символы. Вот почему, например, команда <span class=
- "command"><strong>ls</strong></span> заменяет их вопросительными
- знаками в этой локали. Кроме того, попытка отправить почту с такими
- символами из Mutt или Pine приводит к тому что, отправляемые
- сообщения не соответствуют RFC (кодировка в исходящей почте указана
- как <code class="computeroutput">unknown 8-bit</code>). Рекомендуется
- использовать локаль <code class="literal">C</code>, если вы уверены,
- что вам никогда не понадобятся 8-битные символы.
- </p>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="usage.html" title=
- "Настройка и использование загрузочных скриптов System V">Пред.</a>
- <p>
- Настройка и использование загрузочных скриптов System V
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="inputrc.html" title=
- "Создание файла /etc/inputrc">След.</a>
- <p>
- Создание файла /etc/inputrc
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</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/chapter09/network.html b/lfs-12.1-sysv/chapter09/network.html
deleted file mode 100644
index c3cc258..0000000
--- a/lfs-12.1-sysv/chapter09/network.html
+++ /dev/null
@@ -1,342 +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>
- 9.5. Настройка сети
- </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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="symlinks.html" title=
- "Управление устройствами">Пред.</a>
- <p>
- Управление устройствами
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="usage.html" title=
- "Настройка и использование загрузочных скриптов System V">След.</a>
- <p>
- Настройка и использование загрузочных скриптов System V
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-network" name="ch-config-network"></a>9.5. Настройка
- сети
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.5.1. Создание файлов конфигурации сетевого интерфейса
- </h2>
- <p>
- Файлы в каталоге <code class="filename">/etc/sysconfig/</code>
- обычно определяют, какие интерфейсы запускаются и выключаются
- сетевым скриптом. Этот каталог должен содержать файл для каждого
- настраиваемого интерфейса, например <code class=
- "filename">ifconfig.xyz</code>, где <span class=
- "quote">«<span class="quote">xyz</span>»</span> описывает сетевую
- карту. Имя интерфейса (например, eth0) обычно является подходящим.
- Каждый файл содержит атрибуты одного интерфейса, такие как его
- IP-адреса, маски подсетей и так далее. Имя файла должно быть
- <span class="emphasis"><em>ifconfig</em></span>.
- </p>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Если процедура именования из предыдущего раздела не
- использовалась, udev будет назначать имена интерфейсов сетевых
- карт на основе физических характеристик системы, например,
- enp2s1. Если вы не знаете имя вашего интерфейса, вы всегда можете
- запустить <span class="command"><strong>ip link</strong></span>
- или <span class="command"><strong>ls
- /sys/class/net</strong></span> после загрузки системы.
- </p>
- <p>
- Имена интерфейсов зависят от реализации и конфигурации демона
- udev, работающего в системе. Демон udev для LFS (установленный в
- <a class="xref" href="../chapter08/udev.html" title=
- "8.75. Udev из Systemd-255">Раздел&nbsp;8.75, «Udev из
- Systemd-255»</a>) не запустится, пока система LFS не будет
- загружена. Таким образом, имена интерфейсов в системе LFS не
- всегда можно определить, запустив эти команды в
- хост-дистрибутиве, <span class="emphasis"><em>даже в среде
- chroot</em></span>.
- </p>
- </div>
- <p>
- Следующая команда создает пример конфигурационного файла для
- устройства <span class="emphasis"><em>eth0</em></span> со
- статическим IP-адресом:
- </p>
- <pre class="userinput"><kbd class="command">cd /etc/sysconfig/
-cat &gt; ifconfig.<em class=
-"replaceable"><code>eth0</code></em> &lt;&lt; "EOF"
-<code class="literal">ONBOOT=<em class="replaceable"><code>yes</code></em>
-IFACE=<em class="replaceable"><code>eth0</code></em>
-SERVICE=<em class="replaceable"><code>ipv4-static</code></em>
-IP=<em class="replaceable"><code>192.168.1.2</code></em>
-GATEWAY=<em class="replaceable"><code>192.168.1.1</code></em>
-PREFIX=<em class="replaceable"><code>24</code></em>
-BROADCAST=<em class="replaceable"><code>192.168.1.255</code></em></code>
-EOF</kbd></pre>
- <p>
- Значения, выделенные курсивом, должны быть изменены в каждом файле,
- чтобы правильно настроить интерфейсы.
- </p>
- <p>
- Если переменной <code class="envar">ONBOOT</code> присвоено
- значение <code class="literal">yes</code>, сценарий загрузки сети
- System V вызовет сетевую карту (NIC) в процессе загрузки системы.
- Если задано значение, отличное от <code class="literal">yes</code>
- сетевой адаптер будет проигнорирован сетевым скриптом и не будет
- запущен автоматически. Интерфейсы можно запускать или останавливать
- вручную с помощью команд <span class=
- "command"><strong>ifup</strong></span> и <span class=
- "command"><strong>ifdown</strong></span>.
- </p>
- <p>
- Переменная <code class="envar">IFACE</code> определяет имя сетевого
- интерфейса, например, eth0. Она необходима для всех файлов
- конфигураций сетевых устройств. Расширение файла должно
- соответствовать этому значению.
- </p>
- <p>
- Переменная <code class="envar">SERVICE</code> определяет метод
- получения IP-адреса. Пакет LFS-Bootscripts имеет модульный формат
- назначения IP, а создание дополнительных файлов в каталоге
- <code class="filename">/lib/services/</code> позволит использовать
- другие методы назначения IP. Переменная обычно используется для
- протокола DHCP (Dynamic Host Configuration Protocol), который
- рассматривается в книге BLFS
- </p>
- <p>
- Переменная <code class="envar">GATEWAY</code> должна содержать
- IP-адрес шлюза по умолчанию, если таковой имеется. Если нет, то
- закомментируйте эту строку.
- </p>
- <p>
- Переменная <code class="envar">PREFIX</code> указывает количество
- бит, используемых в подсети. Каждый сегмент IP-адреса состоит из 8
- бит. Если маска подсети равна 255.255.255.0, то для указания номера
- сети используются первые три сегмента (24 бита). Если сетевая маска
- 255.255.255.240, подсеть использует первые 28 бит. Префиксы длиннее
- 24 бит обычно используются DSL и кабельными интернет-провайдерами
- (ISP). В этом примере (PREFIX=24) маска сети — 255.255.255.0.
- Измените переменную <code class="envar">PREFIX</code> в
- соответствии c конфигурацией вашей сети. Если этот параметр не
- указан, то ПРЕФИКС по умолчанию равен 24.
- </p>
- <p>
- Для получения дополнительной информации смотрите справочную
- страницу <span class="command"><strong>ifup</strong></span>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="resolv.conf" name="resolv.conf"></a>9.5.2. Создание файла
- /etc/resolv.conf
- </h2>
- <p>
- Системе потребуются дополнительные настройки службы доменных имен
- (DNS) для преобразования имен сети Интернет в IP-адреса и наоборот.
- Это достигается путем указания IP-адреса DNS-сервера, доступного от
- провайдера или администратора сети, в <code class=
- "filename">/etc/resolv.conf</code>. Создайте файл, выполнив
- следующие действия:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/resolv.conf
-
-domain <em class="replaceable"><code>&lt;Ваше доменное имя&gt;</code></em>
-nameserver <em class=
-"replaceable"><code>&lt;IP-адрес вашего основного DNS-сервера&gt;</code></em>
-nameserver <em class=
-"replaceable"><code>&lt;IP-адрес вашего дополнительного DNS-сервера&gt;</code></em>
-
-# End /etc/resolv.conf</code>
-EOF</kbd></pre>
- <p>
- Оператор <code class="varname">domain</code> может быть опущен или
- заменён оператором <code class="varname">search</code>. Смотрите
- справочную страницу resolv.conf для получения подробной информации.
- </p>
- <p>
- Замените <em class="replaceable"><code>&lt;IP-адрес вашего
- основного DNS-сервера&gt;</code></em> адресом наиболее подходящего
- DNS сервера. DNS серверов, может быть указано более одной записи
- (дополнительные серверы необходимы для возможности резервного
- переключения). Если вам нужен только один DNS-сервер, удалите
- вторую строку <span class="emphasis"><em>nameserver</em></span> из
- файла. DNS-сервер также может выступать шлюзом в локальной сети.
- </p>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Адреса общедоступных DNS серверов Google - 8.8.8.8 и 8.8.4.4.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-config-hostname" name="ch-config-hostname"></a>9.5.3.
- Настройка имени хоста
- </h2>
- <p>
- В процессе загрузки файл <code class=
- "filename">/etc/hostname</code> используется для настройки имени
- хоста системы.
- </p>
- <p>
- Создайте файл <code class="filename">/etc/hostname</code> и внесите
- имя хоста, выполнив команду:
- </p>
- <pre class="userinput"><kbd class="command">echo "<em class=
- "replaceable"><code>&lt;lfs&gt;</code></em>" &gt; /etc/hostname</kbd></pre>
- <p>
- <em class="replaceable"><code>&lt;lfs&gt;</code></em> замените на
- имя вашего компьютера. Не вносите сюда полное доменное имя(FQDN).
- Эта информация помещается в файл <code class=
- "filename">/etc/hosts</code>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-config-hosts" name="ch-config-hosts"></a>9.5.4. Настройка
- файла /etc/hosts
- </h2>
- <p>
- Выберите полное доменное имя (FQDN) и возможные псевдонимы для
- использования в файле <code class="filename">/etc/hosts</code>.
- Если вы используете статические IP-адреса, вам также необходимо
- определиться с IP-адресом. Синтаксис для записи в файле hosts
- следующий:
- </p>
- <pre class="screen"><code class=
- "literal">IP_address myhost.example.org aliases</code></pre>
- <p>
- Если компьютер не должен быть виден в Интернете (т. е. нет
- зарегистрированного домена и действительного блока назначенных
- IP-адресов—у большинства пользователей этого нет), убедитесь, что
- IP-адрес находится в диапазоне внутренних сетевых IP-адресов.
- Допустимые диапазоны:
- </p>
- <pre class="screen"><code class=
- "literal">Диапазон адресов локальной сети Стандартный префикс
-10.0.0.1 - 10.255.255.254 8
-172.x.0.1 - 172.x.255.254 16
-192.168.y.1 - 192.168.y.254 24</code></pre>
- <p>
- x может быть любым числом в диапазоне 16-31. y может быть любым
- числом в диапазоне 0-255.
- </p>
- <p>
- Правильным IP адресом в локальной сети может быть 192.168.1.1.
- </p>
- <p>
- Если компьютер должен быть виден в Интернете, действительным полным
- доменным именем может быть само имя домена или строка, полученная
- путем объединения префикса (часто имени хоста) и домена с помощью
- символа <span class="quote">«<span class="quote">.</span>»</span>.
- Кроме того, вам необходимо обратиться к администратору домена,
- чтобы связать полное доменное имя и ваш общедоступный IP-адрес.
- </p>
- <p>
- Даже если компьютер не виден из Интернета, полное доменное имя все
- равно необходимо для правильной работы некоторых программ, таких
- как MTA. Для этих целей можно использовать специальное полное
- доменное имя <code class="literal">localhost.localdomain</code>.
- </p>
- <p>
- Создайте файл <code class="filename">/etc/hosts</code>, выполнив
- команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/hosts &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/hosts
-
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 <em class="replaceable"><code>&lt;FQDN&gt;</code></em> <em class=
-"replaceable"><code>&lt;HOSTNAME&gt;</code></em>
-<em class="replaceable"><code>&lt;192.168.1.1&gt;</code></em> <em class=
-"replaceable"><code>&lt;FQDN&gt;</code></em> <em class=
-"replaceable"><code>&lt;HOSTNAME&gt;</code></em> <em class=
-"replaceable"><code>[alias1] [alias2 ...]</code></em>
-::1 localhost ip6-localhost ip6-loopback
-ff02::1 ip6-allnodes
-ff02::2 ip6-allrouters
-
-# End /etc/hosts</code>
-EOF</kbd></pre>
- <p>
- Значения <em class=
- "replaceable"><code>&lt;192.168.1.1&gt;</code></em>, <em class=
- "replaceable"><code>&lt;FQDN&gt;</code></em>, и <em class=
- "replaceable"><code>&lt;HOSTNAME&gt;</code></em> должны быть
- изменены в соответствии с предпочтениями пользователя или
- требованиями сети (если имеется IP-адрес выданный сетевым/системным
- администратором и машина подключена к существующей сети).
- Необязательные параметры могут быть опущены.
- </p>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="symlinks.html" title=
- "Управление устройствами">Пред.</a>
- <p>
- Управление устройствами
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="usage.html" title=
- "Настройка и использование загрузочных скриптов System V">След.</a>
- <p>
- Настройка и использование загрузочных скриптов System V
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</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/chapter09/symlinks.html b/lfs-12.1-sysv/chapter09/symlinks.html
deleted file mode 100644
index 25c0faf..0000000
--- a/lfs-12.1-sysv/chapter09/symlinks.html
+++ /dev/null
@@ -1,430 +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>
- 9.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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="udev.html" title=
- "Взаимодействие с устройствами и модулями">Пред.</a>
- <p>
- Взаимодействие с устройствами и модулями
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="network.html" title=
- "Настройка сети">След.</a>
- <p>
- Настройка сети
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-symlinks" name="ch-config-symlinks"></a>9.4.
- Управление устройствами
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.4.1. Сетевые устройства
- </h2>
- <p>
- Udev по умолчанию присваивает имена сетевым устройствам в
- соответствии с данными прошивки, BIOS'а или физическими
- характеристиками, такими как шина, слот или MAC-адрес. Целью такого
- соглашения об именовании является обеспечение того, чтобы сетевые
- устройства именовались последовательно, а не основывались на
- времени обнаружения сетевой карты. Например, в более старых версиях
- Linux—на компьютере с двумя сетевыми картами производства Intel и
- Realtek, сетевая карта производства Intel могла стать eth0, а карта
- Realtek — eth1. Иногда после перезагрузки карты именовались
- наоборот.
- </p>
- <p>
- В новой схеме именования, типичными именами сетевых устройств
- являются enp5s0 или wlp3s0. Если такие имена для вас нежелательны,
- то может быть реализована традиционная схема именования или своя
- собственная.
- </p>
- <div class="sect3">
- <h3 class="sect3">
- 9.4.1.1. Отключение постоянного присвоения имен в параметрах
- загрузки ядра
- </h3>
- <p>
- Традиционная схема именования - eth0, eth1, и так далее, может
- быть включена путем добавления параметра <strong class=
- "userinput"><code>net.ifnames=0</code></strong> в командную
- строку ядра. Это решение подходит для систем, которые имеют
- только одно сетевое устройство каждого типа. Часто в ноутбуках
- несколько сетевых устройств с именами eth0 и wlan0; в таких
- ноутбуках также может использоваться этот метод. Командная строка
- указывается в файле конфигурации GRUB. Подробности смотрите на
- странице <a class="xref" href="../chapter10/grub.html#grub-cfg"
- title=
- "10.4.4. Создание файла конфигурации GRUB">Раздел&nbsp;10.4.4,
- «Создание файла конфигурации GRUB»</a>.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- 9.4.1.2. Создание пользовательских правил Udev
- </h3>
- <p>
- Схему именования можно настроить, создав пользовательские правила
- udev. В состав книги включен скрипт, который генерирует начальные
- правила. Чтобы их сгенерировать, выполните команду:
- </p>
- <pre class="install"><kbd class=
- "command">bash /usr/lib/udev/init-net-rules.sh</kbd></pre>
- <p>
- Теперь, проверьте файл <code class=
- "filename">/etc/udev/rules.d/70-persistent-net.rules</code>,
- чтобы узнать какое имя с каким сетевым устройством сопоставлено:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat /etc/udev/rules.d/70-persistent-net.rules</kbd></pre>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- В некоторых случаях, например, когда MAC-адреса были назначены
- сетевой карте вручную или в виртуальной среде, такой как Qemu
- или Xen, возможно, файл сетевых правил не будет сгенерирован,
- поскольку адреса назначаются не последовательно. В таких
- случаях, этот способ не применим.
- </p>
- </div>
- <p>
- Файл начинается с блока комментариев, далее следуют две строки
- для каждой сетевой карты (NIC). Первая строка представляет собой
- описание с комментариями и содержит аппаратные идентификаторы
- (например, поставщика PCI и идентификаторы устройств, если это
- PCI-карта), а также информацию о драйвере (если его удалось
- обнаружить). Ни идентификатор оборудования, ни драйвер не
- используются для определения того, какое имя присвоить
- интерфейсу; эта информация предназначена только для справки.
- Вторая строка - это правило udev, которое соответствует этому
- сетевому адаптеру и фактически присваивает ему имя.
- </p>
- <p>
- Все правила udev состоят из нескольких ключевых слов, разделенных
- запятыми и необязательными пробелами. Ниже приведены ключевые
- слова и пояснения по каждому из них:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- <code class="literal">SUBSYSTEM=="net"</code> - указывает
- Udev игнорировать устройства, которые не являются сетевыми
- картами.
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">ACTION=="add"</code> - указывает Udev
- игнорировать правила для событий, отличных от добавления
- (события "удалить" и "изменить" также происходят, но не
- требуют переименования сетевых интерфейсов).
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">DRIVERS=="?*"</code> - существует для
- того, чтобы Udev проигнорировал подинтерфейсы VLAN или
- моста (потому что эти подинтерфейсы не имеют драйверов).
- Эти подинтерфейсы пропускаются, потому что назначенные им
- имена будут конфликтовать с именами их родительских
- устройств.
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">ATTR{address}</code> - значением
- этого ключевого слова является MAC-адрес сетевой карты.
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">ATTR{type}=="1"</code> - этот ключ
- гарантирует выполнение правила соответствующего только
- основному интерфейсу, при использовании определенных
- беспроводных драйверов, которые создают несколько
- виртуальных интерфейсов. Дополнительные интерфейсы
- пропускаются по той же причине, что и подинтерфейсы VLAN и
- мост, в ином случае произошел бы конфликт имен.
- </p>
- </li>
- <li class="listitem">
- <p>
- <code class="literal">NAME</code> - значением этого
- ключевого слова является имя, которое udev присвоит этому
- интерфейсу.
- </p>
- </li>
- </ul>
- </div>
- <p>
- Значение <code class="literal">NAME</code> является очень важным.
- Прежде чем продолжить, убедитесь, что вы знаете, какое имя
- назначено каждой из сетевых карт и обязательно используйте это
- значение <code class="literal">NAME</code> при создании файлов
- конфигурации сети.
- </p>
- <p>
- Даже если создан пользовательский файл правил udev, udev все
- равно может назначить одно или несколько альтернативных имен для
- сетевой карты на основе физических характеристик. Если
- пользовательское правило udev переименовывает какой-либо сетевой
- адаптер, используя имя, уже назначенное в качестве
- альтернативного имени другого сетевого адаптера, это правило udev
- не будет выполнено. Если возникает эта проблема, вы можете
- создать файл конфигурации <code class=
- "filename">/etc/udev/network/99-default.link</code> с пустой
- альтернативной политикой назначения, переопределяющей файл
- конфигурации по умолчанию <code class=
- "filename">/usr/lib/udev/network/99-default.link</code>:
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -e '/^AlternativeNamesPolicy/s/=.*$/=/' \
- -i /usr/lib/udev/network/99-default.link \
- &gt; /etc/udev/network/99-default.link</kbd></pre>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.4.2. Символические ссылки CD-ROM
- </h2>
- <p>
- Некоторое программное обеспечение, которое вы, возможно, захотите
- установить позже (например, различные медиаплееры) ожидают, что
- устройства <code class="filename">/dev/cdrom</code> или
- <code class="filename">/dev/dvd</code> и символические ссылки на
- CD-ROM или DVD-ROM устройства должны существовать. Кроме того,
- может быть удобно использовать эти символические ссылки в
- <code class="filename">/etc/fstab</code>. Udev поставляется с
- файлом сценария, который будет генерировать правила для создания
- этих символических ссылок, в зависимости от возможностей каждого
- устройства, но вам нужно решить, какой из двух режимов работы вы
- хотите использовать.
- </p>
- <p>
- Во-первых, скрипт может работать в режиме <span class=
- "quote">«<span class="quote">by-path</span>»</span> (используется
- по умолчанию для USB и FireWire устройств), где создаваемые им
- правила зависят от физического пути к CD или DVD устройству.
- Во-вторых, он может работать в режиме <span class=
- "quote">«<span class="quote">by-id</span>»</span> (по умолчанию для
- устройств IDE и SCSI), где создаваемые им правила зависят от строк
- идентификации, хранящихся в самом устройстве CD или DVD. Путь
- определяется сценарием Udev <span class=
- "command"><strong>path_id</strong></span>, а идентификационные
- строки считываются с оборудования командами <span class=
- "command"><strong>ata_id</strong></span> или <span class=
- "command"><strong>scsi_id</strong></span>, в зависимости от того,
- какой тип устройства у вас есть.
- </p>
- <p>
- У каждого подхода есть свои преимущества; правильный подход к
- использованию будет зависеть от того, какие изменения устройств
- могут произойти. Если вы ожидаете, что физический путь к устройству
- (порты и/или слоты, в который оно подключено), изменится, например,
- потому, что вы планируете переместить диск в другой порт IDE или
- другой разъем USB, то вы должны использовать режим <span class=
- "quote">«<span class="quote">by-id</span>»</span>. С другой
- стороны, если вы ожидаете, что идентификация устройства изменится,
- например, потому, что оно может выйти из строя, и вы замените его
- другим устройством с теми же характеристиками и подключите к тем же
- разъемам, тогда вы должны использовать режим <span class=
- "quote">«<span class="quote">by-path</span>»</span>.
- </p>
- <p>
- Если с вашим устройством возможен любой из вариантов, выберите тот,
- который по вашему мнению случается чаще.
- </p>
- <div class="admon important">
- <img alt="[Важно]" src="../images/important.png" />
- <h3>
- Важно
- </h3>
- <p>
- Внешние устройства (например, привод компакт-дисков, подключенный
- через USB) не следует подключать методом <span class=
- "quote">«<span class="quote">by-path</span>»</span>, потому что
- каждый раз, когда устройство подключено в новый внешний порт,
- изменится его физический путь. Все внешние устройства подвержены
- этой проблеме, если при написании правил Udev применять режим
- распознавания по их физическому пути. К тому же, эта проблема не
- ограничивается CD и DVD-приводами.
- </p>
- </div>
- <p>
- Если вы хотите увидеть значения, которые будут использовать скрипты
- udev, то для требуемого устройства CD-ROM найдите соответствующий
- каталог в <code class="filename">/sys</code> (например, это может
- быть <code class="filename">/sys/block/hdd</code>) и выполните
- команду, аналогичную следующей:
- </p>
- <pre class="userinput"><kbd class=
- "command">udevadm test /sys/block/hdd</kbd></pre>
- <p>
- Обратите внимание на строки, содержащие вывод различных
- идентификаторов *_id. Режим <span class="quote">«<span class=
- "quote">by-id</span>»</span> будет использовать значение ID_SERIAL
- если оно существует и не пустое, иначе будет использована
- комбинация ID_MODEL и ID_REVISION. Режим <span class=
- "quote">«<span class="quote">by-path</span>»</span> будет
- использовать значение ID_PATH.
- </p>
- <p>
- Если режим по умолчанию не подходит для вашей ситуации, то в файл
- <code class=
- "filename">/etc/udev/rules.d/83-cdrom-symlinks.rules</code> можно
- внести следующие изменения (где <em class=
- "replaceable"><code>mode</code></em> является одним из значений
- <span class="quote">«<span class="quote">by-id</span>»</span> или
- <span class="quote">«<span class="quote">by-path</span>»</span>):
- </p>
- <pre class="userinput"><kbd class=
- "command">sed -e 's/"write_cd_rules"/"write_cd_rules <em class=
- "replaceable"><code>mode</code></em>"/' \
- -i /etc/udev/rules.d/83-cdrom-symlinks.rules</kbd></pre>
- <p>
- Обратите внимание, что на данный момент, нет необходимости
- создавать файлы правил или символические ссылки, так как вы
- смонтировали каталог <code class="filename">/dev</code> хоста в
- систему LFS, и мы предполагаем, что символические ссылки уже
- существуют. Правила и символические ссылки будут создаваться при
- первой загрузке LFS системы.
- </p>
- <p>
- Однако, если у вас есть несколько устройств CD-ROM, то
- символические ссылки, сгенерированные в это время, могут указывать
- на другие устройства, и иметь различия от хост системы, потому что
- устройства не будут обнаружены в предсказуемом порядке. Назначения,
- созданные при первой загрузке системы LFS, будут правильными,
- проблема возникнет только в том случае, если символические ссылки в
- обеих системах указывают на одно и то же устройство. Если
- потребуется, проверьте (и, возможно, отредактируйте)
- сгенерированные правила в файле <code class=
- "filename">/etc/udev/rules.d/70-persistent-cd.rules</code> после
- загрузки, чтобы убедиться, что назначенные символические ссылки
- соответствуют тому, что вам нужно.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.4.3. Работа с дубликатами устройств
- </h2>
- <p>
- Как поясняется в <a class="xref" href="udev.html" title=
- "9.3. Взаимодействие с устройствами и модулями">Раздел&nbsp;9.3,
- «Взаимодействие с устройствами и модулями»</a>, порядок отображения
- устройства с одинаковой функциональностью в <code class=
- "filename">/dev</code> является, как правило, случайным. Например,
- если у вас есть веб камера и TV тюнер, иногда <code class=
- "filename">/dev/video0</code> ссылается на камеру, а <code class=
- "filename">/dev/video1</code> ссылается на TV тюнер, а иногда,
- например, после перезагрузки системы, порядок поменяется на
- противоположный. Для всех классов оборудования, за исключением
- звуковых и сетевых карт, это можно исправить, написав правила udev
- для создания постоянных символических ссылок. Случай с сетевыми
- картами описан отдельно в <a class="xref" href="network.html"
- title="9.5. Настройка сети">Раздел&nbsp;9.5, «Настройка сети»</a>,
- инструкции по настройке звуковых карт можно найти в <a class=
- "ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/devices.html">
- BLFS</a>.
- </p>
- <p>
- Для каждого из ваших устройств, которые могут иметь такую проблему
- (даже если проблема не существует в текущем дистрибутиве Linux ),
- найдите соответствующий каталог в <code class=
- "filename">/sys/class</code> или <code class=
- "filename">/sys/block</code>. Для видеоустройств это может быть
- <code class="filename">/sys/class/video4linux/video<em class=
- "replaceable"><code>X</code></em></code>. Определите атрибуты,
- которые однозначно идентифицируют устройство (обычно это
- идентификаторы поставщика и продукта и/или серийные номера):
- </p>
- <pre class="userinput"><kbd class=
- "command">udevadm info -a -p /sys/class/video4linux/video0</kbd></pre>
- <p>
- Затем напишите правила, которые создают символические ссылки,
- например:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/udev/rules.d/83-duplicate_devs.rules &lt;&lt; "EOF"
-<code class="literal">
-# Persistent symlinks for webcam and tuner
-KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam"
-KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner"
-</code>
-EOF</kbd></pre>
- <p>
- В результате устройства <code class="filename">/dev/video0</code> и
- <code class="filename">/dev/video1</code> по-прежнему случайным
- образом ссылаются на TV тюнер и веб-камеру (и, следовательно,
- никогда не должны использоваться напрямую), но есть символические
- ссылки /dev/tvtuner и /dev/webcam, которые всегда указывают на
- правильное устройство.
- </p>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="udev.html" title=
- "Взаимодействие с устройствами и модулями">Пред.</a>
- <p>
- Взаимодействие с устройствами и модулями
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="network.html" title=
- "Настройка сети">След.</a>
- <p>
- Настройка сети
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</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/chapter09/udev.html b/lfs-12.1-sysv/chapter09/udev.html
deleted file mode 100644
index fdcde06..0000000
--- a/lfs-12.1-sysv/chapter09/udev.html
+++ /dev/null
@@ -1,490 +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>
- 9.3. Взаимодействие с устройствами и модулями
- </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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="bootscripts.html" title=
- "LFS-Bootscripts-20230728">Пред.</a>
- <p>
- LFS-Bootscripts-20230728
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="symlinks.html" title=
- "Управление устройствами">След.</a>
- <p>
- Управление устройствами
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-udev" name="ch-config-udev"></a>9.3. Взаимодействие с
- устройствами и модулями
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- В <a class="xref" href="../chapter08/chapter08.html" title=
- "Глава 8. Установка базового системного программного обеспечения">Глава&nbsp;8</a>,
- мы установили демон udev во время сборки <span class=
- "phrase">udev</span> . Прежде чем мы углубимся в детали того, как
- работает udev, необходимо кратко рассказать о предыдущих методах
- взаимодействия с устройствами.
- </p>
- <p>
- Системы Linux традиционно использовали метод статического создания
- устройств, при котором огромное количество узлов устройств(иногда
- буквально тысячи узлов) создавалось в <code class=
- "filename">/dev</code>, независимо от того, существовали ли
- соответствующие аппаратные устройства на самом деле. Обычно это
- делалось с помощью скрипта <span class=
- "command"><strong>MAKEDEV</strong></span>, который содержал ряд
- вызовов команды <span class="command"><strong>mknod</strong></span> с
- соответствующими основными и второстепенными номерами устройств, для
- всех возможных вариантов, которые только могут существовать в мире.
- </p>
- <p>
- Используя метод udev, узлы устройств создаются только для тех
- устройств, которые обнаружены ядром. Эти узлы устройств создаются
- каждый раз при загрузке системы; они хранятся в файловой системе
- <code class="systemitem">devtmpfs</code> (виртуальная файловая
- система, которая полностью находится в оперативной памяти). Узлы не
- занимают много места в памяти и их общий размер незначителен.
- </p>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.3.1. История
- </h2>
- <p>
- В феврале 2000 года, новая файловая система <code class=
- "systemitem">devfs</code> была принята в ветку ядра 2.3.46 и была
- доступна на протяжении выпуска стабильных релизов ветки 2.4. Хотя
- она и присутствовала в ядре, такой способ динамического создания
- устройств никогда не получал поддержки от разработчиков ядра.
- </p>
- <p>
- Основная проблема с подходом, принятым <code class=
- "systemitem">devfs</code> была связана с обработкой обнаружения,
- создания и назначения имен устройствам. Проблема связанная с
- именованием узлов была самой важной. Общепринято, что если имена
- устройств можно настраивать, политика именования устройств должна
- выбираться системными администраторами, а не навязываться
- разработчиками. Файловая система <code class=
- "systemitem">devfs</code> также страдала от состояния гонки,
- присущего её архитектуре; оно не могло быть исправлено без
- существенной переработки ядра. <code class=
- "systemitem">devfs</code> долгое время была помечена как устаревшая
- и, наконец, была удалена из ядра в июне 2006 года.
- </p>
- <p>
- При разработке нестабильной ветки ядра 2.5, позднее, выпущенной как
- стабильный релиз 2.6, появилась новая виртуальная файловая система
- <code class="systemitem">sysfs</code>. Задача этой файловой системы
- заключалась в предоставление информации о конфигурации оборудования
- системы процессам пользовательского пространства. С помощью этого
- представления, видимого в пользовательском пространстве, стало
- возможным разработать замену пользовательского пространства для
- <code class="systemitem">devfs</code>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.3.2. Реализация Udev
- </h2>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.2.1. Sysfs
- </h3>
- <p>
- Краткое описание файловой системы <code class=
- "systemitem">sysfs</code> было представлено выше. Можно задаться
- вопросом, как <code class="systemitem">sysfs</code> получает
- информацию об устройствах в системе, и о том, какие номера
- устройств должны использоваться для них. Драйверы,
- скомпилированные в ядро, регистрируют свои объекты в <code class=
- "systemitem">sysfs</code> (внутри <code class=
- "systemitem">devtmpfs</code>), по мере обнаружения ядром. Для
- драйверов, которые скомпилированы в виде модулей, регистрация
- происходит при его загрузке. После монтирования файловой системы
- <code class="systemitem">sysfs</code> (в каталог <code class=
- "filename">/sys</code>), данные, зарегистрированные драйверами, в
- <code class="systemitem">sysfs</code>, станут доступны для
- пользовательского пространства и udevd для обработки (включая
- модификацию узлов устройств).
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- <a id="ch-config-udev-device-node-creation" name=
- "ch-config-udev-device-node-creation"></a>9.3.2.2. Создание узла
- устройства
- </h3>
- <p>
- Файлы устройств создаются ядром в файловой системе <code class=
- "systemitem">devtmpfs</code>. Любой драйвер, которому необходимо
- зарегистрировать узел устройства, будет использовать для этого
- <code class="systemitem">devtmpfs</code> (через системный драйвер
- ядра). Когда экземпляр <code class="systemitem">devtmpfs</code>
- монтируется в каталог <code class="filename">/dev</code>, узел
- устройства будет доступен в пользовательском пространстве с
- фиксированным именем, разрешениями и владельцем.
- </p>
- <p>
- Через некоторое время, ядро отправит uevent в <span class=
- "command"><strong>udevd</strong></span>. На основе правил,
- которые указанны в файлах в каталогах <code class=
- "filename">/etc/udev/rules.d</code>, <code class=
- "filename">/lib/udev/rules.d</code>, и <code class=
- "filename">/run/udev/rules.d</code>, <span class=
- "command"><strong>udevd</strong></span> создаст дополнительные
- символические ссылки на узлы устройств, или сменит разрешения,
- владельца или группу, или изменит запись (имя) во внутренней базе
- данных <span class="command"><strong>udevd</strong></span> для
- этого объекта.
- </p>
- <p>
- Правила в этих трёх каталогах пронумерованы и используются
- совместно. Если <span class=
- "command"><strong>udevd</strong></span> не может найти правило
- для устройства, он оставит права доступа и владельца на
- <code class="systemitem">devtmpfs</code>, которые были
- установлены изначально.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- <a id="module-loading" name="module-loading"></a>9.3.2.3.
- Загрузка модуля
- </h3>
- <p>
- Драйверы устройств, скомпилированные в виде модулей ядра могут
- содержать встроенные псевдонимы. Псевдонимы можно увидеть
- просмотрев вывод программы <span class=
- "command"><strong>modinfo</strong></span>, обычно они связаны со
- специфичными для шины идентификаторами устройств, которые
- поддерживается модулем. Например, драйвер <span class=
- "emphasis"><em>snd-fm801</em></span> подерживает PCI устройства с
- идентификатором поставщика 0x1319 и идентификатором устройства
- 0x0801, и имеет псевдоним <code class=
- "literal">pci:v00001319d00000801sv*sd*bc04sc01i*</code>. Для
- большинства устройств, драйвер шины экспортирует псевдонимы
- драйвера, которые будет обрабатывать устройство через
- <code class="systemitem">sysfs</code>. Например, файл
- <code class="filename">/sys/bus/pci/devices/0000:00:0d.0/modalias</code>
- может содержать строку <code class=
- "literal">pci:v00001319d00000801sv00001319sd00001319bc04sc01i00</code>.
- Правила по умолчанию, которые предоставлены Udev, заставят
- <span class="command"><strong>udevd</strong></span> вызвать
- <span class="command"><strong>/sbin/modprobe</strong></span> с
- содержимым, которое находится в значении переменной окружения
- <code class="envar">MODALIAS</code> uevent (которое должно
- совпадать с содержимым файла <code class=
- "filename">modalias</code> в sysfs), тем самым загружая все
- модули, чьи псевдонимы совпадают в строке после расширения
- подстановочных знаков
- </p>
- <p>
- В указанном примере, это означает, что в дополнение к
- <span class="emphasis"><em>snd-fm801</em></span> будет загружен
- устаревший (и нежелательный) драйвер <span class=
- "emphasis"><em>forte</em></span>, если он будет доступен. Ниже
- приведены способы, как можно предотвратить загрузку нежелательных
- драйверов.
- </p>
- <p>
- Само ядро также способно загружать модули для сетевых протоколов,
- файловых систем и поддержки NLS по запросу.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.2.4. Работа с устройствами с горячей заменой или
- динамическими устройствами
- </h3>
- <p>
- При подключении устройства, например, MP3-плеер, к универсальной
- последовательной шине (USB), ядро распознает, что устройство
- подключено, и генерирует событие uevent. Затем это событие
- обрабатывается <span class=
- "command"><strong>udevd</strong></span>, как было описано выше.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.3.3. Проблемы с загрузкой модулей и созданием устройств
- </h2>
- <p>
- Существует несколько возможных проблем, связанных с автоматическим
- созданием узлов устройств.
- </p>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.3.1. Модуль ядра не загружается автоматически
- </h3>
- <p>
- Udev загрузит модуль только в том случае, если у него есть
- псевдоним, специфичный для шины, и драйвер шины правильно
- экспортирует необходимые псевдонимы в <code class=
- "systemitem">sysfs</code>. В других случаях следует организовать
- загрузку модуля иными способами. Известно, что, начиная с версии
- Linux-6.7.4, udev, выполняет загрузку правильно написанных
- драйверов для INPUT, IDE, PCI, USB, SCSI, SERIO, и FireWire
- устройств.
- </p>
- <p>
- Чтобы определить, имеет ли требуемый драйвер устройства
- необходимую поддержку Udev, запустите <span class=
- "command"><strong>modinfo</strong></span> с именем модуля в
- качестве аргумента. Далее, попробуйте найти каталог устройства в
- <code class="filename">/sys/bus</code> и проверьте, есть ли там
- файл <code class="filename">modalias</code>.
- </p>
- <p>
- Если файл <code class="filename">modalias</code> существует в
- <code class="systemitem">sysfs</code>, то драйвер, который
- поддерживает устройство, может обращаться к нему напрямую, но не
- имеет псевдонима, это ошибка в драйвере. Загрузите драйвер без
- помощи Udev и ожидайте, что проблема будет исправлена позднее.
- </p>
- <p>
- Если же в каталоге <code class="filename">/sys/bus</code> нет
- файла <code class="filename">modalias</code>, это означает, что
- разработчики ядра еще не добавили поддержку <code class=
- "filename">modalias</code> к этому типу шины. В Linux-6.7.4 это
- относится к шиной ISA. Ожидайте, что эта проблема будет
- исправлена в более поздних версиях ядра.
- </p>
- <p>
- Udev не предназначен для загрузки драйверов <span class=
- "quote">«<span class="quote">обёрток</span>»</span>, таких как
- <span class="emphasis"><em>snd-pcm-oss</em></span> и не
- аппаратных драйверов, например, <span class=
- "emphasis"><em>loop</em></span>.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.3.2. Модуль ядра не загружается автоматически и Udev не
- предназначен для его загрузки
- </h3>
- <p>
- Если модуль <span class="quote">«<span class=
- "quote">обёртка</span>»</span> только расширяет функциональность,
- предоставляемую каким-либо другим модулем (например модуль
- <span class="emphasis"><em>snd-pcm-oss</em></span> расширяет
- функциональность модуля <span class=
- "emphasis"><em>snd-pcm</em></span>, давая возможность звуковым
- картам быть доступными для OSS приложений), настройте
- <span class="command"><strong>modprobe</strong></span> для
- загрузки оболочки после того, как Udev загрузит обернутый модуль.
- Для этого добавьте строку <span class="quote">«<span class=
- "quote">softdep</span>»</span> в файл, который находится в
- каталоге <code class="filename">/etc/modprobe.d/<em class=
- "replaceable"><code>&lt;filename&gt;</code></em>.conf</code>.
- Например:
- </p>
- <pre class="screen"><code class=
- "literal">softdep snd-pcm post: snd-pcm-oss</code></pre>
- <p>
- Обратите внимание, что команда <span class="quote">«<span class=
- "quote">softdep</span>»</span> разрешает добавлять <code class=
- "literal">pre:</code> зависимости, или одновременно <code class=
- "literal">pre:</code> и <code class="literal">post:</code>
- зависимости. Обратитесь к документации <a class="ulink" href=
- "https://man.archlinux.org/man/modprobe.d.5">modprobe.d(5)</a>
- для изучения синтаксиса и возможностей <span class=
- "quote">«<span class="quote">softdep</span>»</span>.
- </p>
- <p>
- Если рассматриваемый модуль не является обёрткой, и полезен сам
- по себе, настройте загрузочный скрипт <span class=
- "command"><strong>modules</strong></span>, чтобы он
- инициализировался при загрузке системы. Для этого добавьте имя
- модуля в файл <code class=
- "filename">/etc/sysconfig/modules</code> в отдельной строке. Этот
- способ сработает и для модулей-обёрток, но не является
- оптимальным.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.3.3. Udev загружает какой-то нежелательный модуль
- </h3>
- <p>
- Либо не создавайте модуль, либо занесите его в черный список в
- файле <code class=
- "filename">/etc/modprobe.d/blacklist.conf</code>, как это сделано
- с модулем <span class="emphasis"><em>forte</em></span> в примере
- ниже:
- </p>
- <pre class="screen"><code class=
- "literal">blacklist forte</code></pre>
- <p>
- Модули, занесенные в черный список, можно загрузить вручную с
- помощью явной команды <span class=
- "command"><strong>modprobe</strong></span>.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.3.4. Udev неправильно создает устройство или делает
- неправильную символическую ссылку
- </h3>
- <p>
- Это обычно происходит, если правило неожиданно совпадает с другим
- устройством. Например, плохо написанное поставщиком оборудования
- правило может соответствовать как диску SCSI(искомое устройство),
- так и универсальному устройству SCSI (неправильно). Найдите
- ошибочное правило и исправьте его с помощью команды <span class=
- "command"><strong>udevadm info</strong></span>.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.3.5. Правило Udev работает ненадежно
- </h3>
- <p>
- Это может быть проявлением предыдущей проблемы. В ином случае,
- если правило использует атрибуты файловой системы <code class=
- "systemitem">sysfs</code>, то это может быть проблемой
- синхронизации ядра, которая будет исправлена в более поздних
- версиях ядра. Но вы можете обойти проблему, создав правило,
- которое ожидает используемый атрибут <code class=
- "systemitem">sysfs</code> и добавляет его к файлу правил
- <code class=
- "filename">/etc/udev/rules.d/10-wait_for_sysfs.rules</code>
- (создайте его, если файл не существует). Пожалуйста, сообщите в
- списке рассылки разработчиков LFS, если это решение вам поможет.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.3.6. Udev не создаёт устройство
- </h3>
- <p>
- Во-первых, убедитесь, что драйвер встроен в ядро или уже загружен
- как модуль, и, что udev не создает устройство с неправильным
- именем.
- </p>
- <p>
- Если драйвер ядра не экспортирует свои данные в <code class=
- "systemitem">sysfs</code>, udev не хватает информации,
- необходимой для создания узла устройства. Это, вероятнее всего,
- произойдет со сторонними драйверами, которых нет в дереве
- исходного кода ядра. Создайте статический узел в каталоге
- <code class="filename">/usr/lib/udev/devices</code> с
- соответствующими старшим/младшим номерами (смотрите файл
- devices.txt в документации к ядру или документации,
- предоставленной сторонним поставщиком драйвера). Статический узел
- будет скопирован в <code class="filename">/dev</code> с помощью
- <span class="command"><strong>udev</strong></span>.
- </p>
- </div>
- <div class="sect3">
- <h3 class="sect3">
- 9.3.3.7. Порядок присвоения имен устройствам меняется случайным
- образом после перезагрузки
- </h3>
- <p>
- Это связано с тем, что udev обрабатывает события uevents и
- загружает модули параллельно, а значит в непредсказуемом порядке.
- Это никогда не будет <span class="quote">«<span class=
- "quote">исправлено</span>»</span>. Вы не должны полагаться на то
- что имена устройств ядра стабильны. Вместо этого создайте свои
- собственные правила, которые делают символические ссылки со
- стабильными именами на основе некоторых неизменяемых атрибутов
- устройства, таких как серийный номер или вывод различных утилит
- *_id, установленных Udev. Смотрите <a class="xref" href=
- "symlinks.html" title=
- "9.4. Управление устройствами">Раздел&nbsp;9.4, «Управление
- устройствами»</a> и <a class="xref" href="network.html" title=
- "9.5. Настройка сети">Раздел&nbsp;9.5, «Настройка сети»</a> для
- примера.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.3.4. Полезная информация
- </h2>
- <p>
- Дополнительную документацию можно получить на следующих сайтах:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Реализация пользовательского пространства в <code class=
- "systemitem">devfs</code> <a class="ulink" href=
- "http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf">
- http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf</a>
- </p>
- </li>
- <li class="listitem">
- <p>
- Файловая система <code class="systemitem">sysfs</code>
- <a class="ulink" href=
- "https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf">
- https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf</a>
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="bootscripts.html" title=
- "LFS-Bootscripts-20230728">Пред.</a>
- <p>
- LFS-Bootscripts-20230728
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="symlinks.html" title=
- "Управление устройствами">След.</a>
- <p>
- Управление устройствами
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</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/chapter09/usage.html b/lfs-12.1-sysv/chapter09/usage.html
deleted file mode 100644
index 43c41a4..0000000
--- a/lfs-12.1-sysv/chapter09/usage.html
+++ /dev/null
@@ -1,1081 +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>
- 9.6. Настройка и использование загрузочных скриптов System V
- </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>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="network.html" title=
- "Настройка сети">Пред.</a>
- <p>
- Настройка сети
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="locale.html" title=
- "Настройка системной локали">След.</a>
- <p>
- Настройка системной локали
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-usage" name="ch-config-usage"></a>9.6. Настройка и
- использование загрузочных скриптов System V
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.6.1. Как работают загрузочные скрипты System V?
- </h2>
- <p>
- В этой версии LFS используется специальное средство загрузки под
- названием SysVinit, основанное на наборе уровней выполнения
- (<span class="emphasis"><em>run-levels</em></span>). Процедура
- загрузки может сильно отличаться от одной системы к другой; и тот
- факт, что в конкретном дистрибутиве Linux все работало должным
- образом, не гарантирует, что оно будут работать так же в LFS. LFS
- работает по-своему, но соблюдает общепринятые стандарты.
- </p>
- <p>
- Существует альтернативная система загрузки, которая называется
- <span class="command"><strong>systemd</strong></span>. Мы не будем
- обсуждать этот вариант загрузки здесь. Для получения подробного
- описания, посетите <a class="ulink" href=
- "https://www.linux.com/training-tutorials/understanding-and-using-systemd/">
- https://www.linux.com/training-tutorials/understanding-and-using-systemd/</a>.
- </p>
- <p>
- SysVinit (в дальнейшем именуемый <span class="quote">«<span class=
- "quote">init</span>»</span>) использует схему уровней выполнения.
- Существует семь уровней выполнения, пронумерованных от 0 до 6. (На
- самом деле уровней больше, но они предназначены для особых случаев
- и обычно не используются. Подробности смотрите в руководстве
- <a class="ulink" href=
- "https://man.archlinux.org/man/init.8">init(8)</a>). Каждый из них
- соответствует действиям, которые компьютер должен выполнить при
- запуске и выключении. Уровень выполнения по умолчанию — 3. Ниже
- приведено описание различных уровней в том виде, в каком они
- реализованы в LFS:
- </p>
- <div class="literallayout">
- <p>
- 0:&nbsp;выключение&nbsp;компьютера<br />
- 1:&nbsp;однопользовательский&nbsp;режим<br />
- 2:&nbsp;зарезервировано&nbsp;для&nbsp;настройки,&nbsp;в&nbsp;остальном&nbsp;аналогично&nbsp;3<br />
-
- 3:&nbsp;многопользовательский&nbsp;режим&nbsp;с&nbsp;поддержкой&nbsp;сети<br />
-
- 4:&nbsp;зарезервировано&nbsp;для&nbsp;настройки,&nbsp;в&nbsp;остальном&nbsp;аналогично&nbsp;3<br />
-
- 5:&nbsp;то&nbsp;же,&nbsp;что&nbsp;и&nbsp;4,&nbsp;обычно&nbsp;используется&nbsp;для&nbsp;входа&nbsp;в&nbsp;систему&nbsp;с&nbsp;графическим&nbsp;интерфейсом&nbsp;(например,&nbsp;<br />
-
- <span class=
- "command"><strong>gdm</strong></span>&nbsp;от&nbsp;GNOME&nbsp;или&nbsp;<span class="command"><strong>lxdm</strong></span>&nbsp;от&nbsp;LXDE)<br />
-
- 6:&nbsp;перезагрузка&nbsp;компьютера
- </p>
- </div>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Раньше, много лет назад, уровень выполнения 2 обозначался как
- <span class="quote">«<span class="quote">многопользовательский
- режим без поддержки сети</span>»</span>, тогда, несколько
- пользователей могли подключаться к системе через последовательные
- порты. В сегодняшних условиях это не имеет смысла, и мы
- обозначаем этот уровень как <span class="quote">«<span class=
- "quote">зарезервировано</span>»</span>.
- </p>
- </div>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="conf-sysvinit" name="conf-sysvinit"></a>9.6.2. Настройка
- Sysvinit
- </h2>
- <p>
- Во время инициализации ядра первой запускаемой программой (если она
- не переопределена в командной строке) является <span class=
- "command"><strong>init</strong></span>. Эта программа считывает
- файл инициализации <code class="filename">/etc/inittab</code>.
- Создайте этот файл:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/inittab &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/inittab
-
-id:3:initdefault:
-
-si::sysinit:/etc/rc.d/init.d/rc S
-
-l0:0:wait:/etc/rc.d/init.d/rc 0
-l1:S1:wait:/etc/rc.d/init.d/rc 1
-l2:2:wait:/etc/rc.d/init.d/rc 2
-l3:3:wait:/etc/rc.d/init.d/rc 3
-l4:4:wait:/etc/rc.d/init.d/rc 4
-l5:5:wait:/etc/rc.d/init.d/rc 5
-l6:6:wait:/etc/rc.d/init.d/rc 6
-
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-su:S06:once:/sbin/sulogin
-s1:1:respawn:/sbin/sulogin
-
-1:2345:respawn:/sbin/agetty --noclear tty1 9600
-2:2345:respawn:/sbin/agetty tty2 9600
-3:2345:respawn:/sbin/agetty tty3 9600
-4:2345:respawn:/sbin/agetty tty4 9600
-5:2345:respawn:/sbin/agetty tty5 9600
-6:2345:respawn:/sbin/agetty tty6 9600
-
-# End /etc/inittab</code>
-EOF</kbd></pre>
- <p>
- Пояснения по содержимому этого файла инициализации находится на
- справочной странице <span class="emphasis"><em>inittab</em></span>.
- Для LFS основной командой является <span class=
- "command"><strong>rc</strong></span>. В приведенном выше файле
- инициализации, <span class="command"><strong>rc</strong></span>
- будет выполнять все сценарии, начинающиеся с символа S в каталоге
- <code class="filename">/etc/rc.d/rcS.d</code>, за которыми следуют
- все скрипты, начинающиеся с S в каталоге <code class=
- "filename">/etc/rc.d/rc?.d</code>, где знак вопроса задается
- значением initdefault.
- </p>
- <p>
- Для удобства, скрипт <span class=
- "command"><strong>rc</strong></span> считывает библиотеку функций
- из <code class="filename">/lib/lsb/init-functions</code>. Эта
- библиотека также читает необязательный файл конфигурации
- <code class="filename">/etc/sysconfig/rc.site</code>. В этот файл
- можно поместить любой из параметров конфигурации системы, описанных
- в последующих разделах, что позволяет объединить все параметры
- системы в одном файле.
- </p>
- <p>
- Для удобства отладки скрипт functions также записывает весь вывод в
- <code class="filename">/run/var/bootlog</code>. Поскольку каталог
- <code class="filename">/run</code> является tmpfs, этот файл не
- сохраняется при загрузке; однако его содержимое добавляется в файл
- <code class="filename">/var/log/boot.log</code> по окончании
- процесса загрузки.
- </p>
- <div class="sect3">
- <h3 class="sect3">
- <a id="init-levels" name="init-levels"></a>9.6.2.1. Изменение
- уровней выполнения
- </h3>
- <p>
- Изменить уровень выполнения можно с помощью команды <span class=
- "command"><strong>init <em class=
- "replaceable"><code>&lt;runlevel&gt;</code></em></strong></span>,
- где <em class="replaceable"><code>&lt;runlevel&gt;</code></em> -
- это целевой уровнем выполнения. Например, чтобы перезагрузить
- компьютер, пользователь должен выполнить команду <span class=
- "command"><strong>init 6</strong></span>, которая является
- псевдонимом для команды <span class=
- "command"><strong>reboot</strong></span>. Аналогично, init 0
- является псевдонимом для команды <span class=
- "command"><strong>halt</strong></span>.
- </p>
- <p>
- В каталоге <code class="filename">/etc/rc.d</code> есть ещё
- несколько каталогов, которые выглядят как <code class=
- "filename">rc?.d</code> (где ? - номер уровня выполнения), все
- они содержат ряд символических ссылок. Некоторые ссылки
- начинаются с <span class="emphasis"><em>K</em></span>, другие
- начинаются с <span class="emphasis"><em>S</em></span>, и все они
- содержат две цифры после начальной буквы. K означает остановить
- (убить) службу, а S означает запустить службу. Числа определяют
- порядок выполнения сценариев от 00 до 99—чем меньше число, тем
- раньше запускается скрипт. Когда <span class=
- "command"><strong>init</strong></span> переключается на другой
- уровень выполнения, соответствующие службы либо запускаются, либо
- останавливаются, в зависимости от выбранного уровня выполнения.
- </p>
- <p>
- Реальные скрипты находятся в каталоге <code class=
- "filename">/etc/rc.d/init.d</code>. Они выполняют фактическую
- работу, и символические ссылки указывают на них. Ссылки К и S
- указывают на один и тот же скрипт в <code class=
- "filename">/etc/rc.d/init.d</code>. Это связано с тем, что
- скрипты могут вызываться с разными параметрами, такими как
- <em class="parameter"><code>start</code></em>, <em class=
- "parameter"><code>stop</code></em>, <em class=
- "parameter"><code>restart</code></em>, <em class=
- "parameter"><code>reload</code></em>, и <em class=
- "parameter"><code>status</code></em>. Когда встречается ссылка K,
- соответствующий скрипт запускается с аргументом <em class=
- "parameter"><code>stop</code></em>. Когда встречается S-ссылка,
- соответствующий скрипт запускается с аргументом <em class=
- "parameter"><code>start</code></em>.
- </p>
- <p>
- Ниже приведено описание к аргументам скриптов:
- </p>
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>start</code></em></span>
- </dt>
- <dd>
- <p>
- Служба запущена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>stop</code></em></span>
- </dt>
- <dd>
- <p>
- Служба остановлена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>restart</code></em></span>
- </dt>
- <dd>
- <p>
- Служба остановлена и снова запущена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>reload</code></em></span>
- </dt>
- <dd>
- <p>
- Конфигурация сервиса обновлена. Используется после
- изменения файла конфигурации службы, когда перезапуск не
- требуется.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>status</code></em></span>
- </dt>
- <dd>
- <p>
- Сообщает, запущена ли служба и с какими ИД процессов.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Не стесняйтесь изменять работу процесса загрузки (в конце концов,
- это ваша собственная система LFS). Приведенные здесь файлы
- являются примером того, как это можно сделать.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 9.6.3. Загрузочные скрипты Udev
- </h2>
- <p>
- Инит-скрипт <code class="filename">/etc/rc.d/init.d/udev</code>
- запускает <span class="command"><strong>udevd</strong></span>,
- который инициализирует все устройства "холодного подключения",
- которые уже были созданы ядром, и ожидает выполнения всех правил.
- Скрипт также отключает обработчик uevent по умолчанию <code class=
- "filename">/sbin/hotplug</code>. Это сделано потому, что ядру
- больше не нужно обращаться к внешнему бинарному файлу. Вместо этого
- <span class="command"><strong>udevd</strong></span> будет
- прослушивать сокет netlink на предмет событий, которые вызывает
- ядро.
- </p>
- <p>
- Инит-скрипт <span class=
- "command"><strong>/etc/rc.d/init.d/udev_retry</strong></span>
- решает задачу повторного запуска событий для подсистем, правила
- которых могут зависеть от файловых систем, которые не монтируются
- до запуска скрипта <span class=
- "command"><strong>mountfs</strong></span> (в частности, его
- вызывают <code class="filename">/usr</code> и <code class=
- "filename">/var</code>). Этот скрипт запускается после скрипта
- <span class="command"><strong>mountfs</strong></span>, поэтому эти
- правила (при повторном запуске) должны сработать во второй раз. Он
- настраивается в файле <code class=
- "filename">/etc/sysconfig/udev_retry</code>; любые слова в этом
- файле, кроме комментариев, являются именами подсистем, которые
- запускаются при повторной попытке. Чтобы найти подсистему
- устройства, используйте <span class="command"><strong>udevadm info
- --attribute-walk &lt;device&gt;</strong></span>, где &lt;device&gt;
- - это абсолютный путь в /dev или /sys, такой как /dev/sr0 или
- /sys/class/rtc.
- </p>
- <p>
- Для получения информации о загрузке модуля ядра и udev смотрите
- <a class="xref" href="udev.html#module-loading" title=
- "9.3.2.3. Загрузка модуля">Раздел&nbsp;9.3.2.3, «Загрузка
- модуля»</a>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-config-clock" name="ch-config-clock"></a>9.6.4. Настройка
- системного времени
- </h2>
- <p>
- Скрипт <span class="command"><strong>setclock</strong></span>
- считывает время с аппаратных часов, также известных как часы BIOS
- или CMOS (Complementary Metal Oxide Semiconductor). Если на
- аппаратных часах установлено время UTC (всемирное скоординированное
- время), этот скрипт преобразует полученное значение в локальное
- время, используя файл <code class="filename">/etc/localtime</code>
- (который сообщает программе <span class=
- "command"><strong>hwclock</strong></span>, в какой временной зоне
- находится пользователь). Невозможно определить, установленное на
- аппаратных часах время UTC или же локальное, поэтому необходимо
- указать его вручную.
- </p>
- <p>
- Скрипт <span class="command"><strong>setclock</strong></span>
- запускается системой <span class="application">udev</span> при
- загрузке, когда ядро определяет возможности аппаратного
- обеспечения. Также его можно запустить вручную с параметром stop,
- чтобы сохранить системное время в аппаратные часы CMOS.
- </p>
- <p>
- Если Вы не можете вспомнить, установлено на аппаратных часах UTC
- или локальное время, запустите команду <strong class=
- "userinput"><code>hwclock --localtime --show</code></strong>. Она
- отобразит текущее время в соответствии с аппаратными часами. Если
- оно совпадает с тем, что показывают ваши настенные/наручные часы,
- значит на часах CMOS установлено локальное время. Если вывод
- <span class="command"><strong>hwclock</strong></span> не совпадает
- с локальным временем, скорее всего, это UTC. Проверьте это, добавив
- или вычитая нужное количество часов для вашего часового пояса ко
- времени, отображаемому <span class=
- "command"><strong>hwclock</strong></span>. Например, если ваш
- часовой пояс это MSK, также известный как GMT +0300, то нужно
- вычесть три часа из локального времени.
- </p>
- <p>
- Измените значение переменной <code class="envar">UTC</code> ниже на
- <em class="parameter"><code>0</code></em> (ноль), если на
- аппаратных часах установлено <span class=
- "emphasis"><em>НЕ</em></span> UTC.
- </p>
- <p>
- Создайте новый файл <code class=
- "filename">/etc/sysconfig/clock</code> выполнив:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/clock &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/clock
-
-UTC=1
-
-# Set this to any options you might need to give to hwclock,
-# such as machine hardware clock type for Alphas.
-CLOCKPARAMS=
-
-# End /etc/sysconfig/clock</code>
-EOF</kbd></pre>
- <p>
- Хороший совет, объясняющий, как обращаться с временем в LFS,
- доступен по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/time.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/time.txt</a>.
- Там объясняются такие вопросы, как часовые пояса, UTC и переменная
- окружения <code class="envar">TZ</code>.
- </p>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Параметры CLOCKPARAMS и UTC также могут быть указаны в файле
- <code class="filename">/etc/sysconfig/rc.site</code>.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-config-console" name="ch-config-console"></a>9.6.5.
- Настройка консоли Linux
- </h2>
- <p>
- Эта секция описывает настройку скрипта <span class=
- "command"><strong>console</strong></span>, который устанавливает
- раскладку клавиатуры, шрифт консоли и уровень подробности
- информации, выводимой ядром на консоль. Если Вы не планируете
- использовать символы, не соответствующие стандарту ASCII (например,
- знак копирайта, символы фунта и евро), и собираетесь печатать
- только в английской раскладке, то можете пропустить большую часть
- секции. Без файла конфигурации (или эквивалентных настроек в
- <code class="filename">rc.site</code>), скрипт <span class=
- "command"><strong>console</strong></span> не будет ничего делать.
- </p>
- <p>
- Скрипт <span class="command"><strong>console</strong></span>
- считывает конфигурацию из файла <code class=
- "filename">/etc/sysconfig/console</code>. Решите для себя, какую
- раскладку клавиатуры и какой шрифт намерены использовать. В этом
- также могут помочь различные HOWTO для конкретных языков; смотрите
- <a class="ulink" href=
- "https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html">https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html</a>.
- Если вы все еще сомневаетесь, посмотрите в каталогах <code class=
- "filename">/usr/share/keymaps</code> и <code class=
- "filename">/usr/share/consolefonts</code> допустимые раскладки и
- экранные шрифты. Прочтите справочные страницы <a class="ulink"
- href="https://man.archlinux.org/man/loadkeys.1">loadkeys(1)</a> и
- <a class="ulink" href=
- "https://man.archlinux.org/man/setfont.8">setfont(8)</a>, чтобы
- определить правильные аргументы для этих программ.
- </p>
- <p>
- Файл <code class="filename">/etc/sysconfig/console</code> должен
- содержать строки вида: <code class=
- "envar">ПЕРЕМЕННАЯ=значение</code>. Допустимы следующие переменные:
- </p>
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term">LOGLEVEL</span>
- </dt>
- <dd>
- <p>
- Эта переменная задает уровень подробности сообщений,
- посылаемых ядром на системную консоль. Значение этой
- переменной передается в качестве аргумента утилите
- <span class="command"><strong>dmesg -n</strong></span>.
- Допустимы уровни от <code class="literal">1</code>(нет
- сообщений) до <code class="literal">8</code>. По умолчанию
- <code class="literal">7</code>, что является довольно
- подробным.
- </p>
- </dd>
- <dt>
- <span class="term">KEYMAP</span>
- </dt>
- <dd>
- <p>
- Эта переменная указывает аргументы для программы <span class=
- "command"><strong>loadkeys</strong></span>, обычно это имя
- загружаемой раскладки, например, <code class=
- "literal">it</code>. Если эта переменная не установлена,
- загрузочный скрипт не будет запускать программу loadkeys, и
- будет использоваться раскладка по умолчанию. Обратите
- внимание, что некоторые раскладки имеют несколько версий с
- одним и тем же именем (cz и его варианты в qwerty/ и qwertz/,
- es в olpc/ и qwerty/ и trf в fgGIod/ и qwerty/). В этих
- случаях также следует указать родительский каталог (например,
- qwerty/es), чтобы обеспечить загрузку правильной раскладки.
- </p>
- </dd>
- <dt>
- <span class="term">KEYMAP_CORRECTIONS</span>
- </dt>
- <dd>
- <p>
- Эта (крайне редко используемая) переменная задает аргументы
- для второго вызова программы <span class=
- "command"><strong>loadkeys</strong></span>. Она полезна, если
- стандартная раскладка вас не совсем устраивает и необходимо
- внести небольшую корректировку. Например, чтобы добавить
- символ евро в раскладку, которая его не содержит, присвойте
- этой переменной значение <code class="literal">euro2</code>.
- </p>
- </dd>
- <dt>
- <span class="term">FONT</span>
- </dt>
- <dd>
- <p>
- Эта переменная определяет аргументы для программы
- <span class="command"><strong>setfont</strong></span>. Обычно
- она включает в себя имя шрифта <code class=
- "literal">-m</code> и имя загружаемой таблицы символов.
- Например, чтобы загрузить шрифт <span class=
- "quote">«<span class="quote">lat1-16</span>»</span> вместе с
- таблицей символов <span class="quote">«<span class=
- "quote">8859-1</span>»</span> (подходит для США), установите
- эту переменную в <code class="literal">lat1-16 -m
- 8859-1</code>. В режиме UTF-8 ядро использует таблицу
- символов для преобразования 8-битных кодов клавиш в UTF-8,
- поэтому аргумент параметра "-m" должен быть установлен на
- кодировку соответствующих кодов клавиш в раскладке.
- </p>
- </dd>
- <dt>
- <span class="term">UNICODE</span>
- </dt>
- <dd>
- <p>
- Присвойте этой переменной значение <code class=
- "literal">1</code>, <code class="literal">yes</code> или
- <code class="literal">true</code>, чтобы переключить консоль
- в режим UTF-8. Это полезно при использовании локали,
- основанной на UTF-8, и не рекомендуется в иных случаях.
- </p>
- </dd>
- <dt>
- <span class="term">LEGACY_CHARSET</span>
- </dt>
- <dd>
- <p>
- Для многих раскладок клавиатуры в пакете Kbd не существует
- готового Unicode-варианта. Скрипт <span class=
- "command"><strong>console</strong></span> будет на лету
- конвертировать имеющуюся раскладку в UTF-8, если присвоить
- этой переменной имя доступной не-UTF-8 раскладки.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Несколько примеров:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Мы будем использовать <code class="literal">C.UTF-8</code> в
- качестве локали для интерактивных сеансов в консоли Linux в
- <a class="xref" href="locale.html" title=
- "9.7. Настройка системной локали">Раздел&nbsp;9.7, «Настройка
- системной локали,»</a>, поэтому нам следует установить
- значение переменной <code class="literal">UNICODE</code> в
- <code class="literal">1</code>. Консольные шрифты,
- поставляемые пакетом <span class="application">Kbd</span>,
- содержащие глифы для всех символов сообщений программы в
- <code class="literal">C.UTF-8</code> являются <code class=
- "filename">LatArCyrHeb*.psfu.gz</code>, <code class=
- "filename">LatGrkCyr*.psfu.gz</code>, <code class=
- "filename">Lat2-Terminus16.psfu.gz</code> и <code class=
- "filename">pancyrillic.f16.psfu.gz</code> из каталога
- <code class="filename">/usr/share/consolefonts</code> (в
- других поставляемых консольных шрифтах отсутствуют глифы
- некоторых символов Unicode, таких как левые/правые кавычки и
- английское тире). Поэтому установите один из них, например
- <code class="filename">Lat2-Terminus16.psfu.gz</code>, в
- качестве шрифта консоли по умолчанию:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-FONT="Lat2-Terminus16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Для русскоязычных пользователей может подойти такой вариант:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="ruwin_alt_sh-UTF-8"
-FONT="cyr-sun16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Для поиска нужной раскладки, выполните команду:
- <span class="command"><strong>find /usr/share/keymaps -type
- f</strong></span>
- </p>
- <p>
- <code class="literal">ruwin_alt-UTF-8</code> - переключение
- раскладки по Alt.
- </p>
- <p>
- <code class="literal">ruwin_alt_sh-UTF-8</code> -
- переключение раскладки по Alt+Shift.
- </p>
- <p>
- <code class="literal">ruwin_cplk-UTF-8</code> -
- переключение раскладки по Caps Lock.
- </p>
- <p>
- <code class="literal">ruwin_ct_sh-UTF-8</code> -
- переключение раскладки по Ctrl+Shift.
- </p>
- <p>
- <code class="literal">ruwin_ctrl-UTF-8</code> -
- переключение раскладки по Ctrl.
- </p>
- <p>
- Посмотреть список доступных шрифтов можно с помощью
- следующей команды: <span class="command"><strong>ls
- /usr/share/consolefonts</strong></span>
- </p>
- </div>
- </li>
- <li class="listitem">
- <p>
- Для не-Unicode настройки необходимы только переменные KEYMAP
- и FONT. Например, для польских пользователей может подойти
- такой вариант:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-KEYMAP="pl2"
-FONT="lat2a-16 -m 8859-2"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Как упоминалось выше, иногда бывает необходимо
- подкорректировать раскладку. Следующий пример добавляет
- символ евро к немецкой раскладке:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-KEYMAP="de-latin1"
-KEYMAP_CORRECTIONS="euro2"
-FONT="lat0-16 -m 8859-15"
-UNICODE="1"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Ниже приведен пример с поддержкой Unicode для болгарского
- языка, где существует стандартная раскладка UTF-8:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="bg_bds-utf8"
-FONT="LatArCyrHeb-16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Из-за использования 512-символьного шрифта LatArCyrHeb-16 в
- предыдущем примере, яркие цвета больше не доступны в консоли
- Linux, если используется фреймбуфер. Если Вы хотите
- использовать яркие цвета без фреймбуфера и можете обходиться
- без символов, не относящихся к вашему языку, тогда можно
- использовать специфичный для вашего языка 256-символьный
- шрифт, как показано ниже:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="bg_bds-utf8"
-FONT="cyr-sun16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Следующий пример демонстрирует автоматическое преобразование
- раскладки из ISO-8859-15 в UTF-8 и включает "мертвые" клавиши
- в режиме Unicode:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="de-latin1"
-KEYMAP_CORRECTIONS="euro2"
-LEGACY_CHARSET="iso-8859-15"
-FONT="LatArCyrHeb-16 -m 8859-15"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Некоторые раскладки включают в себя "мертвые" клавиши (то
- есть клавиши, нажатие которых само по себе не приводит к
- появлению на экране символа, но которые влияют на символ,
- генерируемый следующей клавишей) или определяют слияние
- символов (например: <span class="quote">«<span class=
- "quote">нажмите Ctrl+. A E чтобы получить Æ</span>»</span> в
- раскладке по умолчанию). Linux-6.7.4 правильно интерпретирует
- "мертвые" клавиши и слияния, только когда исходные символы
- имеют 8-битные коды. Эта особенность не влияет на раскладки
- для европейских языков, поскольку в них "сливаются" два
- ASCII-символа или добавляются подчеркивания к неподчеркнутым
- ASCII-символам. Однако, в режиме UTF-8 могут быть проблемы,
- например, для греческого языка, когда необходимо подчеркнуть
- символ α. Решением в этой ситуации будет отказ от
- использования UTF-8 или установка графической системы X
- Window, не имеющих подобных ограничений.
- </p>
- </li>
- <li class="listitem">
- <p>
- Для китайского, японского, корейского и некоторых других
- языков невозможно настроить консоль Linux так, чтобы она
- отображала все необходимые символы. Пользователи, которым
- требуются эти языки, должны установить систему X Window,
- шрифты, покрывающие необходимый диапазон символов, и
- правильный метод ввода (например, SCIM поддерживает большое
- число разнообразных языков).
- </p>
- </li>
- </ul>
- </div>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Файл <code class="filename">/etc/sysconfig/console</code>
- управляет только локализацией текстовой консоли Linux. Он никак
- не влияет на настройки раскладки клавиатуры и шрифтов в системе X
- Window, в сессиях SSH или на последовательном терминале. В этих
- ситуациях ограничения, описанные в двух расположенных выше
- абзацах, не применяются.
- </p>
- </div>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-config-createfiles" name=
- "ch-config-createfiles"></a>9.6.6. Создание файлов при загрузке
- </h2>
- <p>
- Иногда необходимо создавать файлы во время загрузки. Например,
- часто требуется каталог <code class=
- "filename">/tmp/.ICE-unix</code> . Это можно сделать, создав запись
- в скрипте <code class="filename">/etc/sysconfig/createfiles</code>.
- Формат этого файла описан в комментариях файла конфигурации по
- умолчанию.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-config-sysklogd" name="ch-config-sysklogd"></a>9.6.7.
- Настройка скрипта Sysklogd
- </h2>
- <p>
- Скрипт <code class="filename">sysklogd</code> вызывает программу
- <span class="command"><strong>syslogd</strong></span> как часть
- инициализации System V. Параметр <em class="parameter"><code>-m
- 0</code></em> отключает периодическую (по умолчанию - каждые 20
- минут) запись временных меток в файлы журналов, производимую
- <span class="command"><strong>syslogd</strong></span>. Если Вам
- необходимо включить периодическую запись временных меток,
- отредактируйте файл <code class=
- "filename">/etc/sysconfig/rc.site</code> и присвойте переменной
- SYSKLOGD_PARMS требуемое значение. Например, чтобы сбросить все
- параметры, присвойте переменной пустое значение:
- </p>
- <pre class="screen">SYSKLOGD_PARMS=</pre>
- <p>
- Дополнительные параметры смотрите в <strong class=
- "userinput"><code>man syslogd</code></strong>.
- </p>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-config-site" name="ch-config-site"></a>9.6.8. Файл
- rc.site
- </h2>
- <p>
- Необязательный файл <code class=
- "filename">/etc/sysconfig/rc.site</code> содержит настройки,
- автоматически применяемые всеми загрузочными скриптами. Этот файл
- может содержать парамеры, обычно указываемые в файлах <code class=
- "filename">hostname</code>, <code class="filename">console</code> и
- <code class="filename">clock</code> из каталога <code class=
- "filename">/etc/sysconfig/</code>. Если значение одной и той же
- переменной присваивается, как в одном из этих файлов, так и в
- <code class="filename">rc.site</code>, приоритет имеет значение из
- специализированного файла.
- </p>
- <p>
- <code class="filename">rc.site</code> также содержит параметры,
- которые могут настраивать другие аспекты процесса загрузки.
- Установка переменной IPROMPT позволит выборочно запускать
- загрузочные скрипты. Другие параметры описаны в комментариях к
- файлу. Версия файла по умолчанию выглядит следующим образом:
- </p>
- <pre class="auto"># rc.site
-# Optional parameters for boot scripts.
-
-# Distro Information
-# These values, if specified here, override the defaults
-#DISTRO="Linux From Scratch" # The distro name
-#DISTRO_CONTACT="lfs-dev@lists.linuxfromscratch.org" # Bug report address
-#DISTRO_MINI="LFS" # Short name used in filenames for distro config
-
-# Define custom colors used in messages printed to the screen
-
-# Please consult `man console_codes` for more information
-# under the "ECMA-48 Set Graphics Rendition" section
-#
-# Warning: when switching from a 8bit to a 9bit font,
-# the linux console will reinterpret the bold (1;) to
-# the top 256 glyphs of the 9bit font. This does
-# not affect framebuffer consoles
-
-# These values, if specified here, override the defaults
-#BRACKET="\\033[1;34m" # Blue
-#FAILURE="\\033[1;31m" # Red
-#INFO="\\033[1;36m" # Cyan
-#NORMAL="\\033[0;39m" # Grey
-#SUCCESS="\\033[1;32m" # Green
-#WARNING="\\033[1;33m" # Yellow
-
-# Use a colored prefix
-# These values, if specified here, override the defaults
-#BMPREFIX=" "
-#SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} "
-#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
-#WARNING_PREFIX="${WARNING} *** ${NORMAL} "
-
-# Manually set the right edge of message output (characters)
-# Useful when resetting console font during boot to override
-# automatic screen width detection
-#COLUMNS=120
-
-# Interactive startup
-#IPROMPT="yes" # Whether to display the interactive boot prompt
-#itime="3" # The amount of time (in seconds) to display the prompt
-
-# The total length of the distro welcome string, without escape codes
-#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
-#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"
-
-# The total length of the interactive string, without escape codes
-#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
-#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"
-
-# Set scripts to skip the file system check on reboot
-#FASTBOOT=yes
-
-# Skip reading from the console
-#HEADLESS=yes
-
-# Write out fsck progress if yes
-#VERBOSE_FSCK=no
-
-# Speed up boot without waiting for settle in udev
-#OMIT_UDEV_SETTLE=y
-
-# Speed up boot without waiting for settle in udev_retry
-#OMIT_UDEV_RETRY_SETTLE=yes
-
-# Skip cleaning /tmp if yes
-#SKIPTMPCLEAN=no
-
-# For setclock
-#UTC=1
-#CLOCKPARAMS=
-
-# For consolelog (Note that the default, 7=debug, is noisy)
-#LOGLEVEL=7
-
-# For network
-#HOSTNAME=mylfs
-
-# Delay between TERM and KILL signals at shutdown
-#KILLDELAY=3
-
-# Optional sysklogd parameters
-#SYSKLOGD_PARMS="-m 0"
-
-# Console parameters
-#UNICODE=1
-#KEYMAP="de-latin1"
-#KEYMAP_CORRECTIONS="euro2"
-#FONT="lat0-16 -m 8859-15"
-#LEGACY_CHARSET=
-
-</pre>
- <div class="sect3">
- <h3 class="sect3">
- 9.6.8.1. Настройка скриптов загрузки и завершения работы
- </h3>
- <p>
- Загрузочные скрипты LFS загружают и завершают работу системы
- довольно эффективно, но есть несколько настроек, которые вы
- можете внести в файл rc.site, чтобы еще больше повысить скорость
- и настроить сообщения в соответствии с вашими предпочтениями.
- Чтобы сделать это, измените настройки в приведенном выше файле
- <code class="filename">/etc/sysconfig/rc.site</code>.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Во время работы загрузочного скрипта <code class=
- "filename">udev</code> происходит вызов <span class=
- "command"><strong>udev settle</strong></span>, для
- завершения которого требуется некоторое время. Это время
- может и не потребоваться в зависимости от конфигурации
- устройств в системе. Если у вас имеются только простые
- разделы и одна сетевая карта, процессу загрузки, вероятно,
- не нужно будет ждать завершения работы этой команды. Чтобы
- пропустить её, установите переменную OMIT_UDEV_SETTLE=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- Скрипт загрузки <code class="filename">udev_retry</code>
- также по умолчанию запускает <span class=
- "command"><strong>udev settle</strong></span>. Команда
- необходима только тогда, когда каталог <code class=
- "filename">/var</code> смонтирован в отдельный раздел. Это
- связано с тем, что часам нужен доступ к файлу <code class=
- "filename">/var/lib/hwclock/adjtime</code>. Для других
- настроек также может потребоваться дождаться завершения
- udev, но в большинстве случаев в этом нет необходимости.
- Пропустите команду, установив переменную
- OMIT_UDEV_RETRY_SETTLE=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- По умолчанию проверка файловой системы выполняется в
- "тихом" режиме. Это может показаться задержкой во время
- процесса загрузки. Чтобы включить вывод <span class=
- "command"><strong>fsck</strong></span>, установите
- переменную VERBOSE_FSCK=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- При перезагрузке вы, возможно, захотите полностью
- пропустить проверку файловой системы, <span class=
- "command"><strong>fsck</strong></span>. Чтобы сделать это,
- либо создайте файл <code class="filename">/fastboot</code>,
- либо перезагрузите систему командой <span class=
- "command"><strong>/sbin/shutdown -f -r now</strong></span>.
- С другой стороны, вы можете принудительно проверить все
- файловые системы, создав <code class=
- "filename">/forcefsck</code> или запустив <span class=
- "command"><strong>shutdown</strong></span> с параметром
- <em class="parameter"><code>-F</code></em> вместо
- <em class="parameter"><code>-f</code></em>.
- </p>
- <p>
- Установка переменной FASTBOOT=y отключит <span class=
- "command"><strong>fsck</strong></span> во время процесса
- загрузки до тех пор, пока она не будет удалена. Это не
- рекомендуется делать на постоянной основе.
- </p>
- </li>
- <li class="listitem">
- <p>
- Обычно все файлы в каталоге <code class=
- "filename">/tmp</code> удаляются во время загрузки. В
- зависимости от количества имеющихся файлов или каталогов
- это может привести к заметной задержке в процессе загрузки.
- Чтобы пропустить удаление этих файлов, установите
- переменную SKIPTMPCLEAN=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- Во время завершения работы, <span class=
- "command"><strong>init</strong></span> отправляет сигнал
- TERM каждой запущенной программе (например, agetty),
- ожидает установленное время (по умолчанию 3 секунды), затем
- посылает каждому процессу сигнал завершения(KILL) и снова
- ждёт. Этот процесс повторяется в сценарии <span class=
- "command"><strong>sendsignals</strong></span> для любых
- процессов, которые не завершаются их собственными
- скриптами. Задержка для <span class=
- "command"><strong>init</strong></span> может быть
- установлена путем передачи параметра. Например, чтобы
- устранить задержку в <span class=
- "command"><strong>init</strong></span>, передайте параметр
- -t0 при выключении или перезагрузке (например, <span class=
- "command"><strong>/sbin/shutdown -t0 -r
- now</strong></span>). Задержку для скрипта <span class=
- "command"><strong>sendsignals</strong></span> можно
- пропустить, установив параметр KILLDELAY=0.
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="network.html" title=
- "Настройка сети">Пред.</a>
- <p>
- Настройка сети
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="locale.html" title=
- "Настройка системной локали">След.</a>
- <p>
- Настройка системной локали
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>