Голосовать будем списком
Остановимся на работе rc-файлов. Скажем, для перехода на третий уровень при старте надо выполнить последовательно /etc/rc.d/rc.sysinit, , /sbin/update, а затем запустить /sbin/mingetty на всех эмуляторах консоли. Каковы их функции? Файл rc.sysinit выполняет ряд начальных действий, независимых от уровня. Вот точный порядок этих действий (естественно, часть из них выполняется опционно):
- вывод баннера;
- чтение конфигурационных данных из /etc/sysconfig/network;
- установка системных параметров из /etc/sysctl.conf;
- установка часов по параметрам из /etc/sysconfig/clock;
- установка параметров клавиатуры консоли с помощью loadkeys в соответствии с /etc/sysconfig/console/default.kmap или /etc/sysconfig/keyboard;
- загрузка системного шрифта с именем из /etc/sysconfig/i18n и файлом с расширением .pcf.gz или .pcf из каталогов /etc/sysconfig/console или /usr/lib/kbd/consolefonts;
- активация области подкачки;
- установка имени хоста;
- установка имени домена NIS;
- запуск fsck (см. ниже) для корневой системы (если в процессе fsck обнаружены серьезные проблемы, то выполняется немедленная перезагрузка);
- старт PNP-устройств в соответствии с /etc/isapnp.conf;
- перемонтирование корневой файловой системы в режиме записи (поскольку вопрос о том, что делать с системой, доступной только на чтение, типичен, то выполняющую это действие команду стоит привести явно: );
- перестроение таблицы монтирования /etc/mtab;
- проверка квот для корневой файловой системы;
- проверка необходимости загрузки модулей, нахождение взаимозависимостей, загрузка их и конфигурирование;
- дополнительная подгрузка из /etc/rc.d/rc.modules;
- подключение RAID-устройств;
- запуск fsck для других систем;
- монтирование локальных файловых систем;
- запуск ряда конфигурирующих процедур (выполняется при наличии файла /.unconfigured);
- включение механизма квот;
- удаление флаговых файлов загрузки;
- освобождение каталогов /var/lock и /var/run от мусора;
- очистка файлов /var/run/utmp и /var/run/utmpx;
- удаление lock-файлов из /tmp;
- включение подкачки;
- инициализация последовательных устройств через /etc/rc.d/rc.serial;
- подгрузка модулей для SCSI-накопителя на магнитных лентах;
- установка однопроцессорного (UP) или многопроцессорного (SMP) режима и регенерация в соответствии с этим файла /boot/kernel.h;
- установка корректной ссылки /boot/System.map;
- проверка использования интерактивного режима (создание файла /var/run/confirm).
Запуск fsck может быть принудительно отключен с целью уменьшения времени рестарта при наличии файла /fastboot, а также включен при наличии /forcefsck; можно дополнительные опции (/fsckoptions). Появление этих файлов может быть результатом выполнения shutdown с соответствующими ключами: -f (пропуск fsck при старте); -F (принудительный fsck при старте).
Обратили ли вы внимание на то, что присутствует два раза? В действительности, дважды делается попытка выполнить одну и ту же команду: swapon -a. Зачем? Из комментариев можно вычитать, что первая команда присоединяет к области подкачки разделы, а вторая - файлы. Так как команда одна и та же, мы, конечно, не поверим комментариям и попробуем проверить их опытным путем.
Первым делом создаем файл подкачки на отдельно смонтированной системе:
root@localhost /root]# dd if=/dev/
zero bs=1k count=2048 of=/r6/myswap
2048+0 блоков прочитано
2048+0 блоков записано
[root@localhost /root]# mkswap
/r6/myswap 2048
Setting up swapspace version 0,
size = 2093056 bytes
[root@localhost /root]#
Добавляем строчку в /etc/fstab:
/r6/myswap swap swap
defaults 0 0
Проверяем результат после перезагрузки, запрашиваем текущее использование устройств подкачки:
[root@localhost /root]# swapon -s
Filename Type Size
Used Priority
/dev/hda5 partition
104380 0 -1
/r6/myswap file 2044
0 -2
[root@localhost /root]#
Если посмотреть информацию о перезагрузке, обнаружится, что, конечно, swapon попытается подключить /r6/myswap два раза. Первый раз (/r6 еще не смонтирована) будет сообщение об ошибке (и даже FAILED), хотя подключение раздела происходит. Второй раз все проходит нормально (благо еще и диагностика в /dev/null). Обратите внимание на то, что файл для подкачки должен существовать (как-то мне попалась команда mkswap, которая его заполняла, но не создавала) и при этом не содержать (с чего бы это?).
Sysctl позволяет зафиксировать ряд параметров и обеспечить (через /etc/sysctl.conf) их установку после перезагрузки. Вот как выглядел /etc/sysctl.conf сразу после инсталяции:
# Disables packet forwarding
net.ipv4.ip_forward = 0
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Disables automatic defragmentation
net.ipv4.ip_always_defrag = 0
# Disables the magic-sysrq key
kernel.sysrq = 0