WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
В этой главе Вы настроите загрузочные скрипты, установленные в главе 6.
Большая их часть не нуждается в модификации, но некоторые надо подправить в
соответствии с Вашей системой. Linux использует специальные возможности загрузки, называемые SysVinit.
Они основаны на концепции уровней запуска (runlevels). Они могут
сильно отличаться на различных системах, и я не могу сказать, что скрипты из
<подставьте сюда имя любого дистрибутива> будут работать в LFS. У LFS
свой подход к этим скриптам, но они также соответствуют стандартам. SysVinit (с этого момента я буду называть его init) работает,
используя схему уровней запуска. Всего есть семь (от 0 до 6) уровней запуска
(точнее, есть больше уровней запуска, но они предназначены для специальных
целей и обычно не используются). Документация по init содержит более полную
информацию по этому вопросу, и каждый из них сообщает компьютеру, что ему
делать при запуске соответствующего уровня. Уровень запуска по умолчанию 3.
Вот описание разных уровней загрузки и их назначение: 0: выключение компьютера, Для изменения уровня запуска используется команда init
<runlevel>, где <runlevel> нужный уровень запуска.
Например, для перезагрузки компьютера можно использовать команду init 6. Это
и делает команда reboot, а команда halt является аналогом init 0. Есть ряд каталогов в /etc/rc.d, которые выглядят как rc?.d, где ? является
уровнем запуска, и rcsysinit.d, которые содержат ряд символических ссылок.
Часть из них начинается с K, другие начинаются с S, затем идут две цифры
уровня инициализации. K означает остановку (kill) сервиса, а S запуск
(start). Число означает порядок, в котором запускаются скрипты, от 00 до 99:
чем меньше номер, тем раньше вызывается скрипт. Когда init переключается на
другой уровень загрузки, одни сервисы останавливаются, другие запускаются.
Сами скрипты расположены в /etc/rc.d/init.d. Они проделывают всю работу, а
ссылки только указывают на них. Ссылки остановки и запуска указывают на один
и тот же скрипт в /etc/rc.d/init.d. Это возможно благодаря тому, что скрипты
запукаются с различными параметрами, такими как start, stop, restart, reload,
status. Когда обрабатывается ссылка K, то соответствующий скрипт вызывается с
аргументом stop. Если же обрабатывается ссылка S, то тот же самый скрипт
вызывается с параметром start. Но есть одно исключение. Ссылки, начинающиеся с S в каталогах rc0.d и
rc6.d никогда не выполняются для запуска скрипта с параметром start. Они
вызываются только с параметром stop для остановки чего-либо. Это
понятно потому, что когда Вы собираетесь перезагрузить или отключить систему,
Вам не надо ничего запускать, а только остановить систему. Вот описание параметров, которые можно передавать скриптам запуска: Вы спокойно можете настраивать и изменять процесс загрузки (после
установки системы LFS). Файлы, описываемые здесь, являются только примерами
и, возможно, Вы сделаете их лучше. Этот скрипт setclock считывает время с внутренних часов Вашего компьютера
(также известных как часы CMOS или BIOS) и конвертирует его в локальное
время, используя файл /etc/localtime (если внутренние часы
установлены в GMT) или не делает этого (если они установлены в местное
время). Нет способа автоматического определения того, установлены ли
внутренние часы Вашего компьютера в GMT или нет, поэтому Вам надо будет
это настроить самим. Установите переменную UTC в 0 (нуль), если Ваши
системные часы не установлены в GMT в нижеописанном файле. Создайте файл /etc/sysconfig/clock запуском команды: Вы можете теперь посмотреть очень хорошие советы по настройке времени в
системе LFS на
http://www.linuxfromscratch.org/hints/downloads/files/time.txt. Они
содержат информацию по временным зонам, UTC и переменной окружения TZ. Если Вы решили компилировать файл раскладки клавиатуры внутри ядра в конце
главы 6, то, строго говоря, нет надобности запускать
скрипт loadkeys, поскольку ядро само установит нужную раскладку для Вас. Вы
можете все равно запускать его, если хотите. Это может пригодиться, если Вы
запускаете разные ядра и забыли или не хотите компилировать все ядра
со встроеной раскладкой. Если Вы решили, что Вам не нужен этот скрипт или просто не хотите его
использовать, то удалите ссылку /etc/rc.d/rcsysinit.d/S70loadkeys.
Скрипт sysklogd вызывает программу syslogd с
параметром -m 0. Этот параметр отключает периодическую отметку
времени, которую syslogd по умолчанию пишет в лог-файл каждые 20 минут. Если
Вы хотите использовать эту метку, то исправьте соответствующим образом скрипт
sysklogd. Смотрите man syslogd для сбора
более полной информации. Часть скрипта localnet устанавливает имя системы. Для этого надо настроить
файл /etc/sysconfig/network. Создайте файл /etc/sysconfig/network и укажите имя системы запуском: Здесь "lfs" надо заменить на желаемое имя компьютера для вызова. Вам не
надо здесь вводить FQDN (Fully Qualified Domain Name, полное доменное имя).
Эту информацию Вы позже укажете в файле /etc/hosts. Если Вы хотите настроить сетевую карту, надо определить IP-адреса, FQDN и
возможные псевдонимы в файле /etc/hosts. Его синтаксис следующий: Вы должны убедиться, что IP-адреса в частной сети соответствуют
допустимым. Корректными значениями являются: Корректным IP-адресом может быть 192.168.1.1. Корректным FQDN для этого
IP может быть www.linuxfromscratch.org. Если Вы не собираетесь использовать сетевую карту, просто надо указать
FQDN. Это важно для правильной работы ряда важных программ. Если сетевая карта не будет настраиваться, создайте файл
/etc/hosts запуском: Если собираетесь настраивать сетевую карту, то создайте файл
/etc/hosts запуском: Само собой, 192.168.1.1 и < HOSTNAME>.mydomain.org надо заменить на
Ваши варианты (как Вам нравится, или как установил системный администратор).
Этот раздел нужен только в том случае, если Вы собираетесь
настраивать сетевую карту. Если у Вас таковая отсутствует, Вам не надо создавать файлы конфигурации
сетевой карты. В этом случае вам надо удалить все ссылки network изо
всех каталогов с уровнями запуска (/etc/rc.d/rc*.d). Если Вы подключены к локальной сети, то Вам надо установить шлюз по
умолчанию для этой машины. Это делается добавлением соответствующих
параметров в файл /etc/sysconfig/network запуском следующей команды: Значения GATEWAY и GATEWAY_IF надо заменить на соответствующие настройкам
Вашей сети. GATEWAY содержит IP-адрес шлюза по умолчанию, а GATEWAY_IF
содержит вид используемого шлюзом интерфейса. Какие из интерфейсов будут запущены или остановлены скриптом network
описывается в каталоге /etc/sysconfig/network-devices. Этот каталог содержит
файлы вида ifconfig.xyz, где xyz является именем сетевого интерфейса
(например, eth0 или eth0:1) Если Вы решите переименовать или переместить каталог
/etc/sysconfig/network-devices, Вам надо будет отредактировать
соответствующим образом файл /etc/sysconfig/rc и обновить network_devices в
соответствии с новыми путями. Теперь Вам надо создать файлы в этом каталоге. Следующая команда создаст
пример файла ifconfig.eth0: Само собой, значения переменных надо будет изменить на правильные для
Вашей системы. Если переменная ONBOOT установлена в yes, скрипт network
запустит этот интерфейс при загрузке системы. Если же будет установлено
что-либо другое, то этот интерфейс будет проигнорирован скриптом.
Глава 7. Установка скриптов загрузки
Вступление
Как происходит загрузка с помощью этих скриптов?
1: однопользовательский режим,
2: многопользовательский режим без поддержки сети,
3: многопользовательский режим с поддержкой сети,
4: зарезервирован или используется как 3,
5: тоже самое, что и 4, он обычно используется для графического входа в
систему (например, xdm из X, xdm или kdm из KDE),
6: перезагрузка компьютера.Настройка скрипта setclock
cat > /etc/sysconfig/clock << "EOF"
# Begin /etc/sysconfig/clock
UTC=1
# End /etc/sysconfig/clock
EOF
Нужен ли мне скрипт loadkeys?
Настройка скрипта sysklogd
Настройка скрипта localnet
echo "HOSTNAME=lfs" > /etc/sysconfig/network
Создание файла /etc/hosts
<IP address> myhost.mydomain.org aliases
Классы сетей
A 10.0.0.0
B 172.16.0.0 до 172.31.0.0
C 192.168.0.0 до 192.168.255.0
cat > /etc/hosts << "EOF"
# Begin /etc/hosts (no network card version)
127.0.0.1 <HOSTNAME>.mydomain.com <HOSTNAME> localhost
# End /etc/hosts (no network card version)
EOF
cat > /etc/hosts << "EOF"
# Begin /etc/hosts (network card version)
127.0.0.1 localhost.localdomain localhost
192.168.1.1 <HOSTNAME>.mydomain.org <HOSTNAME>
# End /etc/hosts (network card version)
EOF
Настройка скрипта network
Настройка шлюза по умолчанию
cat >> /etc/sysconfig/network << "EOF"
GATEWAY=192.168.1.2
GATEWAY_IF=eth0
EOF
Создание конфигурационных файлов сетевого интерфейса
cat > /etc/sysconfig/network-devices/ifconfig.eth0 << "EOF"
ONBOOT=yes
IP=192.168.1.1
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
EOF
Найди своих коллег! |