From 2203e654b389586650d553251b04544a34f189bf Mon Sep 17 00:00:00 2001 From: Sn4il Date: Mon, 2 Sep 2024 15:54:35 +0300 Subject: LFS 12.2 --- lfs-12.1-sysv/chapter09/bootscripts.html | 513 -------------- lfs-12.1-sysv/chapter09/chapter09.html | 115 --- lfs-12.1-sysv/chapter09/etcshells.html | 111 --- lfs-12.1-sysv/chapter09/inputrc.html | 156 ----- lfs-12.1-sysv/chapter09/introduction.html | 182 ----- lfs-12.1-sysv/chapter09/locale.html | 256 ------- lfs-12.1-sysv/chapter09/network.html | 342 --------- lfs-12.1-sysv/chapter09/symlinks.html | 430 ------------ lfs-12.1-sysv/chapter09/udev.html | 490 ------------- lfs-12.1-sysv/chapter09/usage.html | 1081 ----------------------------- 10 files changed, 3676 deletions(-) delete mode 100644 lfs-12.1-sysv/chapter09/bootscripts.html delete mode 100644 lfs-12.1-sysv/chapter09/chapter09.html delete mode 100644 lfs-12.1-sysv/chapter09/etcshells.html delete mode 100644 lfs-12.1-sysv/chapter09/inputrc.html delete mode 100644 lfs-12.1-sysv/chapter09/introduction.html delete mode 100644 lfs-12.1-sysv/chapter09/locale.html delete mode 100644 lfs-12.1-sysv/chapter09/network.html delete mode 100644 lfs-12.1-sysv/chapter09/symlinks.html delete mode 100644 lfs-12.1-sysv/chapter09/udev.html delete mode 100644 lfs-12.1-sysv/chapter09/usage.html (limited to 'lfs-12.1-sysv/chapter09') 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 @@ - - - - - - 9.2. LFS-Bootscripts-20230728 - - - - - - - - -

- 9.2. - LFS-Bootscripts-20230728 -

-
-
-

- Пакет LFS-Bootscripts содержит набор скриптов для запуска/остановки - системы LFS при загрузке/завершении работы. Файлы конфигурации и - процедуры, необходимые для настройки /процесса загрузки, описаны в - следующих разделах. -

-
-
-
- Приблизительное время сборки: - менее 0.1 SBU -
-
- Требуемое дисковое - пространство: 244 KB -
-
-
-
-
-

- 9.2.1. Установка пакета LFS-Bootscripts -

-

- Установите пакет: -

-
make install
-
-
-

- 9.2.2. - Содержимое пакета LFS-Bootscripts -

-
-
-
- Установленные скрипты: - 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 -
-
- Созданные каталоги: - /etc/rc.d, /etc/init.d (символическая - ссылка), /etc/sysconfig, /lib/services, /lib/lsb (символическая - ссылка) -
-
-
-
-

- Краткое описание -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- checkfs -

-
-

- Проверяет целостность файловых систем перед их - монтированием (за исключением журналируемых и сетевых - файловых систем) -

-
-

- cleanfs -

-
-

- Удаляет файлы, которые не должны сохраняться между - перезагрузками, например, те, которые находятся в - директориях /run/ и - /var/lock/; скрипт - пересоздает /run/utmp и - удаляет файлы, которые, возможно, существуют /etc/nologin, /fastboot, и /forcefsck -

-
-

- console -

-
-

- Загружает правильную таблицу раскладок для требуемой - раскладки клавиатуры; он также устанавливает экранный - шрифт -

-
-

- functions -

-
-

- Содержит общие функции, такие как проверка ошибок и - состояния, которые используются несколькими загрузочными - скриптами -

-
-

- halt -

-
-

- Останавливает работу системы -

-
-

- ifdown -

-
-

- Останавливает сетевое устройство -

-
-

- ifup -

-
-

- Инициализирует сетевое устройство -

-
-

- localnet -

-
-

- Настраивает имя хоста системы и локальное устройство - loopback -

-
-

- modules -

-
-

- Загружает модули ядра из списка, который находится в - файле /etc/sysconfig/modules, используя - указанные там же аргументы -

-
-

- mountfs -

-
-

- Монтирует все файловые системы, кроме тех, которые - помечены как noauto или сетевых файловых - систем -

-
-

- mountvirtfs -

-
-

- Монтирует виртуальные файловые системы, такие как - proc -

-
-

- network -

-
-

- Выполняет настройку сетевых интерфейсов, например, - сетевых карт, и настаивает шлюз по-умолчанию (где это - применимо) -

-
-

- rc -

-
-

- Основной сценарий управления; он отвечает за запуск всех - остальных загрузочных скриптов один за другим, в - последовательности, определяемой именами символических - ссылок на другие скрипты. -

-
-

- reboot -

-
-

- Перезагружает систему -

-
-

- sendsignals -

-
-

- Обеспечивает завершение каждого процесса перед - перезагрузкой или остановкой системы. -

-
-

- setclock -

-
-

- Сбрасывает системные часы на местное время, если - аппаратные часы не установлены на всемирное - координированное время (UTC). -

-
-

- ipv4-static -

-
-

- Предоставляет функциональные возможности, необходимые для - назначения статического адреса сетевому интерфейсу. -

-
-

- swap -

-
-

- Включает и отключает файлы и разделы, используемые для - подкачки. -

-
-

- sysctl -

-
-

- Загружает в работающее ядро значения системных настроек - из файла /etc/sysctl.conf, - если этот файл существует -

-
-

- sysklogd -

-
-

- Запускает и останавливает демоны журналирования - сообщений, выдаваемых системой и ядром. -

-
-

- template -

-
-

- Шаблон для создания пользовательских загрузочных скриптов - для других демонов -

-
-

- udev -

-
-

- Подготавливает каталог /dev - и запускает демон udev -

-
-

- udev_retry -

-
-

- Повторяет неудачные попытки запуска udev uevents и - копирует сгенерированные файлы правил из /run/udev в /etc/udev/rules.d если требуется. -

-
-
-
-
- - - 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 @@ - - - - - - Глава 9. Системные настройки - - - - - - - - -

- 9. Системные настройки -

-
- -
- - - 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 @@ - - - - - - 9.9. Создание файла /etc/shells - - - - - - - - -

- 9.9. Создание - файла /etc/shells -

-
-

- Файл shells содержит список оболочек - входа в систему. Приложения используют этот файл для определения - корректности оболочки. Для каждой оболочки должна присутствовать одна - строка, состоящая из пути к файлу оболочки относительно корня - структуры каталогов (/). -

-

- Например, chsh - обращается к этому файлу, чтобы определить, может ли - непривилегированный пользователь изменить оболочку входа для своей - учетной записи. Если имя команды не указано в списке, пользователю - будет отказано в возможности изменять оболочки. -

-

- Это обязательное условие для таких приложений, как GDM, которые не заполняют список пользователей, - если ему не удаётся найти /etc/shells, - или демонов FTP, которые традиционно запрещают доступ пользователям с - оболочками, не включенными в этот файл. -

-
cat > /etc/shells << "EOF"
-# Begin /etc/shells
-
-/bin/sh
-/bin/bash
-
-# End /etc/shells
-EOF
-
- - - 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 @@ - - - - - - 9.8. Создание файла /etc/inputrc - - - - - - - - -

- 9.8. Создание - файла /etc/inputrc -

-
-

- Файл inputrc это конфигурационный файл - библиотеки readline, который предоставляет возможности - редактирования, когда пользователь вводит строку с терминала. Он - работает путем преобразования ввода с клавиатуры в определенные - действия. Readline используется bash и большинством других оболочек, - а также многими другими приложениями. -

-

- Большинство людей не нуждаются в специальных настройках, поэтому - приведенная ниже команда создает глобальный /etc/inputrc, используемый всеми, кто входит в - систему. Если позже вы решите, что вам нужно переопределить значения - по умолчанию для одного из пользователей, вы можете создать файл - .inputrc в домашнем каталоге - пользователя и указать в нём измененные настройки. -

-

- Дополнительные сведения о редактировании файла inputrc см. в разделе info bash в секции Readline Init File. Также хорошим - источником информации является info - readline. -

-

- Ниже приведен общий глобальный inputrc - с комментариями, объясняющими, что делают различные параметры. - Обратите внимание, что комментарии не могут находиться в той же - строке, что и команды. Создайте файл с помощью следующей команды: -

-
cat > /etc/inputrc << "EOF"
-# 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
-EOF
-
- - - 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 @@ - - - - - - 9.1. Введение - - - - - - - - -

- 9.1. - Введение -

-
-

- Загрузка системы Linux включает в себя несколько задач. Процесс - должен монтировать как виртуальные, так и реальные файловые системы, - инициализировать устройства, активировать файл подкачки, проверять - целостность файловых систем, монтировать любые разделы или файл - подкачки, устанавливать системные часы, запускать сеть, запускать - требуемые системой службы и выполнять любые другие необходимые - пользователю задачи. Этот процесс должен быть организован таким - образом, чтобы задачи выполнялись в правильном порядке, но в то же - время как можно быстрее. -

-
-

- 9.1.1. System V -

-

- System V это классический процесс загрузки, который использовался в - Unix и Unix-подобных системах, таких как Linux с 1983 года. Он - состоит из небольшой программы init, которая настраивает базовые - программы, такие как login (через getty) и запускает - скрипт. Этот скрипт, обычно именуемый rc управляет выполнением - дополнительных сценариев, необходимых для инициализации системы. -

-

- Программа init - управляется файлом /etc/inittab и - разделена по уровням выполнения, которые могут быть выбраны - пользователем. В LFS используются следующие уровни: -

-
-

- 0 — выключение
- 1 — Однопользовательский режим
- 2 — Определяемый пользователем
- 3 — Полный многопользовательский режим
- 4 — Определяемый пользователем
- 5 — Полный многопользовательский режим с дисплей-менеджером
- - 6 — перезагрузка -

-
-

- Уровень выполнения по умолчанию равен 3 или 5. -

-

- Преимущества -

-
-
    -
  • -

    - Устоявшаяся, хорошо отлаженная система. -

    -
  • -
  • -

    - Легко настраивается. -

    -
  • -
-
-

- Недостатки -

-
-
    -
  • -

    - Может загружаться медленнее. Загрузка базовой системы LFS в - среднем занимает 8-12 секунд, при этом время загрузки - измеряется от первого сообщения ядра до запроса на вход в - систему. Подключение к сети обычно устанавливается примерно - через 2 секунды после запроса на вход в систему. -

    -
  • -
  • -

    - Последовательная обработка задач загрузки. Это связано с - предыдущим пунктом. Задержка в работе любого процесса, - например, проверка файловой системы, приведет к задержке - всего процесса загрузки. -

    -
  • -
  • -

    - Напрямую не поддерживает дополнительные функции, такие как - контрольные группы (cgroups) и диспетчер системных ресурсов - для каждого пользователя. -

    -
  • -
  • -

    - Добавление init-скриптов требует ручных однотипных действий. -

    -
  • -
-
-
-
- - - 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 @@ - - - - - - 9.7. Настройка системной локали - - - - - - - - -

- 9.7. Настройка - системной локали -

-
-

- Некоторые переменные окружения, необходимые для поддержки вашего - языка. Правильная их установка влияет на: -

-
-
    -
  • -

    - Выходные данные программ, переводятся на ваш родной язык -

    -
  • -
  • -

    - Правильную интерпретацию символов в буквы, цифры и другие - классы. Это необходимо для того, чтобы bash правильно принимал - не-ASCII символы, в командной строке в неанглоязычных языковых - системах -

    -
  • -
  • -

    - Правильную для страны сортировку по алфавиту -

    -
  • -
  • -

    - Подходящий формат бумаги по умолчанию -

    -
  • -
  • -

    - Правильное форматирование денежных значений, значений времени и - дат -

    -
  • -
-
-

- Ниже замените <ll> - двухбуквенным кодом нужного вам языка (например en), а <CC> двухбуквенным кодом - соответствующей страны (например GB). - <charmap> нужно - заменить на каноническую кодировку для выбраной вами локали. Также - могут присутствовать необязательные модификаторы, такие как - @euro. -

-

- Список всех локалей, поддерживаемых Glibc, можно получить, выполнив - следующую команду: -

-
locale -a
-

- Таблицы символов могут иметь несколько синонимов. Например - ISO-8859-1 так же называют iso8859-1 и iso88591. - Некоторые приложения не могут корректно обрабатывать различные - синонимы (например UTF-8 должно быть - указано как UTF-8, а не utf8), поэтому в большинстве случаев безопаснее - всего выбрать каноническое имя для конкретной локали. Для определения - канонического имени локали выполните команду ниже, заменив <locale name> на вывод - locale -a для желаемой - локали (например en_GB.iso88591 в нашем - примере). -

-
LC_ALL=<locale name> locale charmap
-

- Для локали en_GB.iso88591 приведенная - выше команда напечатает: -

-
ISO-8859-1
-

- Окончательная настройка локали будет выглядеть так: en_GB.ISO-8859-1. Важно, чтобы локаль, найденная с - помощью приведенной выше методики, была проверена перед её - добавлением в файлы запуска Bash: -

-
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
-

- Приведенные выше команды должны вывести название языка, кодировку - символов, используемую в локали, местную валюту и телефонный код - страны. Если какая-либо из команд завершается с сообщением об ошибке, - похожим на указанное ниже, это означает, что ваша локаль либо не была - установлена в Главе 8, либо не поддерживается стандартной установкой - Glibc. -

-
locale: Cannot set LC_* to default locale: No such file or directory
-

- Если это произойдет, вам следует либо установить желаемую локаль с - помощью команды localedef, либо рассмотреть - возможность выбора другой локали. Дальнейшие инструкции не - предполагают таких сообщений об ошибках от Glibc. -

-

- Другие пакеты также могут работать некорректно (но не всегда будут - отображать какие-либо сообщения об ошибках), если название локали не - соответствует их ожиданиям. В таких случаях изучите, какие ещё - дистрибутивы Linux поддерживают ваш язык, возможно, это даст - некоторую полезную информацию -

-

- Программа оболочки /bin/bash (далее именуемая как - «оболочка») - использует начальный набор файлов, чтобы помочь создать среду для - запуска. Каждый файл имеет определенное назначение и может по-разному - влиять на вход в систему и интерактивное окружение. Файлы в каталоге - /etc содержат глобальные настройки. - Если в домашнем каталоге существуют эквивалентные файлы, они могут - переопределить глобальные настройки. -

-

- Интерактивная оболочка входа запускается после успешного входа с - использованием /bin/login, прочитав файл - /etc/passwd. Интерактивная оболочка без - входа в систему запускается из командной строки (например, - [prompt]$/bin/bash). Неинтерактивная - оболочка обычно присутствует когда выполняется скрипт оболочки. Он - неинтерактивен, поскольку обрабатывает скрипт и не ожидает ввода - пользователем между командами. -

-

- Создайте файл /etc/profile после того, как будут определены правильные настройки - локали, чтобы установить желаемый язык, но вместо этого - установите локаль C.UTF-8 при запуске - консоли Linux (чтобы программы не выводили символы, которые консоль - Linux не может отобразить): -

-
cat > /etc/profile << "EOF"
-# Begin /etc/profile
-
-for i in $(locale); do
-  unset ${i%=*}
-done
-
-if [[ "$TERM" = linux ]]; then
-  export LANG=C.UTF-8
-else
-  export LANG=<ll>_<CC>.<charmap><@modifiers>
-fi
-
-# End /etc/profile
-EOF
-

- Локаль C (используемая по умолчанию) и - en_US (одна из рекомендуемых для - англоязычных пользователей в Соединенных Штатах) это разные локали. - C использует 7-битный набор символов - US-ASCII и обрабатывает байты с установленным старшим битом как - недопустимые символы. Вот почему, например, команда ls заменяет их вопросительными - знаками в этой локали. Кроме того, попытка отправить почту с такими - символами из Mutt или Pine приводит к тому что, отправляемые - сообщения не соответствуют RFC (кодировка в исходящей почте указана - как unknown 8-bit). Рекомендуется - использовать локаль C, если вы уверены, - что вам никогда не понадобятся 8-битные символы. -

-
- - - 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 @@ - - - - - - 9.5. Настройка сети - - - - - - - - -

- 9.5. Настройка - сети -

-
-
-

- 9.5.1. Создание файлов конфигурации сетевого интерфейса -

-

- Файлы в каталоге /etc/sysconfig/ - обычно определяют, какие интерфейсы запускаются и выключаются - сетевым скриптом. Этот каталог должен содержать файл для каждого - настраиваемого интерфейса, например ifconfig.xyz, где «xyz» описывает сетевую - карту. Имя интерфейса (например, eth0) обычно является подходящим. - Каждый файл содержит атрибуты одного интерфейса, такие как его - IP-адреса, маски подсетей и так далее. Имя файла должно быть - ifconfig. -

-
- [Примечание] -

- Примечание -

-

- Если процедура именования из предыдущего раздела не - использовалась, udev будет назначать имена интерфейсов сетевых - карт на основе физических характеристик системы, например, - enp2s1. Если вы не знаете имя вашего интерфейса, вы всегда можете - запустить ip link - или ls - /sys/class/net после загрузки системы. -

-

- Имена интерфейсов зависят от реализации и конфигурации демона - udev, работающего в системе. Демон udev для LFS (установленный в - Раздел 8.75, «Udev из - Systemd-255») не запустится, пока система LFS не будет - загружена. Таким образом, имена интерфейсов в системе LFS не - всегда можно определить, запустив эти команды в - хост-дистрибутиве, даже в среде - chroot. -

-
-

- Следующая команда создает пример конфигурационного файла для - устройства eth0 со - статическим IP-адресом: -

-
cd /etc/sysconfig/
-cat > ifconfig.eth0 << "EOF"
-ONBOOT=yes
-IFACE=eth0
-SERVICE=ipv4-static
-IP=192.168.1.2
-GATEWAY=192.168.1.1
-PREFIX=24
-BROADCAST=192.168.1.255
-EOF
-

- Значения, выделенные курсивом, должны быть изменены в каждом файле, - чтобы правильно настроить интерфейсы. -

-

- Если переменной ONBOOT присвоено - значение yes, сценарий загрузки сети - System V вызовет сетевую карту (NIC) в процессе загрузки системы. - Если задано значение, отличное от yes - сетевой адаптер будет проигнорирован сетевым скриптом и не будет - запущен автоматически. Интерфейсы можно запускать или останавливать - вручную с помощью команд ifup и ifdown. -

-

- Переменная IFACE определяет имя сетевого - интерфейса, например, eth0. Она необходима для всех файлов - конфигураций сетевых устройств. Расширение файла должно - соответствовать этому значению. -

-

- Переменная SERVICE определяет метод - получения IP-адреса. Пакет LFS-Bootscripts имеет модульный формат - назначения IP, а создание дополнительных файлов в каталоге - /lib/services/ позволит использовать - другие методы назначения IP. Переменная обычно используется для - протокола DHCP (Dynamic Host Configuration Protocol), который - рассматривается в книге BLFS -

-

- Переменная GATEWAY должна содержать - IP-адрес шлюза по умолчанию, если таковой имеется. Если нет, то - закомментируйте эту строку. -

-

- Переменная PREFIX указывает количество - бит, используемых в подсети. Каждый сегмент IP-адреса состоит из 8 - бит. Если маска подсети равна 255.255.255.0, то для указания номера - сети используются первые три сегмента (24 бита). Если сетевая маска - 255.255.255.240, подсеть использует первые 28 бит. Префиксы длиннее - 24 бит обычно используются DSL и кабельными интернет-провайдерами - (ISP). В этом примере (PREFIX=24) маска сети — 255.255.255.0. - Измените переменную PREFIX в - соответствии c конфигурацией вашей сети. Если этот параметр не - указан, то ПРЕФИКС по умолчанию равен 24. -

-

- Для получения дополнительной информации смотрите справочную - страницу ifup. -

-
-
-

- 9.5.2. Создание файла - /etc/resolv.conf -

-

- Системе потребуются дополнительные настройки службы доменных имен - (DNS) для преобразования имен сети Интернет в IP-адреса и наоборот. - Это достигается путем указания IP-адреса DNS-сервера, доступного от - провайдера или администратора сети, в /etc/resolv.conf. Создайте файл, выполнив - следующие действия: -

-
cat > /etc/resolv.conf << "EOF"
-# Begin /etc/resolv.conf
-
-domain <Ваше доменное имя>
-nameserver <IP-адрес вашего основного DNS-сервера>
-nameserver <IP-адрес вашего дополнительного DNS-сервера>
-
-# End /etc/resolv.conf
-EOF
-

- Оператор domain может быть опущен или - заменён оператором search. Смотрите - справочную страницу resolv.conf для получения подробной информации. -

-

- Замените <IP-адрес вашего - основного DNS-сервера> адресом наиболее подходящего - DNS сервера. DNS серверов, может быть указано более одной записи - (дополнительные серверы необходимы для возможности резервного - переключения). Если вам нужен только один DNS-сервер, удалите - вторую строку nameserver из - файла. DNS-сервер также может выступать шлюзом в локальной сети. -

-
- [Примечание] -

- Примечание -

-

- Адреса общедоступных DNS серверов Google - 8.8.8.8 и 8.8.4.4. -

-
-
-
-

- 9.5.3. - Настройка имени хоста -

-

- В процессе загрузки файл /etc/hostname используется для настройки имени - хоста системы. -

-

- Создайте файл /etc/hostname и внесите - имя хоста, выполнив команду: -

-
echo "<lfs>" > /etc/hostname
-

- <lfs> замените на - имя вашего компьютера. Не вносите сюда полное доменное имя(FQDN). - Эта информация помещается в файл /etc/hosts. -

-
-
-

- 9.5.4. Настройка - файла /etc/hosts -

-

- Выберите полное доменное имя (FQDN) и возможные псевдонимы для - использования в файле /etc/hosts. - Если вы используете статические IP-адреса, вам также необходимо - определиться с IP-адресом. Синтаксис для записи в файле hosts - следующий: -

-
IP_address myhost.example.org aliases
-

- Если компьютер не должен быть виден в Интернете (т. е. нет - зарегистрированного домена и действительного блока назначенных - IP-адресов—у большинства пользователей этого нет), убедитесь, что - IP-адрес находится в диапазоне внутренних сетевых IP-адресов. - Допустимые диапазоны: -

-
Диапазон адресов локальной сети      Стандартный префикс
-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
-

- x может быть любым числом в диапазоне 16-31. y может быть любым - числом в диапазоне 0-255. -

-

- Правильным IP адресом в локальной сети может быть 192.168.1.1. -

-

- Если компьютер должен быть виден в Интернете, действительным полным - доменным именем может быть само имя домена или строка, полученная - путем объединения префикса (часто имени хоста) и домена с помощью - символа «.». - Кроме того, вам необходимо обратиться к администратору домена, - чтобы связать полное доменное имя и ваш общедоступный IP-адрес. -

-

- Даже если компьютер не виден из Интернета, полное доменное имя все - равно необходимо для правильной работы некоторых программ, таких - как MTA. Для этих целей можно использовать специальное полное - доменное имя localhost.localdomain. -

-

- Создайте файл /etc/hosts, выполнив - команду: -

-
cat > /etc/hosts << "EOF"
-# Begin /etc/hosts
-
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 <FQDN> <HOSTNAME>
-<192.168.1.1> <FQDN> <HOSTNAME> [alias1] [alias2 ...]
-::1       localhost ip6-localhost ip6-loopback
-ff02::1   ip6-allnodes
-ff02::2   ip6-allrouters
-
-# End /etc/hosts
-EOF
-

- Значения <192.168.1.1>, <FQDN>, и <HOSTNAME> должны быть - изменены в соответствии с предпочтениями пользователя или - требованиями сети (если имеется IP-адрес выданный сетевым/системным - администратором и машина подключена к существующей сети). - Необязательные параметры могут быть опущены. -

-
-
- - - 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 @@ - - - - - - 9.4. Управление устройствами - - - - - - - - -

- 9.4. - Управление устройствами -

-
-
-

- 9.4.1. Сетевые устройства -

-

- Udev по умолчанию присваивает имена сетевым устройствам в - соответствии с данными прошивки, BIOS'а или физическими - характеристиками, такими как шина, слот или MAC-адрес. Целью такого - соглашения об именовании является обеспечение того, чтобы сетевые - устройства именовались последовательно, а не основывались на - времени обнаружения сетевой карты. Например, в более старых версиях - Linux—на компьютере с двумя сетевыми картами производства Intel и - Realtek, сетевая карта производства Intel могла стать eth0, а карта - Realtek — eth1. Иногда после перезагрузки карты именовались - наоборот. -

-

- В новой схеме именования, типичными именами сетевых устройств - являются enp5s0 или wlp3s0. Если такие имена для вас нежелательны, - то может быть реализована традиционная схема именования или своя - собственная. -

-
-

- 9.4.1.1. Отключение постоянного присвоения имен в параметрах - загрузки ядра -

-

- Традиционная схема именования - eth0, eth1, и так далее, может - быть включена путем добавления параметра net.ifnames=0 в командную - строку ядра. Это решение подходит для систем, которые имеют - только одно сетевое устройство каждого типа. Часто в ноутбуках - несколько сетевых устройств с именами eth0 и wlan0; в таких - ноутбуках также может использоваться этот метод. Командная строка - указывается в файле конфигурации GRUB. Подробности смотрите на - странице Раздел 10.4.4, - «Создание файла конфигурации GRUB». -

-
-
-

- 9.4.1.2. Создание пользовательских правил Udev -

-

- Схему именования можно настроить, создав пользовательские правила - udev. В состав книги включен скрипт, который генерирует начальные - правила. Чтобы их сгенерировать, выполните команду: -

-
bash /usr/lib/udev/init-net-rules.sh
-

- Теперь, проверьте файл /etc/udev/rules.d/70-persistent-net.rules, - чтобы узнать какое имя с каким сетевым устройством сопоставлено: -

-
cat /etc/udev/rules.d/70-persistent-net.rules
-
- [Примечание] -

- Примечание -

-

- В некоторых случаях, например, когда MAC-адреса были назначены - сетевой карте вручную или в виртуальной среде, такой как Qemu - или Xen, возможно, файл сетевых правил не будет сгенерирован, - поскольку адреса назначаются не последовательно. В таких - случаях, этот способ не применим. -

-
-

- Файл начинается с блока комментариев, далее следуют две строки - для каждой сетевой карты (NIC). Первая строка представляет собой - описание с комментариями и содержит аппаратные идентификаторы - (например, поставщика PCI и идентификаторы устройств, если это - PCI-карта), а также информацию о драйвере (если его удалось - обнаружить). Ни идентификатор оборудования, ни драйвер не - используются для определения того, какое имя присвоить - интерфейсу; эта информация предназначена только для справки. - Вторая строка - это правило udev, которое соответствует этому - сетевому адаптеру и фактически присваивает ему имя. -

-

- Все правила udev состоят из нескольких ключевых слов, разделенных - запятыми и необязательными пробелами. Ниже приведены ключевые - слова и пояснения по каждому из них: -

-
-
    -
  • -

    - SUBSYSTEM=="net" - указывает - Udev игнорировать устройства, которые не являются сетевыми - картами. -

    -
  • -
  • -

    - ACTION=="add" - указывает Udev - игнорировать правила для событий, отличных от добавления - (события "удалить" и "изменить" также происходят, но не - требуют переименования сетевых интерфейсов). -

    -
  • -
  • -

    - DRIVERS=="?*" - существует для - того, чтобы Udev проигнорировал подинтерфейсы VLAN или - моста (потому что эти подинтерфейсы не имеют драйверов). - Эти подинтерфейсы пропускаются, потому что назначенные им - имена будут конфликтовать с именами их родительских - устройств. -

    -
  • -
  • -

    - ATTR{address} - значением - этого ключевого слова является MAC-адрес сетевой карты. -

    -
  • -
  • -

    - ATTR{type}=="1" - этот ключ - гарантирует выполнение правила соответствующего только - основному интерфейсу, при использовании определенных - беспроводных драйверов, которые создают несколько - виртуальных интерфейсов. Дополнительные интерфейсы - пропускаются по той же причине, что и подинтерфейсы VLAN и - мост, в ином случае произошел бы конфликт имен. -

    -
  • -
  • -

    - NAME - значением этого - ключевого слова является имя, которое udev присвоит этому - интерфейсу. -

    -
  • -
-
-

- Значение NAME является очень важным. - Прежде чем продолжить, убедитесь, что вы знаете, какое имя - назначено каждой из сетевых карт и обязательно используйте это - значение NAME при создании файлов - конфигурации сети. -

-

- Даже если создан пользовательский файл правил udev, udev все - равно может назначить одно или несколько альтернативных имен для - сетевой карты на основе физических характеристик. Если - пользовательское правило udev переименовывает какой-либо сетевой - адаптер, используя имя, уже назначенное в качестве - альтернативного имени другого сетевого адаптера, это правило udev - не будет выполнено. Если возникает эта проблема, вы можете - создать файл конфигурации /etc/udev/network/99-default.link с пустой - альтернативной политикой назначения, переопределяющей файл - конфигурации по умолчанию /usr/lib/udev/network/99-default.link: -

-
sed -e '/^AlternativeNamesPolicy/s/=.*$/=/'  \
-    -i /usr/lib/udev/network/99-default.link \
-     > /etc/udev/network/99-default.link
-
-
-
-

- 9.4.2. Символические ссылки CD-ROM -

-

- Некоторое программное обеспечение, которое вы, возможно, захотите - установить позже (например, различные медиаплееры) ожидают, что - устройства /dev/cdrom или - /dev/dvd и символические ссылки на - CD-ROM или DVD-ROM устройства должны существовать. Кроме того, - может быть удобно использовать эти символические ссылки в - /etc/fstab. Udev поставляется с - файлом сценария, который будет генерировать правила для создания - этих символических ссылок, в зависимости от возможностей каждого - устройства, но вам нужно решить, какой из двух режимов работы вы - хотите использовать. -

-

- Во-первых, скрипт может работать в режиме «by-path» (используется - по умолчанию для USB и FireWire устройств), где создаваемые им - правила зависят от физического пути к CD или DVD устройству. - Во-вторых, он может работать в режиме «by-id» (по умолчанию для - устройств IDE и SCSI), где создаваемые им правила зависят от строк - идентификации, хранящихся в самом устройстве CD или DVD. Путь - определяется сценарием Udev path_id, а идентификационные - строки считываются с оборудования командами ata_id или scsi_id, в зависимости от того, - какой тип устройства у вас есть. -

-

- У каждого подхода есть свои преимущества; правильный подход к - использованию будет зависеть от того, какие изменения устройств - могут произойти. Если вы ожидаете, что физический путь к устройству - (порты и/или слоты, в который оно подключено), изменится, например, - потому, что вы планируете переместить диск в другой порт IDE или - другой разъем USB, то вы должны использовать режим «by-id». С другой - стороны, если вы ожидаете, что идентификация устройства изменится, - например, потому, что оно может выйти из строя, и вы замените его - другим устройством с теми же характеристиками и подключите к тем же - разъемам, тогда вы должны использовать режим «by-path». -

-

- Если с вашим устройством возможен любой из вариантов, выберите тот, - который по вашему мнению случается чаще. -

-
- [Важно] -

- Важно -

-

- Внешние устройства (например, привод компакт-дисков, подключенный - через USB) не следует подключать методом «by-path», потому что - каждый раз, когда устройство подключено в новый внешний порт, - изменится его физический путь. Все внешние устройства подвержены - этой проблеме, если при написании правил Udev применять режим - распознавания по их физическому пути. К тому же, эта проблема не - ограничивается CD и DVD-приводами. -

-
-

- Если вы хотите увидеть значения, которые будут использовать скрипты - udev, то для требуемого устройства CD-ROM найдите соответствующий - каталог в /sys (например, это может - быть /sys/block/hdd) и выполните - команду, аналогичную следующей: -

-
udevadm test /sys/block/hdd
-

- Обратите внимание на строки, содержащие вывод различных - идентификаторов *_id. Режим «by-id» будет использовать значение ID_SERIAL - если оно существует и не пустое, иначе будет использована - комбинация ID_MODEL и ID_REVISION. Режим «by-path» будет - использовать значение ID_PATH. -

-

- Если режим по умолчанию не подходит для вашей ситуации, то в файл - /etc/udev/rules.d/83-cdrom-symlinks.rules можно - внести следующие изменения (где mode является одним из значений - «by-id» или - «by-path»): -

-
sed -e 's/"write_cd_rules"/"write_cd_rules mode"/' \
-    -i /etc/udev/rules.d/83-cdrom-symlinks.rules
-

- Обратите внимание, что на данный момент, нет необходимости - создавать файлы правил или символические ссылки, так как вы - смонтировали каталог /dev хоста в - систему LFS, и мы предполагаем, что символические ссылки уже - существуют. Правила и символические ссылки будут создаваться при - первой загрузке LFS системы. -

-

- Однако, если у вас есть несколько устройств CD-ROM, то - символические ссылки, сгенерированные в это время, могут указывать - на другие устройства, и иметь различия от хост системы, потому что - устройства не будут обнаружены в предсказуемом порядке. Назначения, - созданные при первой загрузке системы LFS, будут правильными, - проблема возникнет только в том случае, если символические ссылки в - обеих системах указывают на одно и то же устройство. Если - потребуется, проверьте (и, возможно, отредактируйте) - сгенерированные правила в файле /etc/udev/rules.d/70-persistent-cd.rules после - загрузки, чтобы убедиться, что назначенные символические ссылки - соответствуют тому, что вам нужно. -

-
-
-

- 9.4.3. Работа с дубликатами устройств -

-

- Как поясняется в Раздел 9.3, - «Взаимодействие с устройствами и модулями», порядок отображения - устройства с одинаковой функциональностью в /dev является, как правило, случайным. Например, - если у вас есть веб камера и TV тюнер, иногда /dev/video0 ссылается на камеру, а /dev/video1 ссылается на TV тюнер, а иногда, - например, после перезагрузки системы, порядок поменяется на - противоположный. Для всех классов оборудования, за исключением - звуковых и сетевых карт, это можно исправить, написав правила udev - для создания постоянных символических ссылок. Случай с сетевыми - картами описан отдельно в Раздел 9.5, «Настройка сети», - инструкции по настройке звуковых карт можно найти в - BLFS. -

-

- Для каждого из ваших устройств, которые могут иметь такую проблему - (даже если проблема не существует в текущем дистрибутиве Linux ), - найдите соответствующий каталог в /sys/class или /sys/block. Для видеоустройств это может быть - /sys/class/video4linux/videoX. Определите атрибуты, - которые однозначно идентифицируют устройство (обычно это - идентификаторы поставщика и продукта и/или серийные номера): -

-
udevadm info -a -p /sys/class/video4linux/video0
-

- Затем напишите правила, которые создают символические ссылки, - например: -

-
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
-
-# 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"
-
-EOF
-

- В результате устройства /dev/video0 и - /dev/video1 по-прежнему случайным - образом ссылаются на TV тюнер и веб-камеру (и, следовательно, - никогда не должны использоваться напрямую), но есть символические - ссылки /dev/tvtuner и /dev/webcam, которые всегда указывают на - правильное устройство. -

-
-
- - - 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 @@ - - - - - - 9.3. Взаимодействие с устройствами и модулями - - - - - - - - -

- 9.3. Взаимодействие с - устройствами и модулями -

-
-

- В Глава 8, - мы установили демон udev во время сборки udev . Прежде чем мы углубимся в детали того, как - работает udev, необходимо кратко рассказать о предыдущих методах - взаимодействия с устройствами. -

-

- Системы Linux традиционно использовали метод статического создания - устройств, при котором огромное количество узлов устройств(иногда - буквально тысячи узлов) создавалось в /dev, независимо от того, существовали ли - соответствующие аппаратные устройства на самом деле. Обычно это - делалось с помощью скрипта MAKEDEV, который содержал ряд - вызовов команды mknod с - соответствующими основными и второстепенными номерами устройств, для - всех возможных вариантов, которые только могут существовать в мире. -

-

- Используя метод udev, узлы устройств создаются только для тех - устройств, которые обнаружены ядром. Эти узлы устройств создаются - каждый раз при загрузке системы; они хранятся в файловой системе - devtmpfs (виртуальная файловая - система, которая полностью находится в оперативной памяти). Узлы не - занимают много места в памяти и их общий размер незначителен. -

-
-

- 9.3.1. История -

-

- В феврале 2000 года, новая файловая система devfs была принята в ветку ядра 2.3.46 и была - доступна на протяжении выпуска стабильных релизов ветки 2.4. Хотя - она и присутствовала в ядре, такой способ динамического создания - устройств никогда не получал поддержки от разработчиков ядра. -

-

- Основная проблема с подходом, принятым devfs была связана с обработкой обнаружения, - создания и назначения имен устройствам. Проблема связанная с - именованием узлов была самой важной. Общепринято, что если имена - устройств можно настраивать, политика именования устройств должна - выбираться системными администраторами, а не навязываться - разработчиками. Файловая система devfs также страдала от состояния гонки, - присущего её архитектуре; оно не могло быть исправлено без - существенной переработки ядра. devfs долгое время была помечена как устаревшая - и, наконец, была удалена из ядра в июне 2006 года. -

-

- При разработке нестабильной ветки ядра 2.5, позднее, выпущенной как - стабильный релиз 2.6, появилась новая виртуальная файловая система - sysfs. Задача этой файловой системы - заключалась в предоставление информации о конфигурации оборудования - системы процессам пользовательского пространства. С помощью этого - представления, видимого в пользовательском пространстве, стало - возможным разработать замену пользовательского пространства для - devfs. -

-
-
-

- 9.3.2. Реализация Udev -

-
-

- 9.3.2.1. Sysfs -

-

- Краткое описание файловой системы sysfs было представлено выше. Можно задаться - вопросом, как sysfs получает - информацию об устройствах в системе, и о том, какие номера - устройств должны использоваться для них. Драйверы, - скомпилированные в ядро, регистрируют свои объекты в sysfs (внутри devtmpfs), по мере обнаружения ядром. Для - драйверов, которые скомпилированы в виде модулей, регистрация - происходит при его загрузке. После монтирования файловой системы - sysfs (в каталог /sys), данные, зарегистрированные драйверами, в - sysfs, станут доступны для - пользовательского пространства и udevd для обработки (включая - модификацию узлов устройств). -

-
-
-

- 9.3.2.2. Создание узла - устройства -

-

- Файлы устройств создаются ядром в файловой системе devtmpfs. Любой драйвер, которому необходимо - зарегистрировать узел устройства, будет использовать для этого - devtmpfs (через системный драйвер - ядра). Когда экземпляр devtmpfs - монтируется в каталог /dev, узел - устройства будет доступен в пользовательском пространстве с - фиксированным именем, разрешениями и владельцем. -

-

- Через некоторое время, ядро отправит uevent в udevd. На основе правил, - которые указанны в файлах в каталогах /etc/udev/rules.d, /lib/udev/rules.d, и /run/udev/rules.d, udevd создаст дополнительные - символические ссылки на узлы устройств, или сменит разрешения, - владельца или группу, или изменит запись (имя) во внутренней базе - данных udevd для - этого объекта. -

-

- Правила в этих трёх каталогах пронумерованы и используются - совместно. Если udevd не может найти правило - для устройства, он оставит права доступа и владельца на - devtmpfs, которые были - установлены изначально. -

-
-
-

- 9.3.2.3. - Загрузка модуля -

-

- Драйверы устройств, скомпилированные в виде модулей ядра могут - содержать встроенные псевдонимы. Псевдонимы можно увидеть - просмотрев вывод программы modinfo, обычно они связаны со - специфичными для шины идентификаторами устройств, которые - поддерживается модулем. Например, драйвер snd-fm801 подерживает PCI устройства с - идентификатором поставщика 0x1319 и идентификатором устройства - 0x0801, и имеет псевдоним pci:v00001319d00000801sv*sd*bc04sc01i*. Для - большинства устройств, драйвер шины экспортирует псевдонимы - драйвера, которые будет обрабатывать устройство через - sysfs. Например, файл - /sys/bus/pci/devices/0000:00:0d.0/modalias - может содержать строку pci:v00001319d00000801sv00001319sd00001319bc04sc01i00. - Правила по умолчанию, которые предоставлены Udev, заставят - udevd вызвать - /sbin/modprobe с - содержимым, которое находится в значении переменной окружения - MODALIAS uevent (которое должно - совпадать с содержимым файла modalias в sysfs), тем самым загружая все - модули, чьи псевдонимы совпадают в строке после расширения - подстановочных знаков -

-

- В указанном примере, это означает, что в дополнение к - snd-fm801 будет загружен - устаревший (и нежелательный) драйвер forte, если он будет доступен. Ниже - приведены способы, как можно предотвратить загрузку нежелательных - драйверов. -

-

- Само ядро также способно загружать модули для сетевых протоколов, - файловых систем и поддержки NLS по запросу. -

-
-
-

- 9.3.2.4. Работа с устройствами с горячей заменой или - динамическими устройствами -

-

- При подключении устройства, например, MP3-плеер, к универсальной - последовательной шине (USB), ядро распознает, что устройство - подключено, и генерирует событие uevent. Затем это событие - обрабатывается udevd, как было описано выше. -

-
-
-
-

- 9.3.3. Проблемы с загрузкой модулей и созданием устройств -

-

- Существует несколько возможных проблем, связанных с автоматическим - созданием узлов устройств. -

-
-

- 9.3.3.1. Модуль ядра не загружается автоматически -

-

- Udev загрузит модуль только в том случае, если у него есть - псевдоним, специфичный для шины, и драйвер шины правильно - экспортирует необходимые псевдонимы в sysfs. В других случаях следует организовать - загрузку модуля иными способами. Известно, что, начиная с версии - Linux-6.7.4, udev, выполняет загрузку правильно написанных - драйверов для INPUT, IDE, PCI, USB, SCSI, SERIO, и FireWire - устройств. -

-

- Чтобы определить, имеет ли требуемый драйвер устройства - необходимую поддержку Udev, запустите modinfo с именем модуля в - качестве аргумента. Далее, попробуйте найти каталог устройства в - /sys/bus и проверьте, есть ли там - файл modalias. -

-

- Если файл modalias существует в - sysfs, то драйвер, который - поддерживает устройство, может обращаться к нему напрямую, но не - имеет псевдонима, это ошибка в драйвере. Загрузите драйвер без - помощи Udev и ожидайте, что проблема будет исправлена позднее. -

-

- Если же в каталоге /sys/bus нет - файла modalias, это означает, что - разработчики ядра еще не добавили поддержку modalias к этому типу шины. В Linux-6.7.4 это - относится к шиной ISA. Ожидайте, что эта проблема будет - исправлена в более поздних версиях ядра. -

-

- Udev не предназначен для загрузки драйверов «обёрток», таких как - snd-pcm-oss и не - аппаратных драйверов, например, loop. -

-
-
-

- 9.3.3.2. Модуль ядра не загружается автоматически и Udev не - предназначен для его загрузки -

-

- Если модуль «обёртка» только расширяет функциональность, - предоставляемую каким-либо другим модулем (например модуль - snd-pcm-oss расширяет - функциональность модуля snd-pcm, давая возможность звуковым - картам быть доступными для OSS приложений), настройте - modprobe для - загрузки оболочки после того, как Udev загрузит обернутый модуль. - Для этого добавьте строку «softdep» в файл, который находится в - каталоге /etc/modprobe.d/<filename>.conf. - Например: -

-
softdep snd-pcm post: snd-pcm-oss
-

- Обратите внимание, что команда «softdep» разрешает добавлять pre: зависимости, или одновременно pre: и post: - зависимости. Обратитесь к документации modprobe.d(5) - для изучения синтаксиса и возможностей «softdep». -

-

- Если рассматриваемый модуль не является обёрткой, и полезен сам - по себе, настройте загрузочный скрипт modules, чтобы он - инициализировался при загрузке системы. Для этого добавьте имя - модуля в файл /etc/sysconfig/modules в отдельной строке. Этот - способ сработает и для модулей-обёрток, но не является - оптимальным. -

-
-
-

- 9.3.3.3. Udev загружает какой-то нежелательный модуль -

-

- Либо не создавайте модуль, либо занесите его в черный список в - файле /etc/modprobe.d/blacklist.conf, как это сделано - с модулем forte в примере - ниже: -

-
blacklist forte
-

- Модули, занесенные в черный список, можно загрузить вручную с - помощью явной команды modprobe. -

-
-
-

- 9.3.3.4. Udev неправильно создает устройство или делает - неправильную символическую ссылку -

-

- Это обычно происходит, если правило неожиданно совпадает с другим - устройством. Например, плохо написанное поставщиком оборудования - правило может соответствовать как диску SCSI(искомое устройство), - так и универсальному устройству SCSI (неправильно). Найдите - ошибочное правило и исправьте его с помощью команды udevadm info. -

-
-
-

- 9.3.3.5. Правило Udev работает ненадежно -

-

- Это может быть проявлением предыдущей проблемы. В ином случае, - если правило использует атрибуты файловой системы sysfs, то это может быть проблемой - синхронизации ядра, которая будет исправлена в более поздних - версиях ядра. Но вы можете обойти проблему, создав правило, - которое ожидает используемый атрибут sysfs и добавляет его к файлу правил - /etc/udev/rules.d/10-wait_for_sysfs.rules - (создайте его, если файл не существует). Пожалуйста, сообщите в - списке рассылки разработчиков LFS, если это решение вам поможет. -

-
-
-

- 9.3.3.6. Udev не создаёт устройство -

-

- Во-первых, убедитесь, что драйвер встроен в ядро или уже загружен - как модуль, и, что udev не создает устройство с неправильным - именем. -

-

- Если драйвер ядра не экспортирует свои данные в sysfs, udev не хватает информации, - необходимой для создания узла устройства. Это, вероятнее всего, - произойдет со сторонними драйверами, которых нет в дереве - исходного кода ядра. Создайте статический узел в каталоге - /usr/lib/udev/devices с - соответствующими старшим/младшим номерами (смотрите файл - devices.txt в документации к ядру или документации, - предоставленной сторонним поставщиком драйвера). Статический узел - будет скопирован в /dev с помощью - udev. -

-
-
-

- 9.3.3.7. Порядок присвоения имен устройствам меняется случайным - образом после перезагрузки -

-

- Это связано с тем, что udev обрабатывает события uevents и - загружает модули параллельно, а значит в непредсказуемом порядке. - Это никогда не будет «исправлено». Вы не должны полагаться на то - что имена устройств ядра стабильны. Вместо этого создайте свои - собственные правила, которые делают символические ссылки со - стабильными именами на основе некоторых неизменяемых атрибутов - устройства, таких как серийный номер или вывод различных утилит - *_id, установленных Udev. Смотрите Раздел 9.4, «Управление - устройствами» и Раздел 9.5, «Настройка сети» для - примера. -

-
-
-
-

- 9.3.4. Полезная информация -

-

- Дополнительную документацию можно получить на следующих сайтах: -

-
- -
-
-
- - - 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 @@ - - - - - - 9.6. Настройка и использование загрузочных скриптов System V - - - - - - - - -

- 9.6. Настройка и - использование загрузочных скриптов System V -

-
-
-

- 9.6.1. Как работают загрузочные скрипты System V? -

-

- В этой версии LFS используется специальное средство загрузки под - названием SysVinit, основанное на наборе уровней выполнения - (run-levels). Процедура - загрузки может сильно отличаться от одной системы к другой; и тот - факт, что в конкретном дистрибутиве Linux все работало должным - образом, не гарантирует, что оно будут работать так же в LFS. LFS - работает по-своему, но соблюдает общепринятые стандарты. -

-

- Существует альтернативная система загрузки, которая называется - systemd. Мы не будем - обсуждать этот вариант загрузки здесь. Для получения подробного - описания, посетите - https://www.linux.com/training-tutorials/understanding-and-using-systemd/. -

-

- SysVinit (в дальнейшем именуемый «init») использует схему уровней выполнения. - Существует семь уровней выполнения, пронумерованных от 0 до 6. (На - самом деле уровней больше, но они предназначены для особых случаев - и обычно не используются. Подробности смотрите в руководстве - init(8)). Каждый из них - соответствует действиям, которые компьютер должен выполнить при - запуске и выключении. Уровень выполнения по умолчанию — 3. Ниже - приведено описание различных уровней в том виде, в каком они - реализованы в LFS: -

-
-

- 0: выключение компьютера
- 1: однопользовательский режим
- 2: зарезервировано для настройки, в остальном аналогично 3
- - 3: многопользовательский режим с поддержкой сети
- - 4: зарезервировано для настройки, в остальном аналогично 3
- - 5: то же, что и 4, обычно используется для входа в систему с графическим интерфейсом (например, 
- - gdm от GNOME или lxdm от LXDE)
- - 6: перезагрузка компьютера -

-
-
- [Примечание] -

- Примечание -

-

- Раньше, много лет назад, уровень выполнения 2 обозначался как - «многопользовательский - режим без поддержки сети», тогда, несколько - пользователей могли подключаться к системе через последовательные - порты. В сегодняшних условиях это не имеет смысла, и мы - обозначаем этот уровень как «зарезервировано». -

-
-
-
-

- 9.6.2. Настройка - Sysvinit -

-

- Во время инициализации ядра первой запускаемой программой (если она - не переопределена в командной строке) является init. Эта программа считывает - файл инициализации /etc/inittab. - Создайте этот файл: -

-
cat > /etc/inittab << "EOF"
-# 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
-EOF
-

- Пояснения по содержимому этого файла инициализации находится на - справочной странице inittab. - Для LFS основной командой является rc. В приведенном выше файле - инициализации, rc - будет выполнять все сценарии, начинающиеся с символа S в каталоге - /etc/rc.d/rcS.d, за которыми следуют - все скрипты, начинающиеся с S в каталоге /etc/rc.d/rc?.d, где знак вопроса задается - значением initdefault. -

-

- Для удобства, скрипт rc считывает библиотеку функций - из /lib/lsb/init-functions. Эта - библиотека также читает необязательный файл конфигурации - /etc/sysconfig/rc.site. В этот файл - можно поместить любой из параметров конфигурации системы, описанных - в последующих разделах, что позволяет объединить все параметры - системы в одном файле. -

-

- Для удобства отладки скрипт functions также записывает весь вывод в - /run/var/bootlog. Поскольку каталог - /run является tmpfs, этот файл не - сохраняется при загрузке; однако его содержимое добавляется в файл - /var/log/boot.log по окончании - процесса загрузки. -

-
-

- 9.6.2.1. Изменение - уровней выполнения -

-

- Изменить уровень выполнения можно с помощью команды init <runlevel>, - где <runlevel> - - это целевой уровнем выполнения. Например, чтобы перезагрузить - компьютер, пользователь должен выполнить команду init 6, которая является - псевдонимом для команды reboot. Аналогично, init 0 - является псевдонимом для команды halt. -

-

- В каталоге /etc/rc.d есть ещё - несколько каталогов, которые выглядят как rc?.d (где ? - номер уровня выполнения), все - они содержат ряд символических ссылок. Некоторые ссылки - начинаются с K, другие - начинаются с S, и все они - содержат две цифры после начальной буквы. K означает остановить - (убить) службу, а S означает запустить службу. Числа определяют - порядок выполнения сценариев от 00 до 99—чем меньше число, тем - раньше запускается скрипт. Когда init переключается на другой - уровень выполнения, соответствующие службы либо запускаются, либо - останавливаются, в зависимости от выбранного уровня выполнения. -

-

- Реальные скрипты находятся в каталоге /etc/rc.d/init.d. Они выполняют фактическую - работу, и символические ссылки указывают на них. Ссылки К и S - указывают на один и тот же скрипт в /etc/rc.d/init.d. Это связано с тем, что - скрипты могут вызываться с разными параметрами, такими как - start, stop, restart, reload, и status. Когда встречается ссылка K, - соответствующий скрипт запускается с аргументом stop. Когда встречается S-ссылка, - соответствующий скрипт запускается с аргументом start. -

-

- Ниже приведено описание к аргументам скриптов: -

-
-
-
- start -
-
-

- Служба запущена. -

-
-
- stop -
-
-

- Служба остановлена. -

-
-
- restart -
-
-

- Служба остановлена и снова запущена. -

-
-
- reload -
-
-

- Конфигурация сервиса обновлена. Используется после - изменения файла конфигурации службы, когда перезапуск не - требуется. -

-
-
- status -
-
-

- Сообщает, запущена ли служба и с какими ИД процессов. -

-
-
-
-

- Не стесняйтесь изменять работу процесса загрузки (в конце концов, - это ваша собственная система LFS). Приведенные здесь файлы - являются примером того, как это можно сделать. -

-
-
-
-

- 9.6.3. Загрузочные скрипты Udev -

-

- Инит-скрипт /etc/rc.d/init.d/udev - запускает udevd, - который инициализирует все устройства "холодного подключения", - которые уже были созданы ядром, и ожидает выполнения всех правил. - Скрипт также отключает обработчик uevent по умолчанию /sbin/hotplug. Это сделано потому, что ядру - больше не нужно обращаться к внешнему бинарному файлу. Вместо этого - udevd будет - прослушивать сокет netlink на предмет событий, которые вызывает - ядро. -

-

- Инит-скрипт /etc/rc.d/init.d/udev_retry - решает задачу повторного запуска событий для подсистем, правила - которых могут зависеть от файловых систем, которые не монтируются - до запуска скрипта mountfs (в частности, его - вызывают /usr и /var). Этот скрипт запускается после скрипта - mountfs, поэтому эти - правила (при повторном запуске) должны сработать во второй раз. Он - настраивается в файле /etc/sysconfig/udev_retry; любые слова в этом - файле, кроме комментариев, являются именами подсистем, которые - запускаются при повторной попытке. Чтобы найти подсистему - устройства, используйте udevadm info - --attribute-walk <device>, где <device> - - это абсолютный путь в /dev или /sys, такой как /dev/sr0 или - /sys/class/rtc. -

-

- Для получения информации о загрузке модуля ядра и udev смотрите - Раздел 9.3.2.3, «Загрузка - модуля». -

-
-
-

- 9.6.4. Настройка - системного времени -

-

- Скрипт setclock - считывает время с аппаратных часов, также известных как часы BIOS - или CMOS (Complementary Metal Oxide Semiconductor). Если на - аппаратных часах установлено время UTC (всемирное скоординированное - время), этот скрипт преобразует полученное значение в локальное - время, используя файл /etc/localtime - (который сообщает программе hwclock, в какой временной зоне - находится пользователь). Невозможно определить, установленное на - аппаратных часах время UTC или же локальное, поэтому необходимо - указать его вручную. -

-

- Скрипт setclock - запускается системой udev при - загрузке, когда ядро определяет возможности аппаратного - обеспечения. Также его можно запустить вручную с параметром stop, - чтобы сохранить системное время в аппаратные часы CMOS. -

-

- Если Вы не можете вспомнить, установлено на аппаратных часах UTC - или локальное время, запустите команду hwclock --localtime --show. Она - отобразит текущее время в соответствии с аппаратными часами. Если - оно совпадает с тем, что показывают ваши настенные/наручные часы, - значит на часах CMOS установлено локальное время. Если вывод - hwclock не совпадает - с локальным временем, скорее всего, это UTC. Проверьте это, добавив - или вычитая нужное количество часов для вашего часового пояса ко - времени, отображаемому hwclock. Например, если ваш - часовой пояс это MSK, также известный как GMT +0300, то нужно - вычесть три часа из локального времени. -

-

- Измените значение переменной UTC ниже на - 0 (ноль), если на - аппаратных часах установлено НЕ UTC. -

-

- Создайте новый файл /etc/sysconfig/clock выполнив: -

-
cat > /etc/sysconfig/clock << "EOF"
-# 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
-EOF
-

- Хороший совет, объясняющий, как обращаться с временем в LFS, - доступен по адресу - https://mirror.linuxfromscratch.ru/hints/downloads/files/time.txt. - Там объясняются такие вопросы, как часовые пояса, UTC и переменная - окружения TZ. -

-
- [Примечание] -

- Примечание -

-

- Параметры CLOCKPARAMS и UTC также могут быть указаны в файле - /etc/sysconfig/rc.site. -

-
-
-
-

- 9.6.5. - Настройка консоли Linux -

-

- Эта секция описывает настройку скрипта console, который устанавливает - раскладку клавиатуры, шрифт консоли и уровень подробности - информации, выводимой ядром на консоль. Если Вы не планируете - использовать символы, не соответствующие стандарту ASCII (например, - знак копирайта, символы фунта и евро), и собираетесь печатать - только в английской раскладке, то можете пропустить большую часть - секции. Без файла конфигурации (или эквивалентных настроек в - rc.site), скрипт console не будет ничего делать. -

-

- Скрипт console - считывает конфигурацию из файла /etc/sysconfig/console. Решите для себя, какую - раскладку клавиатуры и какой шрифт намерены использовать. В этом - также могут помочь различные HOWTO для конкретных языков; смотрите - https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. - Если вы все еще сомневаетесь, посмотрите в каталогах /usr/share/keymaps и /usr/share/consolefonts допустимые раскладки и - экранные шрифты. Прочтите справочные страницы loadkeys(1) и - setfont(8), чтобы - определить правильные аргументы для этих программ. -

-

- Файл /etc/sysconfig/console должен - содержать строки вида: ПЕРЕМЕННАЯ=значение. Допустимы следующие переменные: -

-
-
-
- LOGLEVEL -
-
-

- Эта переменная задает уровень подробности сообщений, - посылаемых ядром на системную консоль. Значение этой - переменной передается в качестве аргумента утилите - dmesg -n. - Допустимы уровни от 1(нет - сообщений) до 8. По умолчанию - 7, что является довольно - подробным. -

-
-
- KEYMAP -
-
-

- Эта переменная указывает аргументы для программы loadkeys, обычно это имя - загружаемой раскладки, например, it. Если эта переменная не установлена, - загрузочный скрипт не будет запускать программу loadkeys, и - будет использоваться раскладка по умолчанию. Обратите - внимание, что некоторые раскладки имеют несколько версий с - одним и тем же именем (cz и его варианты в qwerty/ и qwertz/, - es в olpc/ и qwerty/ и trf в fgGIod/ и qwerty/). В этих - случаях также следует указать родительский каталог (например, - qwerty/es), чтобы обеспечить загрузку правильной раскладки. -

-
-
- KEYMAP_CORRECTIONS -
-
-

- Эта (крайне редко используемая) переменная задает аргументы - для второго вызова программы loadkeys. Она полезна, если - стандартная раскладка вас не совсем устраивает и необходимо - внести небольшую корректировку. Например, чтобы добавить - символ евро в раскладку, которая его не содержит, присвойте - этой переменной значение euro2. -

-
-
- FONT -
-
-

- Эта переменная определяет аргументы для программы - setfont. Обычно - она включает в себя имя шрифта -m и имя загружаемой таблицы символов. - Например, чтобы загрузить шрифт «lat1-16» вместе с - таблицей символов «8859-1» (подходит для США), установите - эту переменную в lat1-16 -m - 8859-1. В режиме UTF-8 ядро использует таблицу - символов для преобразования 8-битных кодов клавиш в UTF-8, - поэтому аргумент параметра "-m" должен быть установлен на - кодировку соответствующих кодов клавиш в раскладке. -

-
-
- UNICODE -
-
-

- Присвойте этой переменной значение 1, yes или - true, чтобы переключить консоль - в режим UTF-8. Это полезно при использовании локали, - основанной на UTF-8, и не рекомендуется в иных случаях. -

-
-
- LEGACY_CHARSET -
-
-

- Для многих раскладок клавиатуры в пакете Kbd не существует - готового Unicode-варианта. Скрипт console будет на лету - конвертировать имеющуюся раскладку в UTF-8, если присвоить - этой переменной имя доступной не-UTF-8 раскладки. -

-
-
-
-

- Несколько примеров: -

-
-
    -
  • -

    - Мы будем использовать C.UTF-8 в - качестве локали для интерактивных сеансов в консоли Linux в - Раздел 9.7, «Настройка - системной локали,», поэтому нам следует установить - значение переменной UNICODE в - 1. Консольные шрифты, - поставляемые пакетом Kbd, - содержащие глифы для всех символов сообщений программы в - C.UTF-8 являются LatArCyrHeb*.psfu.gz, LatGrkCyr*.psfu.gz, Lat2-Terminus16.psfu.gz и pancyrillic.f16.psfu.gz из каталога - /usr/share/consolefonts (в - других поставляемых консольных шрифтах отсутствуют глифы - некоторых символов Unicode, таких как левые/правые кавычки и - английское тире). Поэтому установите один из них, например - Lat2-Terminus16.psfu.gz, в - качестве шрифта консоли по умолчанию: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -FONT="Lat2-Terminus16"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Для русскоязычных пользователей может подойти такой вариант: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="ruwin_alt_sh-UTF-8"
    -FONT="cyr-sun16"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
    - [Примечание] -

    - Примечание -

    -

    - Для поиска нужной раскладки, выполните команду: - find /usr/share/keymaps -type - f -

    -

    - ruwin_alt-UTF-8 - переключение - раскладки по Alt. -

    -

    - ruwin_alt_sh-UTF-8 - - переключение раскладки по Alt+Shift. -

    -

    - ruwin_cplk-UTF-8 - - переключение раскладки по Caps Lock. -

    -

    - ruwin_ct_sh-UTF-8 - - переключение раскладки по Ctrl+Shift. -

    -

    - ruwin_ctrl-UTF-8 - - переключение раскладки по Ctrl. -

    -

    - Посмотреть список доступных шрифтов можно с помощью - следующей команды: ls - /usr/share/consolefonts -

    -
    -
  • -
  • -

    - Для не-Unicode настройки необходимы только переменные KEYMAP - и FONT. Например, для польских пользователей может подойти - такой вариант: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -KEYMAP="pl2"
    -FONT="lat2a-16 -m 8859-2"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Как упоминалось выше, иногда бывает необходимо - подкорректировать раскладку. Следующий пример добавляет - символ евро к немецкой раскладке: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -KEYMAP="de-latin1"
    -KEYMAP_CORRECTIONS="euro2"
    -FONT="lat0-16 -m 8859-15"
    -UNICODE="1"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Ниже приведен пример с поддержкой Unicode для болгарского - языка, где существует стандартная раскладка UTF-8: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="bg_bds-utf8"
    -FONT="LatArCyrHeb-16"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Из-за использования 512-символьного шрифта LatArCyrHeb-16 в - предыдущем примере, яркие цвета больше не доступны в консоли - Linux, если используется фреймбуфер. Если Вы хотите - использовать яркие цвета без фреймбуфера и можете обходиться - без символов, не относящихся к вашему языку, тогда можно - использовать специфичный для вашего языка 256-символьный - шрифт, как показано ниже: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# Begin /etc/sysconfig/console
    -
    -UNICODE="1"
    -KEYMAP="bg_bds-utf8"
    -FONT="cyr-sun16"
    -
    -# End /etc/sysconfig/console
    -EOF
    -
  • -
  • -

    - Следующий пример демонстрирует автоматическое преобразование - раскладки из ISO-8859-15 в UTF-8 и включает "мертвые" клавиши - в режиме Unicode: -

    -
    cat > /etc/sysconfig/console << "EOF"
    -# 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
    -EOF
    -
  • -
  • -

    - Некоторые раскладки включают в себя "мертвые" клавиши (то - есть клавиши, нажатие которых само по себе не приводит к - появлению на экране символа, но которые влияют на символ, - генерируемый следующей клавишей) или определяют слияние - символов (например: «нажмите Ctrl+. A E чтобы получить Æ» в - раскладке по умолчанию). Linux-6.7.4 правильно интерпретирует - "мертвые" клавиши и слияния, только когда исходные символы - имеют 8-битные коды. Эта особенность не влияет на раскладки - для европейских языков, поскольку в них "сливаются" два - ASCII-символа или добавляются подчеркивания к неподчеркнутым - ASCII-символам. Однако, в режиме UTF-8 могут быть проблемы, - например, для греческого языка, когда необходимо подчеркнуть - символ α. Решением в этой ситуации будет отказ от - использования UTF-8 или установка графической системы X - Window, не имеющих подобных ограничений. -

    -
  • -
  • -

    - Для китайского, японского, корейского и некоторых других - языков невозможно настроить консоль Linux так, чтобы она - отображала все необходимые символы. Пользователи, которым - требуются эти языки, должны установить систему X Window, - шрифты, покрывающие необходимый диапазон символов, и - правильный метод ввода (например, SCIM поддерживает большое - число разнообразных языков). -

    -
  • -
-
-
- [Примечание] -

- Примечание -

-

- Файл /etc/sysconfig/console - управляет только локализацией текстовой консоли Linux. Он никак - не влияет на настройки раскладки клавиатуры и шрифтов в системе X - Window, в сессиях SSH или на последовательном терминале. В этих - ситуациях ограничения, описанные в двух расположенных выше - абзацах, не применяются. -

-
-
-
-

- 9.6.6. Создание файлов при загрузке -

-

- Иногда необходимо создавать файлы во время загрузки. Например, - часто требуется каталог /tmp/.ICE-unix . Это можно сделать, создав запись - в скрипте /etc/sysconfig/createfiles. - Формат этого файла описан в комментариях файла конфигурации по - умолчанию. -

-
-
-

- 9.6.7. - Настройка скрипта Sysklogd -

-

- Скрипт sysklogd вызывает программу - syslogd как часть - инициализации System V. Параметр -m - 0 отключает периодическую (по умолчанию - каждые 20 - минут) запись временных меток в файлы журналов, производимую - syslogd. Если Вам - необходимо включить периодическую запись временных меток, - отредактируйте файл /etc/sysconfig/rc.site и присвойте переменной - SYSKLOGD_PARMS требуемое значение. Например, чтобы сбросить все - параметры, присвойте переменной пустое значение: -

-
SYSKLOGD_PARMS=
-

- Дополнительные параметры смотрите в man syslogd. -

-
-
-

- 9.6.8. Файл - rc.site -

-

- Необязательный файл /etc/sysconfig/rc.site содержит настройки, - автоматически применяемые всеми загрузочными скриптами. Этот файл - может содержать парамеры, обычно указываемые в файлах hostname, console и - clock из каталога /etc/sysconfig/. Если значение одной и той же - переменной присваивается, как в одном из этих файлов, так и в - rc.site, приоритет имеет значение из - специализированного файла. -

-

- rc.site также содержит параметры, - которые могут настраивать другие аспекты процесса загрузки. - Установка переменной IPROMPT позволит выборочно запускать - загрузочные скрипты. Другие параметры описаны в комментариях к - файлу. Версия файла по умолчанию выглядит следующим образом: -

-
# 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=
-
-
-
-

- 9.6.8.1. Настройка скриптов загрузки и завершения работы -

-

- Загрузочные скрипты LFS загружают и завершают работу системы - довольно эффективно, но есть несколько настроек, которые вы - можете внести в файл rc.site, чтобы еще больше повысить скорость - и настроить сообщения в соответствии с вашими предпочтениями. - Чтобы сделать это, измените настройки в приведенном выше файле - /etc/sysconfig/rc.site. -

-
-
    -
  • -

    - Во время работы загрузочного скрипта udev происходит вызов udev settle, для - завершения которого требуется некоторое время. Это время - может и не потребоваться в зависимости от конфигурации - устройств в системе. Если у вас имеются только простые - разделы и одна сетевая карта, процессу загрузки, вероятно, - не нужно будет ждать завершения работы этой команды. Чтобы - пропустить её, установите переменную OMIT_UDEV_SETTLE=y. -

    -
  • -
  • -

    - Скрипт загрузки udev_retry - также по умолчанию запускает udev settle. Команда - необходима только тогда, когда каталог /var смонтирован в отдельный раздел. Это - связано с тем, что часам нужен доступ к файлу /var/lib/hwclock/adjtime. Для других - настроек также может потребоваться дождаться завершения - udev, но в большинстве случаев в этом нет необходимости. - Пропустите команду, установив переменную - OMIT_UDEV_RETRY_SETTLE=y. -

    -
  • -
  • -

    - По умолчанию проверка файловой системы выполняется в - "тихом" режиме. Это может показаться задержкой во время - процесса загрузки. Чтобы включить вывод fsck, установите - переменную VERBOSE_FSCK=y. -

    -
  • -
  • -

    - При перезагрузке вы, возможно, захотите полностью - пропустить проверку файловой системы, fsck. Чтобы сделать это, - либо создайте файл /fastboot, - либо перезагрузите систему командой /sbin/shutdown -f -r now. - С другой стороны, вы можете принудительно проверить все - файловые системы, создав /forcefsck или запустив shutdown с параметром - -F вместо - -f. -

    -

    - Установка переменной FASTBOOT=y отключит fsck во время процесса - загрузки до тех пор, пока она не будет удалена. Это не - рекомендуется делать на постоянной основе. -

    -
  • -
  • -

    - Обычно все файлы в каталоге /tmp удаляются во время загрузки. В - зависимости от количества имеющихся файлов или каталогов - это может привести к заметной задержке в процессе загрузки. - Чтобы пропустить удаление этих файлов, установите - переменную SKIPTMPCLEAN=y. -

    -
  • -
  • -

    - Во время завершения работы, init отправляет сигнал - TERM каждой запущенной программе (например, agetty), - ожидает установленное время (по умолчанию 3 секунды), затем - посылает каждому процессу сигнал завершения(KILL) и снова - ждёт. Этот процесс повторяется в сценарии sendsignals для любых - процессов, которые не завершаются их собственными - скриптами. Задержка для init может быть - установлена путем передачи параметра. Например, чтобы - устранить задержку в init, передайте параметр - -t0 при выключении или перезагрузке (например, /sbin/shutdown -t0 -r - now). Задержку для скрипта sendsignals можно - пропустить, установив параметр KILLDELAY=0. -

    -
  • -
-
-
-
-
- - - -- cgit v1.2.3