Init
Организация загрузки в разных системах сделана по разному. Это было одной из причин создания reaver linux.
Как известно есть два основных метода организации загрузочных скриптов - SYS V и BSD. Первый можно узнать
по кататогам соответствующим ранлевелу и сслыками в них на файлы в ../init.d . Второй метод можно узнать помножеству
файлов rc.* .
У каждого метода есть свои достоинства и недостатки. SYS V - это скрипты которые обычно сложны для новичнов,
и по структуре напоминают программы, обычно даже трудно найти основную строчку. Но у них есть есть единая база -
/etc/sysconfig , где хранятся все настройки, который подставляются в скрипты. В BSD нету такой базы , и эти скрипты -
обычно просто последовательность команд. Это удобно при написании, но при внесении изменений лень обновлять все скрипты.
Я это учел с создал файл rc.vars со всем переменными для всех случаев. Вот пример этого файла
# gpm settings
RC_GPM_MOUSEDEVICE=/dev/input/mice
RC_GPM_MOUSEPROTOCOL=imps2
# network settings
Очень удобно. При сохранении структруры файла с принципа создания имен переменных можно писать конфигураторы.
Я думаю не надо пояснять как формируются имена переменных.
На этапе загрузки модно сделать много полезных вещей - устранить проблемы с модулями, например. Но самое главное
проблемы с файловой системой - это очень важно - почти везде предлагают в ручную запустить программы проверки фаловой
системы и после этого идет перезагрузка. Вот мой способ - создается дополнительный раздел (метров 500) для дополнительной
базоваой системы после этого этот раздел монтригуется как корневой , в нем можно выполнить проверку а потом вернуться в
нормальный раздел. Можно сделать и попроще - монтировать образ ФС как корень, и с него выполнять проверку или прямо в
initrd. Кстати в initrd BSD вариант как раз идеально подходит - если ошибки - запускается шелл для проверки в ручную.
А теперь немного о веселом - наверно все надоели скучные скрипты загрузки - это можно исправить, вот мой пример:
/etc/init/rc.2
#!/bin/sh
echo "Мы на втором этаже..."
echo "Здесь у нас живут серверовы..."
echo "Вот выходит апач серверов..."
/usr/local/apache/bin/apachctl start
echo "Вот выходит фтпд серверов..."
/usr/sbin/proftpd
echo "Вот выходит иасиди серверова..."
/usr/bin/iacd -d
echo "Вот выходит намед серверов..."
/usr/sbin/named
Даже с пояснениями, что мы на втором ранлевеле и что он предназначен для серверов.
И еще про загрузку : кноппикс - хорошая вешь но запуск с диска - вещь слегка тормозная, да и при периодическом
использовании все это надоедает. Вот что надо сделать : сделать образ диска и загрузочной дискеты - и слегка модифицировать
initrd на дискете чтобы вместо поиска диска монтировал образ. Потом добывать образ дискеты как загрузочный образ в загрузчик.
Загрузка системы - вечное поле для экспериментов. Хотя все сводится к простому запуску программ.
|