Процес завантаження linux

У цій статті ми розглянемо процес завантаження операційної системи Linux. Детально розглянемо які стадії проходить комп`ютер і операційна система в процесі завантаження. Стаття орієнтована в основному на нових користувачів, які тільки почали знайомитися з Linux. Розуміння, того як проходить процес завантаження Linux важливо для усунення можливих неполадок в процесі завантаження, якщо такі виникнуть.

Відразу після запуску комп`ютера з`являється запрошення натиснути спеціальну кнопку для запуску меню BIOS, якщо цього не зробити продовжиться завантаження системи. Далі ми розглянемо що ж відбувається на кожному етапі завантаження linux.

ініціалізація

BIOS (Basic Input Output System) - це програмне забезпечення, попередньо вбудоване в чіпсет материнської плати. BIOS завантажує комп`ютер і сканує всі його обладнання, перевіряє наявність і працездатність пристроїв, таких як жорсткий диск, CD-ROM, RAM. На цьому етапі починається процес завантаження ОС Linux.

Потім BIOS шукає MBR (Master Boot Record), яка зазвичай розташована в першому секторі жорсткого диска і запускає записаний там завантажувач першого ступеня, наприклад, Grub або Lilo. BIOS готує завантажувач MBR, завантажує всі дані в оперативну пам`ять і виконує їх.

MBR займає перше 512 байт на жорсткому диску. Тут міститься інформація про завантажувач операційної системи, туди записуються завантажувачі більшості операційних систем, наприклад: Linux, Unix, WIndows.

Незважаючи на те, що MBR займає місце на диску, ця область не належить ніякому розділу. Адреса MBR, як правило, доріжка 0, циліндр 0. Це місце зарезервовано для програм початкового завантаження. Вона включає не тільки виконувану програму завантажувач, але і таблицю розділів на диску.

BIOS сканує MBR, знаходить завантажувач першого ступеня, потім сканує таблицю розділів і знаходить завантажувач другого ступеня на розділі, який відзначений як завантажувальний.

Відео: Linux Booting Process

завантажувач

Якщо поділити процес завантаження Linux на етапи, це другий етап. Перша частина завантажувача, розміщена в MBR, завантажує себе в оперативну пам`ять.




Потім завантажуються файли другій частині завантажувача з завантажувального розділу жорсткого диска. Наприклад, Grub або Lilo. Такий поділ потрібно, тому що весь код завантажувача в 512 байт не поміщається.

Після запуску завантажувача Grub, він читає свій конфігураційний файл і пропонує користувачеві вибрати операційну систему, яку потрібно завантажувати.

У файлі конфігурації для кожного пункту записано ядро, яке і потрібно завантажити. Зазвичай ядра знаходяться в папці / boot. Потім Grub завантажує потрібне ядро ​​vmlinuz-версія

підготовка ядра

Тут починається завантаження ядра Linux. Grub резервує місце в оперативній пам`яті для образу Initrd, потім завантажує туди цей образ. У цьому образі міститься початкова файлова система, необхідні при ранній завантаженні модулі і утиліти, наприклад, для роботи з Btrfs або зашифрованим розділом. Потім завантажувач готує ядро ​​до завантаження і завантажує необхідні модулі, щоб можна було почати процес ініціалізації.

У Linux, більшість пропрієтарних драйверів зібрані у вигляді модулів і розміщені на завантажувальному диску initrd.img. Таким чином, коли ядро ​​завантажується, в initrd вже доступні всі необхідні модулі.




Після того як ядро ​​завантажить все необхідне і виконає початкову ініціалізацію, завантаження ядра Linux вважається завершеною і запускається процес ініціалізації системи, так званий, init процес, його можна задати вручну, наприклад, опцією ядра init.

ініціалізація ядра

Ініціалізація ядра включає такі етапи:

  • Ініціалізація компонентів процесора, наприклад MMU
  • Ініціалізація планувальника (PID 0)
  • Монтування файлової системи в режимі читання і запису
  • Форк процесу ініціалізації (PID 1)

В процесі ініціалізації ядро ​​виконує наступні завдання:

  • Запуск основної системи і загального менеджера ресурсів (RAM, процесор, жорсткий диск)
  • Запуск процесу ініціалізації (/ sbin / init)

система ініціалізації

Саме на цьому етапі процес завантаження Linux найбільш схильний до помилок. Після того, як ядро ​​передало управління системі ініціалізації, починається підготовка системи до роботи і запуск всіх необхідних сервісів - логгірованія, обміну системними повідомленнями, настройка мережі, підготовка мережевих файлових систем, налаштування звуку, монтування локальних файлових систем та інші системні компоненти. На даний момент використовується в більшості випадків одна з двох найпопулярніших систем ініціалізації - SysVinit або Systemd.

Процес завантаження в кожному окремому випадку трохи відрізняється, але суть одна і та ж.

У SysVinit спочатку запускається програма / sbin / init, потім вона читає файл параметрів / etc / inittab щоб визначити потрібний рівень запуску за замовчуванням. Ось ці рівні завантаження Linux:

Відео: Understanding the Linux Boot Process - CompTIA Linux +, LPIC-1

  • 0 - вимикання
  • 1 - Однокористувацький режим
  • 2 - багато користувачів режим без мережі
  • 3 - Повноцінний режим
  • 4 - Не використовується
  • 5 - Запуск X11
  • 6 - перезавантаження

Рівні завантаження Linux можна перемикати і вручну, за допомогою команди telinit. За замовчуванням використовується, зазвичай, рівень 5.

Відео: Процес завантаження моєї системи

Потім виконується скрипт /etc/rc.d/rc.sysinit, а також всі скрипти з папки /etc/rc.d/rcx, де x - номер рівня запуску. Наприклад якщо ми завантажується з рівнем запуску 5, то будуть виконані всі скрипти з папки /etc/rc.d/rc5.d.

Імена скриптів запуску починаються з літери S, а завершення - K. Після розгляду цієї структури, ви вже розумієте як працює автозавантаження сервісів в Linux? Тепер ви можете додати скрипт в автозавантаження вручну просто створивши символічне посилання в потрібній папці.

Відео: Basics of the Linux Boot Process

Після виконання всіх цих дій системі залишається тільки запустити всі віртуальні консолі TTY і менеджер входу в систему, наприклад XDM або SDDM.

У Systemd процес завантаження трохи відрізняється, тут на відміну від попереднього варіанту використовуються не скрипти, а спеціальні конфігураційні файли - юніти. Це вирішує безліч проблем, наприклад, з перенесенням, а також додає нові функції, такі як залежності і паралельна завантаження.

Але суть процесу завантаження та ж, запускаються такі ж послуги. Замість рівнів запуску використовуються спеціальні юніти - .target. Ім`я юніта містить номер рівня запуску і слово runlevel. Наприклад: runlevel0.target - відключення, і т д. Ці юніти і тягнуть за собою в залежності всі необхідні сервіси для нормальної роботи системи.

Поділися в соціальних мережах:

Схожі
Як приховати процес в linuxЯк приховати процес в linux
Установка astra linuxУстановка astra linux
Установка linux mint 18 sarahУстановка linux mint 18 sarah
Що таке biosЩо таке bios
Кращі завантажувачі linuxКращі завантажувачі linux
Створення завантажувальних дисківСтворення завантажувальних дисків
Установка kali linux на комп`ютерУстановка kali linux на комп`ютер
Як зробити завантаження windows першої в grubЯк зробити завантаження windows першої в grub
Налаштування комп`ютера для завантаження з компакт-дискаНалаштування комп`ютера для завантаження з компакт-диска
Перевстановити windows xp керівництво в картинкахПеревстановити windows xp керівництво в картинках
» » Процес завантаження linux