diff options
Diffstat (limited to 'lfs-12.1-sysv/chapter09')
-rw-r--r-- | lfs-12.1-sysv/chapter09/bootscripts.html | 513 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/chapter09.html | 115 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/etcshells.html | 111 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/inputrc.html | 156 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/introduction.html | 182 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/locale.html | 256 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/network.html | 342 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/symlinks.html | 430 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/udev.html | 490 | ||||
-rw-r--r-- | lfs-12.1-sysv/chapter09/usage.html | 1081 |
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> - Часть IV. Сборка системы 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= - "Часть IV. Сборка системы 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= - "Часть IV. Сборка системы 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 > /etc/shells << "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 > /etc/inputrc << "EOF" -<code class="literal"># Begin /etc/inputrc -# Modified by Chris Lynn <roryo@roryo.dynup.net> - -# Разрешить перенос приглашения оболочки на следующую строку -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 — выключение<br /> - 1 — Однопользовательский режим<br /> - 2 — Определяемый пользователем<br /> - 3 — Полный многопользовательский режим<br /> - 4 — Определяемый пользователем<br /> - 5 — Полный многопользовательский режим с дисплей-менеджером<br /> - - 6 — перезагрузка - </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><ll></code></em> - двухбуквенным кодом нужного вам языка (например <code class= - "literal">en</code>), а <em class= - "replaceable"><code><CC></code></em> двухбуквенным кодом - соответствующей страны (например <code class="literal">GB</code>). - <em class="replaceable"><code><charmap></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><locale name></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><locale name></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=<locale name> locale language -LC_ALL=<locale name> locale charmap -LC_ALL=<locale name> locale int_curr_symbol -LC_ALL=<locale name> 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 > /etc/profile << "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><ll>_<CC>.<charmap><@modifiers></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">Раздел 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 > ifconfig.<em class= -"replaceable"><code>eth0</code></em> << "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 > /etc/resolv.conf << "EOF" -<code class="literal"># Begin /etc/resolv.conf - -domain <em class="replaceable"><code><Ваше доменное имя></code></em> -nameserver <em class= -"replaceable"><code><IP-адрес вашего основного DNS-сервера></code></em> -nameserver <em class= -"replaceable"><code><IP-адрес вашего дополнительного DNS-сервера></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><IP-адрес вашего - основного DNS-сервера></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><lfs></code></em>" > /etc/hostname</kbd></pre> - <p> - <em class="replaceable"><code><lfs></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 > /etc/hosts << "EOF" -<code class="literal"># Begin /etc/hosts - -127.0.0.1 localhost.localdomain localhost -127.0.1.1 <em class="replaceable"><code><FQDN></code></em> <em class= -"replaceable"><code><HOSTNAME></code></em> -<em class="replaceable"><code><192.168.1.1></code></em> <em class= -"replaceable"><code><FQDN></code></em> <em class= -"replaceable"><code><HOSTNAME></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><192.168.1.1></code></em>, <em class= - "replaceable"><code><FQDN></code></em>, и <em class= - "replaceable"><code><HOSTNAME></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">Раздел 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 \ - > /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. Взаимодействие с устройствами и модулями">Раздел 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. Настройка сети">Раздел 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 > /etc/udev/rules.d/83-duplicate_devs.rules << "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. Установка базового системного программного обеспечения">Глава 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><filename></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. Управление устройствами">Раздел 9.4, «Управление - устройствами»</a> и <a class="xref" href="network.html" title= - "9.5. Настройка сети">Раздел 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: выключение компьютера<br /> - 1: однопользовательский режим<br /> - 2: зарезервировано для настройки, в остальном аналогично 3<br /> - - 3: многопользовательский режим с поддержкой сети<br /> - - 4: зарезервировано для настройки, в остальном аналогично 3<br /> - - 5: то же, что и 4, обычно используется для входа в систему с графическим интерфейсом (например, <br /> - - <span class= - "command"><strong>gdm</strong></span> от GNOME или <span class="command"><strong>lxdm</strong></span> от LXDE)<br /> - - 6: перезагрузка компьютера - </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 > /etc/inittab << "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><runlevel></code></em></strong></span>, - где <em class="replaceable"><code><runlevel></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 <device></strong></span>, где <device> - - это абсолютный путь в /dev или /sys, такой как /dev/sr0 или - /sys/class/rtc. - </p> - <p> - Для получения информации о загрузке модуля ядра и udev смотрите - <a class="xref" href="udev.html#module-loading" title= - "9.3.2.3. Загрузка модуля">Раздел 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 > /etc/sysconfig/clock << "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. Настройка системной локали">Раздел 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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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 > /etc/sysconfig/console << "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> |