Linux Boots

Как оказалось, существует не так много, чтобы процесс загрузки:

1. Загрузчик находит образ ядра на диске, загружает его в память и запускает его.
2. Ядро инициализации устройств и ИППП водителей.
3. Ядро монтирует корневую файловую систему.
4. Ядро начинает INIT Вызывается с графиком.
5. инициализации устанавливает остальные процессы в движении.
6. Последний процессы, которые инициализации начинается как часть последовательности загрузки позволяет войти в систему.

Определение каждом этапе процесса загрузки имеет неоценимое значение в установлении проблем с загрузкой и понимание системы в целом. Для начала, сосредоточиться на загрузчик, который является начальный экран или подскажут вам получить после компьютер не ИППП Power-On Self-Test, спрашивая какой операционной системе работать. После того как вы сделать выбор, загрузчик запускает ядро ​​Linux, Передача управления системой в ядро.

Существует Детальное обсуждение ядра в этой книге, из которой эта статья является отрывком. В данной статье рассматриваются стадии инициализации ядра, Этап, когда ядро ​​печатает кучу сообщений об аппаратных присутствует в системе. Ядро начинает инициализации только после того, как появится сообщение заявляя, что ядро ​​установлены Корневая файловая система:

VFS: Mounted корень (ext2 файловой системы) только для чтения.

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

ЗАМЕТКА : О Red Hat Linux, Инициализации сведению очевидно, особенно, потому что он "приветствует" вам "Red Hat Linux." Все сообщения после этого показать, успех или неудача в скобках в правой части экрана.

Большая часть этой главы посвящена инициализации, потому что она является частью последовательности загрузки, где вы самый управления.
инициализации

Существует ничего особенного инициализации. Это программное обеспечение, как и любой другой на Linux системе, и вы найдете его в / sbin, а также другие исполняемые файлы системы. Основной целью инициализации является запуск и остановка других программ в определенной последовательности. Все, что нужно знать, как работает эта последовательность.

Существуют различные вариации мало, но большинство дистрибутивов Linux используют стиль System V обсуждается здесь. Некоторые дистрибутивы используют более простой вариант, который напоминает BSD инициализации, но вы вряд ли столкнетесь этом.

Уровни

В любой момент времени на Linux системы, некоторые базовый набор процессов работает. Это состояние машины называют ее уровень исполнения, и она обозначается числом от 0 через 6. Система проводит большую часть времени ИППП в одном уровне запуска. Однако, когда вы закрываете машину вниз, инициализации переходит на другой уровень, с тем чтобы прекратить системы услуг в упорядоченной году мода и сказать ядра остановить. Еще один уровень запуска для однопользовательского режима, обсудим позже.

Самый простой способ получить ручку на уровни является изучение инициализации файла конфигурации / и т.д. / Inittab. Найдите строку вроде следующего:

ID: 5: initdefault:

То, что эта линия означает, что по умолчанию уровень запуска по системе 5. Все строки в файле Inittab воспользоваться этой формой, с четырех полей, разделенных двоеточиями, происходящие в следующем порядке:
# Уникальный идентификатор (короткие строки, такие как идентификатор в предыдущем примере)
# Соответствующий номер уровня запуска (ы)
# Инициализации, которые должны принять меры (в предыдущем примере, действие установить по умолчанию уровень для 5)
# Команда для выполнения (по желанию)

Существует нет команды для выполнения в предыдущем примере initdefault Поскольку команда не имеет смысла в контексте установки по умолчанию уровень запуска. Посмотрите чуть дальше в Inittab, пока не увидите такую ​​строку:

l5: 5: подождите :/ т.д. / rc.d / RC 5

Эта строка запускает большую часть конфигурации системы и услуги через * гс. Init.d D и каталоги. Что вы можете видеть инициализации установлен, чтобы выполнить команду под названием / и т.д. / rc.d / RC 5 Когда в уровень запуска 5. Ожидание действий рассказывает Когда и каким инициализации запускает команду: запустить RC 5 при входе в уровень запуска 5 один раз, а затем ждать эту команду, чтобы закончить, прежде чем делать что-либо еще.

Есть несколько различных действий в дополнение к initdefault и ждать, особенно касающиеся управления питанием и Inittab (5) страницу руководства расскажет вам все о них. Те, что вы, скорее всего, столкнутся объясняется в следующих разделах.

респаун

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

1: 2345: респаун :/ sbin / mingetty tty1

Getty программы обеспечивают вход подсказки. В предыдущей линии для первой виртуальной консоли (/ Dev / tty1), который вы видите при нажатии ALT или Ctrl-Alt-F1 F1. Респаун действие приносит приглашение для входа обратно после выхода из системы.

ctrlaltdel

Ctrlaltdel контроля действий, что делает система при нажатии Control-Alt-Delete на виртуальной консоли. На большинстве систем, это своего рода перезагрузка команды, используя команду остановки.

SYSINIT

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

Как Процессы в уровни начала

Теперь Вы готовы узнать, как инициализации запускает систему услуг, только перед она позволяет войти в систему. Напомним, это Inittab линии от ранее:

l5: 5: подождите :/ т.д. / rc.d / RC 5

Эта небольшая линия вызывает много других программ. RC означает пробег команды, и вы будете слышать, как люди относятся к командам, как скрипты, программы или услуги. Итак, где находятся эти команды, так или иначе?

Для уровень выполнения 5, в этом примере, команды, наверное, ни в / и т.д. / rc.d / rc5.d или / и т.д. / rc5.d. 1 уровня запуска используется rc1.d, уровень запуска 2 rc2.d использования, и так далее. Вы можете найти следующие пункты в rc5.d каталога:

S10sysklogd S20ppp S99gpm
S12kerneld S25netstd_nfs S99httpd
S15netstd_init S30netstd_misc S99rmnologin
S18netbase S45pcmcia S99sshd
S20acct S89atd
S20logoutd S89cron

RC 5 команда запускает программы в этом каталоге уровень запуска, выполнив команды следующие:

S10sysklogd дома
S12kerneld дома
S15netstd_init дома
S18netbase дома

S99sshd дома

Обратите внимание на начало аргумента в каждой команде. S в имени команды означает, что следует выполнить команду в стартовом режиме, а число (00 через 99) определяет, где в последовательности RC начинает команды.

* RC. D команды, как правило, запуска программ, скриптов в / sbin или / USR / sbin. Как правило, вы можете выяснить, что одна из команд на самом деле, глядя на сценарий с меньшим или пейджер другую программу.

Вы можете одном из этих сервисов начать с рук. Например, если вы хотите запустить сервер HTTPD Web программного обеспечения вручную, запустить S99httpd дома. Точно так же, если вы когда-нибудь понадобится, чтобы убить одну из услуг Когда машина включена, вы можете запустить команду в RC *. D каталог с остановкой аргумент (S99httpd остановки, например).

Некоторые * гс. D каталоги, которые содержат команды начинаются с K (для "убить" или в режиме остановки). В этом случае, RC выполняет команду с остановкой аргумент ВМЕСТО дома. Вы, скорее всего, столкнутся K команды в уровни, что выключить систему.

Добавление и удаление услуг

Если вы хотите добавить, удалить или изменить услуги в RC *. Каталоги D, необходимо, чтобы поближе взглянуть на файлы внутри. Длинный список раскрывает структуру, подобную этой:

lrwxrwxrwx. . . S10sysklogd -> .. / init.d / Sysklogd
lrwxrwxrwx. . . S12kerneld -> .. / init.d / Kerneld
lrwxrwxrwx. . . S15netstd_init -> .. / init.d / netstd_init
lrwxrwxrwx. . . S18netbase -> .. / init.d / NetBase

Команды в год RC *. D каталога на самом деле символические ссылки на файлы в каталоге init.d год, обычно в / и т.д. или / и т.д. / rc.d. Эти ссылки содержат Linux дистрибутивов, чтобы они могли использовать те же сценарии запуска для всех уровней выполнения. Это соглашение ни в коем случае требование, но это делает организационную часто немного легче.

Для предотвращения одной из команд в init.d, запуск в частности уровень запуска, можно подумать, удаления символической ссылки в соответствующем RC *. D каталога. Это работает, но если вы сделаете ошибку, и когда-нибудь понадобится, чтобы поставить ссылку на место, вы, возможно, трудно вспомнить точное название ссылки. Таким образом, вы не должны удалять ссылки в D * RC каталоги, но, скорее, добавить подчеркивание (_) к началу имени ссылки, как это.:

М. В. S99httpd _S99httpd

Во время загрузки RC игнорирует _S99httpd потому что она не начинается с S или K. Кроме того, первоначальное название все же очевидно, и у вас есть быстрый доступ к команде, если вы находитесь в крайнем случае и нужны, чтобы запустить его вручную.

Чтобы добавить службу, необходимо создать сценарий, как и другие init.d, а затем сделать символическую ссылку в правильном гс *. D каталога. Самый простой способ, чтобы написать сценарий заключается в изучении сценариев уже в init.d, сделать копию одного, что вы понимаете, и изменить копию.

При добавлении услуги, убедитесь, что вы выбираете тот год ПОДХОДЯЩУЮ, как в последовательности загрузки, чтобы запустить службу. Если служба начинается слишком рано, он может не работать, в связи с зависимостью от некоторых других услуг. Для не основных услуг, большинство системных администраторов предпочитают номера в 90s, после того как большинство услуг, которые камерой с системой.

Обычно Linux дистрибутивы поставляются с командой для включения и отключения услуги в * гс. D каталоги. Например, в Debian, команда обновление-rc.d, и в Red Hat Linux, команда Chkconfig. Графический интерфейс пользователя также доступны. Использование помогает этим программам держать запуска каталоги последовательной и помогает при обновлениях.

СОВЕТ: Один из самых распространенных проблем установки Linux является неправильно настроенный сервер году XFree86 Это кино и выключается, сделать систему неработоспособной на консоли. Чтобы остановить такое поведение, загрузиться в однопользовательском режиме и изменить свой уровень запуска уровня запуска или услуги. Посмотрите на то, содержащие XDM, GDM или KDM в вашем RC *. D каталогах, или / и т.д. / Inittab.

Управление инициализации

Иногда, вы должны дать инициализации немного удар, чтобы сказать ему, чтобы перейти уровни, перечитываю Inittab файл, или просто выключить систему. Потому инициализации всегда первый процесс в системе, ИППП идентификатор процесса всегда 1.

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

telinit 3

При переключении уровни, нач пытается убить все процессы, которые aren'ta в Inittab файл для нового запуска. Таким образом, вы должны быть осторожны об изменении уровней выполнения.

Когда вам нужно добавить или удалить паков работы или вносить другие изменения в файл Inittab, вы должны сообщить об инициализации изменения и привести к ее перечитать файл. Некоторые люди используют убить-HUP 1 сказать инициализации, чтобы сделать это. Этот традиционный метод работает на большинстве версий Unix, пока вы вводите его правильно. Тем не менее, вы также можете запустить эту команду telinit:

telinit д

Вы также можете использовать telinit с для переключения в однопользовательский режим.

закрытие

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

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

выключения-ч теперь

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

Процесс выключения занимает несколько секунд. Вы никогда не должны сбросить или выключить питание машины, на этом этапе.

В предыдущем примере, сейчас самое время, чтобы закрыться. Этот аргумент является обязательным, но есть много способов указать его. Если вы хотите, чтобы машина войдет когда-нибудь в будущем, одним из способов заключается в использовании + п, где п число ожидания выключения минут, прежде чем делать свою должна работать. Для других вариантов, посмотрите на отключение (8) страницу руководства.

Для того, чтобы система перезагрузится 10 минут, выполните следующую команду:

выключения-R + 10

В Linux, отключение уведомляет любому войти в систему, что машина идет вниз, но это мало реальной работы. Если вы задаете время другие, чем сейчас, отключение Вызывается создает файл / и т.д. / Nologin. Если этот файл отсутствует, система запрещает вход никому, кроме суперпользователя.

Когда время завершения работы системы, наконец, приходит, говорит инициализации выключения, чтобы перейти на уровень выполнения 0 для остановки и уровень выполнения 6 для перезагрузки. При инициализации уровня запуска входит 0 или 6, все следующие принимает подобные, которые вы можете убедиться, посмотрев на скриптов внутри rc0.d и rc6.d:

1. инициализации убивает каждого процесса, что он может (как это было при переключении на любой другой уровень запуска).

# Начальных rc0.d / rc6.d команды выполняются, система блокировки файлов на место и делать другие препараты для завершения работы.
# Следующий rc0.d / команды размонтировать все файловые системы других rc6.d чем корень.
# Далее rc0.d / команды перемонтировать корневую файловую систему rc6.d только для чтения.
# Еще более rc0.d / rc6.d команды записи в буфер на все, чтобы файловая система с синхронизацией программы.
# Окончательного rc0.d / rc6.d команд сообщить ядру, перезагрузить или остановить с перезагрузкой, остановка или отключение питания программа.

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

Оставить комментарий