Linux Boots

Както се оказва, там не е много за процеса на зареждане:

1. A зареждане Намира ядрото изображение на диска, тя зарежда в паметта, и тя започва.
2. Ядрото инициализиране на устройствата и НТИ драйвери.
3. Ядрото монтира корена файлова система.
4. Ядрото започва първоначален обади да планирате.
5. първоначален поставя останалата част от процесите в движение.
6. Последните процеси, които инициализиращите започва като част от обувка последователност ви позволяват да влезете.

Идентифициране на всеки етап от процеса на зареждане е безценен при определяне проблеми обувка и разбирането на системата като цяло. За да започнете, нулирате на зареждане на ОС, което има в началния екран или да ви подкани да получите след като компютърът прави ППИ властта на самодиагностика, пита коя операционна система да работи. След като се направи избор, на зареждането на ОС работи на Linux ядрото, подавайки контрол на системата на ядрото.

Има подробно обсъждане на ядрото никъде в тази книга, от която е откъс тази статия. Тази статия покрива етап ядрото инициализация, На етапа, когато ядрото отпечатва куп послания за хардуер присъства на системата. Ядрото започва първоначален точно след него показва съобщение обявява, че ядрото е монтиран корен файлова система:

VFS: Монтирани корен (ext2 файлова система) само за четене.

Скоро след това, ще видите съобщение за първоначален свързване, последвано от системни съобщения в стартирането на услугата, и най-накрая да получите покана за влизане на някакъв вид.

ЗАБЕЛЕЖКА На Red Hat Linux, Първоначален бележките е особено очевидна, както поради това "приветства" можете да "Red Hat Linux." Всички съобщения след това показват успех или провал в скоби в дясната страна на екрана.

Повечето от тази глава се занимава с първоначален, Защото това е, когато част от обувка последователност имате най-контрол.
първоначален

Няма нищо специално за първоначален. Това е график точно както всеки друг на Linux система, и ще го намерите в / SBIN заедно с други системни двоични файлове. Основната цел на първоначален е да се започне и да се спре други програми в определена последователност. Всичко, което трябва да знаете е как работи тази последователност.

Има няколко варианта, но повечето Линукс дистрибуции използват System V стил обсъжда тук. Някои дистрибуции използват по-проста версия, която прилича на BSD първоначален, но е малко вероятно да се сблъскат с този.

Нива на работа

Във всеки един момент на Linux система, набор от базови някои процеси се изпълнява. Това състояние на машината се нарича ITS ниво на работа, и тя е обозначена с номер от 0 6 сам. Системата прекарва повечето от времето ППИ в едно ниво на работа. Въпреки това, когато Изключете машината надолу, инициализиращите превключва на друг ниво на работа, за да завърши годината на системните услуги в реда си и да казва на ядрото да спре. Още един ниво на работа е само за еднократна употреба режим, обсъдени по-късно.

Най-лесният начин да се справя по нива на работа е да се проучи първоначален конфигурационен файл / и т.н. / inittab. Виж за ред, подобен на следния:

ID: 5: initdefault:

Тази линия означава, че по подразбиране ниво на работа на системата е 5. Всички линии във файла inittab вземе тази форма, с четири полета, разделени със запетая, срещащи се в следния ред:
# A уникален идентификатор (на кратко низ, като например ID в предишния пример)
# The приложимият брой ниво на работа (и)
# Инициализиращата, които трябва да се предприемат действия (в предишния пример, действието е да се определи нивото на работа по подразбиране да 5)
# A Команда за изпълнение (по избор)

Не е Команда за изпълнение в предишния пример initdefault Защото командата няма смисъл в контекста на създаването на по подразбиране ниво на работа. Погледни малко по-нататък в inittab, докато видите линия, подобен на този:

l5: 5: изчакайте :/ и т.н. / rc.d / RC 5

Тази линия задейства повечето от конфигурацията на системата и услуги чрез * RC. D и init.d директории. Можете да видите, че първоначално е настроен да изпълни команда, наречен / и т.н. / rc.d / RC 5 5 Когато в ниво на работа. Чакането действие казва кога и как първоначален работи командата: тече RC При въвеждане на ниво на работа 5 5 веднъж, след което изчакайте за тази команда, за да завърши, преди да правиш нещо друго.

Има няколко различни дейности в допълнение към initdefault и да чакат, особено свързани с управление на захранването, и inittab (5) справочната страница ви казва всичко за тях. Тези, които са най-вероятно да се сблъска Това е обяснено в следващите раздели.

респавуннати

The респавуннати действие предизвиква първоначален, за да изпълните командата, която следва, и ако командата завършва изпълнението, да го стартирате отново. Ти си вероятно ще видите нещо подобно на тази линия в inittab файла:

1: 2345: респавуннати :/ SBIN / mingetty tty1

Гети програми предоставят покани за влизане. Предходната линия е за първи виртуална конзола (/ сътрудничество / tty1), тази, която виждате, когато натиснете ALT или CONTROL-ALT-F1 F1. The респавуннати действие носи покана за влизане обратно след като излезете.

ctrlaltdel

На ctrlaltdel контроли действие това, което системата прави, когато натиснете CONTROL-ALT-DELETE на виртуална конзола. На повечето системи, това е някакъв вид рестарт команда с помощта на изключване команда.

sysinit

The sysinit действие е най-първото нещо първоначален, които трябва да се изпълнява, когато тя се стартира, преди да влязат всички нива на работа.

Как процеси в нива на работа начало

Вече сте готови да научите как първоначален започва на системните услуги, точно преди тя ви позволява да влезете. Спомнете си тази inittab линия от рано:

l5: 5: изчакайте :/ и т.н. / rc.d / RC 5

Този малък ред поражда много други програми. RC означава изпълняват команди, и ще чуете хората се позова на команди като скриптове, програми или услуги. Така че, къде са тези команди, все пак?

За ниво на работа 5, в този пример, командите са вероятно или в / и т.н. / rc.d / rc5.d или / и т.н. / rc5.d. Първо ниво 1 използва rc1.d, ниво на работа 2 rc2.d употреби, и така нататък. Може да се намери елементите в rc5.d директория GMT:

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

РК 5 команда стартира програми в тази директория ниво на работа, като пуснете GMT ​​команди:

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

S99sshd дома

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

The * RC. D команди са шел скриптове, които обикновено започват програми в / SBIN или / ЮЕсАр / SBIN. Обикновено можете да разберете това, което една от командите всъщност се като погледнете в сценария с по-малко или пейджър друга програма.

Можете да започнете една от тези услуги на ръка. Например, ако искате да стартирате уеб-сървър софтуер Web ръчно, бягай началото S99httpd. По същия начин, ако някога се наложи да убие една от услугите, когато машината е включена, можете да изпълните командата в ж.к. *. D директория със стоп аргумент (S99httpd спирка, например).

Някои * RC. D директории, които съдържат команди започват с K (за "убие" или режим стоп). В този случай, RC изпълнява командата със стоп аргумент вместо вкъщи. Вие сте най-вероятно да се сблъска K команди в нива на работа затворената система надолу.

Добавяне и премахване на услуги

Ако искате да добавяте, изтривате или модифицирате услуги в РК *. Директории 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. Тези връзки към Линукс дистрибуции СЪДЪРЖАТ че те могат да използват същите стартови скриптове за всички нива на работа. Тази конвенция по никакъв начин не на изискване, но често го прави малко по-лесно организацията.

За да се предотврати появата на една от командите в init.d директорията от тичане в определена ниво на работа, може да се мисли за премахване на символната връзка в съответните RC *. D директория. Това не работи, но ако сте допуснали грешка и се наложи да сложи линк обратно на място, може да не могат да запомнят точното име на връзката. Ето защо, не трябва да се премахне връзката в * RC D директории, а по-скоро, добави долна черта (_) в началото на връзката име като това.:

MV S99httpd _S99httpd

По време на зареждане, RC игнорира _S99httpd защото не започнете с S или K. Освен това, първоначалното име все още е очевидна, и имате бърз достъп до командата, ако сте в краен случай и трябва да я стартирате на ръка.

За да добавите услуга, трябва да създадете скрипт като останалите в init.d директорията и след това направи символна връзка в правилния RC *. D директория. Най-лесният начин да напиша сценарий е да се проучи скриптове вече в init.d, направи копие на този, който ви разбирам, и промяна на копие.

При добавяне на услуга, уверете се, че сте избрали подходящо място в багажника последователност за стартиране на услугата. Ако услугата започва твърде рано, може да не работи, поради зависимостта си от друга услуга. За несъществени услуги, повечето администратори системи предпочитат номера в 90s, след като повечето от услугите, които камера със системата.

Обикновено Линукс дистрибуции идват с команда, за да активирате и деактивирате услуги в * RC. D директории. Например, в Debian, командата е актуализация-rc.d, и в Red Hat Linux, командата е chkconfig. Графични потребителски интерфейси са също на разположение. С помощта на тези програми спомага за стартиране на директории последователна и помага при ъпгрейд.

Подхвърлям: Един от най-често срещаните проблеми Linux инсталацията години неправилно конфигуриран сървър XFree86 Това движения и изключване, което прави системата неизползваема за конзолата. За да спре това поведение, за първоначално зареждане в режим на единичен потребител и да променят нивото на работа или си ниво на работа услуги. Потърсете нещо съдържащо XDM, GDM или KDM в RC си *. D директории, или в / и т.н. / inittab.

Контрол първоначален

От време на време, трябва да се даде първоначален малко удар да го кажа, за да преминете нива на работа, за да прочетете отново inittab файла, или просто да го изключите системата. Защото първоначален винаги е първата процес на системата, STI процес ID е винаги 1.

Можете да управлявате с първоначален telinit. Например, ако искате да преминете към ниво на работа 3, използвайте следната команда:

telinit 3

При преминаване нива на работа, първоначално се опитва да убие всеки aren'ta, че процесите в inittab файла за новия ниво на работа. Следователно, трябва да бъдат внимателни, за Промяна нива на работа.

Когато трябва да добавите или премахнете Respawning работни места или да направите други промени в документацията, inittab, трябва да кажете на първоначален за промяната и прави така, че отново да прочетете файла. Някои хора използват убие-HUP 1 да кажа първоначален да направите това. Този традиционен метод работи на повечето версии на Unix, толкова дълго, колкото сте го въвели правилно. Въпреки това, можете да използвате тази telinit команда:

telinit р

Можете да използвате и telinit и да преминете към режим на единичен потребител.

Изключване

Също инициализиращите контрол как системата изключва и отскачам. Правилният начин за изключване на Linux машина е да използвате командата изключване.

Има два основни начина за използване на изключване. Ако се спре системата, тя изключва машината надолу и го поддържа надолу. За да направите спре машината Веднага, използвайте следната команда:

изключване-з сега

При повечето съвременни машини с разумно последните версии на Linux, спиране намалява захранването на машината. Можете също така да рестартирате машината. За рестартиране, използвайте-R-з ВМЕСТО.

Изключването процес отнема няколко секунди. Никога не трябва да нулирате или изключване на машината по време на този етап.

В предишния пример, сега е моментът да го изключите. Този аргумент е задължително, но има много начини да го Уточняване. Ако искате машината да сляза някъде в бъдещето, един от начините е да се използва + п, където п е броят на минутите изключване изчака, преди да прави всичко трябва да работи. За други опции, погледнете изключване (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 команди казва на ядрото да се рестартира или да спре с рестартиране, спиране, или изключен двигател програма.

Рестартиране и спиране програми държат по различен начин за всеки ниво на работа, което ще доведе до объркване. По подразбиране Тези програми се обадя изключване с-R или-Н опции, но ако системата е вече на спиране или рестартиране на нивото на работа, програмите на ядрото, за да изключите себе си веднага. Ако наистина искате да изключите устройството надолу в бързаме (независимо от всякакви възможни щети от хаотични спиране), използвайте опцията-F.

Оставете коментар

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните за коментарите ви.