Л╕накс можна загрузити або ╕з гнучкого, або ╕з жорсткого диску123. Розд╕л ``Установка'' в Пос╕бнику по установц╕ та перших кроках в Л╕накс╕ 124 розкаже Вам, як зробити так, щоб Л╕накс грузився або зв╕дти, або зв╕дти.
П╕д час початкового старту комп'ютера BIOS викону╓ р╕зноман╕тн╕ тести, перев╕ряючи, що з апаратурою все в порядку,125 ╕ п╕сля цього почина╓ справжню загрузку. В╕н вибере дисковий пристр╕й (в б╕льшост╕ випадк╕в - перший дисков╕д, якщо в нього вставлена дискета, якщо ж н╕ - то перший жорсткий диск, якщо такий встановлено в комп'ютер╕. ╤нколи порядок пошуку може зм╕нюватися.) ╕ прочита╓ самий перший сектор цього диску. Цей сектор називають загрузочним сектором126, у в╕дношенн╕ до жорстких диск╕в цей сектор назива╓ться також головним загрузочним сектором127, оск╕льки на диску може бути к╕лька розд╕л╕в, ╕ кожен ╕з розд╕л╕в ма╓ св╕й власний загрузочний сектор.
Загрузочний сектор м╕стить невелику програмку (малу наст╕льки, що вона може пом╕ститися в один сектор). В╕дпов╕дальн╕стю ц╕╓╖ програмки ╓: прочитати операц╕йну систему з диску та стартувати ╖╖. При загрузц╕ Л╕накса з дискети, в загрузочному сектор╕ записана програма, яка просто-напросто чита╓ к╕лька сотень перших блок╕в (в залежност╕ в╕д справжнього розм╕ру ядра) в попередньо визначену д╕лянку пам'ят╕. Дуже часто на загрузочн╕й дискет╕ файлово╖ системи нема╓. Ядро просто запису╓ться в посл╕довност╕ сектор╕в. Це значно полегшу╓ процес старту системи. Однак, можливо також вантажити Л╕накс з дискети з файловою системою, користуючись LILO (the LInux LOader)128. 129
При загрузц╕ з жорсткого диску, код (програма) в головному загрузочному сектор╕ анал╕зу╓ таблицю розд╕л╕в диску (яка також знаходиться в головному загрузочному блоц╕) ╕ знаходить активний п╕дрозд╕л. Для того, щоб було зрозум╕ло, що з такого розд╕лу можна грузитися, в╕н познача╓ться спец╕альним прапорцем - б╕том. П╕сля цього код загрузчика з MBR чита╓ загрузочний сектор активного розд╕лу ╕ переда╓ на нього керування процесору. Код в загрузочному сектор╕ активного розд╕лу робить те ж саме, що ╕ код в загрузочному сектор╕ дискети: чита╓ ядро з диску та запуска╓ його на виконання. Звичайно ж, подробиц╕ старту в╕др╕зняються. Не ма╓ н╕якого сенсу тримати на диску окремий розд╕л т╕льки для того, щоб тримати на ньому ядро. Тож, загручоний код в загрузочному сектор╕ диску не може просто читати все п╕дряд з посл╕довност╕ сектор╕в. В╕н повинен спершу визначити де операц╕йна система розм╕стила ядро на диску. ╢ к╕лька р╕зних шлях╕в вир╕шення питання пошуку ядра на диску, але найб╕льш вживаний - це застосування LILO. (Подробиц╕ того, як саме це зробити, виходять за меж╕ тематики ц╕╓╖ дискус╕╖, отож див╕ться документац╕ю по LILO, щоб зрозум╕ти ц╕ процеси краще.)
При загрузц╕ комп'ютера з LILO, як правило, в╕н старту╓ Ваше ``основне''(``робоче'') ядро. LILO можна сконф╕╜урувати так, що в╕н буде загружати ╕нш╕ ядра, або нав╕ть одну з к╕лькох оперативних систем. Кр╕м того, LILO да╓ користувачев╕ виб╕р того, яке ядро чи яку систему стартувати при дан╕й загрузц╕. LILO можна настро╖ти так, що при натисканн╕ клав╕ш alt, shift, чи ctrl п╕д час загрузки, в╕н зупиниться, утрима╓ться в╕д стандартно╖ загрузки ╕ спита╓ яку систему загрузити. Також LILO можна настро╖ти таким чином, що в╕н завжди буде зупинятися при загрузц╕ на певний час щоб спитати, яку систему грузити. Якщо LILO не отрима╓ в╕дпов╕д╕ на протяз╕ цього часу, то загрузить основне ядро.
При використанн╕ LILO ядру системи також можна передавати параметри з командного рядка.
META: ╤снують також ╕нш╕ загрузчики окр╕м LILO. ╤нформац╕я про них буде додана п╕зн╕ше, в наступних верс╕ях. loadlin.
Як загрузка з дискети, так ╕ загрузка з жорсткого диску мають як сво╖ плюси, так ╕ м╕нуси. Але загалом загрузка з жорсткого диску вигляда╓ набагато краще, оск╕льки можна позбутися цих дискет, як╕ будуть тягатися скр╕зь ╕ всюди. Кр╕м того - це швидше. Однак, ╕нколи можливо трохи важче встановити систему так, щоб вона загружалася з жорсткого диску. Тому багато хто спочатку загружають систему з дискетв. П╕сля того, як система в основному встановлена ╕ сконф╕╜урована, встановлюють LILO ╕ починають грузитися з жорского диску.
Коли ядро системи вже прочитане в пам'ять системи, в╕дбува╓ться приблизно таке:
Ядро Л╕накса запису╓ться на диск стисненим (заарх╕вованим). Отже воно ма╓ бути розарх╕вованим спочатку. Початок ядра м╕стить невеличку програмку, яка викону╓ цю операц╕ю130.
Якщо Ваша система ма╓ в╕деоплату типу cупер-VGA, то Л╕накс зможе це розп╕знати. Тод╕ Л╕накс дасть можлив╕сть скористуватися спец╕альними текстовими режимами, такими, як, наприклад, 100 стовпчик╕в по 40 рядк╕в. В╕део режим екрану можна встановити п╕д час комп╕ляц╕╖ ядра. Тод╕ п╕д час старту ядро не буде задавати зайвих запитань. Кр╕м того цього ж можна добитися за допомогою LILO або rdev .
П╕сля цього ядро почина╓ перев╕ряти яке обладнання ма╓ комп'ютер (жорстк╕ диски, приводи дискет, плати мереж╕...), та конф╕╜уру╓ деяк╕ з драйвер╕в знайдених пристро╖в в╕дпов╕дно. П╕д час цього на екран виводяться пов╕домлення про знах╕дки ядра. Наприклад, п╕д час загрузки на сво╓му екран╕ я бачу:
LILO boot: Loading linux. Console: colour EGA+ 80x25, 8 virtual consoles Serial driver version 3.94 with no serial options enabled tty00 at 0x03f8 (irq = 4) is a 16450 tty01 at 0x02f8 (irq = 3) is a 16450 lp_init: lp1 exists (0), using polling driver Memory: 7332k/8192k available (300k kernel code, 384k reserved, 176k data) Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M Loopback device init Warning WD8013 board not found at i/o = 280. Math coprocessor using irq13 error reporting. Partition check: hda: hda1 hda2 hda3 VFS: Mounted root (ext filesystem). Linux version 0.99.pl9-1 (root@haven) 05/01/93 14:12:20
Пов╕домлення на Вашому екран╕ будуть ╕ншими. Вони залежать в╕д обладнання, встановленого в систем╕, в╕д верс╕╖ Л╕накса та в╕д конф╕╜урац╕╖ системи.
П╕сля цього ядро робить спробу змонтувати кореневу файлову систему. М╕сцезнаходження ╖╖ зада╓ться п╕д час комп╕лювання ядра, командою rdev чи за допомогою LILO. Тип файлово╖ системи визнача╓ться автоматично. Якщо ядро не може змонтувати кореневу файлову систему (наприклад, з то╖ причини, що Ви забули включити драйвер дано╖ системи в ядро п╕д час його комп╕ляц╕╖), ядро пан╕ку╓ ╕ зупиня╓ систему (все одно йому нема чого робити).
Звичайно коренева файлова система монту╓ться в режими т╕льки читання (це встановлю╓ться так само, як ╕ ╖╖ м╕сце). Це да╓ можлив╕сть перев╕ряти файлову систему п╕д час монтування, бо не дуже гарно перев╕ряти файлову систему тод╕, коли вона змонтована на запис.
П╕сля цього ядро старту╓ програму init , яка знаходиться в /sbin/init . init запуска╓ться в фоновому режим╕131 ╕ завжди отриму╓ номер 1. init викону╓ р╕зн╕ стартов╕ функц╕╖. Що саме в╕н робить залежить в╕д його конф╕╜урац╕╖, див╕ться розд╕л (не написаний поки що). Як м╕н╕мум в╕н старту╓ деяк╕ важлив╕ демони.
П╕сля цього init переходить в багато користувацький режим ╕ старту╓ getty для в╕ртуальних консол╕в та посл╕довних порт╕в. Команда getty - це програма, яка дозволя╓ користувачам ре╓струватися в систем╕, використовуючи при цьому в╕ртуальн╕ консол╕ або посл╕довн╕ порти. В залежност╕ в╕д того, як в╕н сконф╕╜ураваний init може стартувати також ╕нш╕ програми.
П╕сля цього вже загрузка системи зак╕нчена ╕ система працю╓ в сво╓му нормальному режим╕.