diff options
author | Sn4il <sn4il@thedroth.rocks> | 2024-09-02 15:54:35 +0300 |
---|---|---|
committer | Sn4il <sn4il@thedroth.rocks> | 2024-09-02 15:54:35 +0300 |
commit | 2203e654b389586650d553251b04544a34f189bf (patch) | |
tree | 0125b69fc70a2506c53158ba2020993a5b8985b7 /lfs-12.1-sysv/chapter09/usage.html | |
parent | 200d528e55ca954d37769f4d143f10c9519b00e7 (diff) | |
download | sn4il-site-2203e654b389586650d553251b04544a34f189bf.tar.gz sn4il-site-2203e654b389586650d553251b04544a34f189bf.zip |
LFS 12.2
Diffstat (limited to 'lfs-12.1-sysv/chapter09/usage.html')
-rw-r--r-- | lfs-12.1-sysv/chapter09/usage.html | 1081 |
1 files changed, 0 insertions, 1081 deletions
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> |