Завантаження, перезавантаження системи

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Знімок екрану завантажувача GRUB

Заванта́ження операці́йної систе́ми (англ. booting) — це багатокроковий процес запуску комп'ютера. Заванта́жувач операційної системи (англ. bootloader) — це програма, для виконання завантаження операційної системи. Завантажувач операційної системи звичайно міститься у секторі завантажування. Послідовність завантаження (англ. boot sequence) — це початковий набір дій, що при цьому виконується комп'ютером.

Типи завантаження

  • Початкове завантаження — Завантажування після того, як комп'ютер увімкнено користувачем.
  • Перезавантаження

Жорстке перезавантаження

Жорстке перезавантаження (англ. hard reboot) відбувається, коли на короткий час зникає живлення комп'ютера, або коли на процесор надсилається спеціальний сигнал (найчастіше така кнопка міститься на передній панелі комп'ютера). Це початкове завантаження без попереднього виконання завершальних процедур операційної системи. Для багатьох операційних систем, особливо тих що використовують дисковий кеш, після жорсткого перезавантаження файлова система може містити неузгодженості через незавершеність дискових операцій вводу-виводу; щоб виправити ці помилки запускається процедура сканування файлової системи на цілісність структури ще до того, як матиме місце нормальне завантаження. Жорстке перезавантаження може бути спричинено ненавмисно, через випадкове відключення живлення, або ж зроблене навмисно як остання спроба вийти з неприємного стану на комп'ютері, наприклад критичної помилки системи, чи вірусної атаки, чи DoS-атаки з інтернету.

М'яке перезавантаження

М'яким (англ. soft reboot) перезавантаження називається тоді, коли воно відбувається під контролем програмного забезпечення, без порушень в електроживленні і натискання кнопки перезавантаження на передній панелі. Як правило, але не завжди, це означає звичайне штатне завершення роботи машини і наступне перезавантаження. Комбінація клавіш клавіатури Control-Alt-Delete на оригінальному комп'ютері IBM PC була назначена для виконання м'якого перезавантаження для скорішого і зручнішого (і, дехто стверджує, менш стресового для компонентів системи) рестарту, порівняно із тим, коли вимикається живлення комп'ютера. Ядро Linux має опціональну підтримку системного виклику kexec, який зупиняє поточне робоче ядро і переключає виконання на інше. Це процес повністю незалежний від програм, зашитих в залізо (firmware). Зауважимо, що ядро, яке запускається, може навіть і не бути ядром Linux.

Функціональність завантажувача операційної системи

  • забезпечує необхідні засоби для діалогу з користувачем комп'ютера (наприклад, завантажувач дозволяє вибрати ядро операційної системи для завантаження);
  • приводить апаратуру комп'ютера в стан, необхідний для старту ядра операційної системи (наприклад, на не-x86 архітектурі перед запуском ядра завантажувач повинен правильно налаштувати віртуальну пам'ять);
  • завантажує ядро операційної системи в оперативну пам'ять. Завантаження ядра операційної системи не обов'язково відбувається з твердого диску.
  • Завантажувач може отримувати ядро з мережі. Ядро може зберігатися в постійній пам'яті або завантажуватися через послідовні інтерфейси (це може стати в нагоді на ранній стадії зневадження створюваної комп'ютерної системи);
  • формує параметри, що передаються ядру операційної системи (наприклад, ядру Linux передаються параметри, що вказують спосіб підключення кореневої файлової системи);
  • передає управління ядру операційної системи.

На комп'ютерах архітектури IBM РС запуск завантажувача здійснюється програмним забезпеченням BIOS, записаною в постійній пам'яті комп'ютера (зараз це найчастіше флеш-пам'ять), після успішного закінчення процедури POST.

Процедура, за допомогою якої відбувається завантаження ОС з твердого диску IBM РС має таку послідовність: BIOS проводить читання і запис 512 байт першого сектора диску в оперативну пам'ять за адресою 0x00007C00 (0x07C0:0x0000 у форматі реального режиму), потім прочитаному коду передається керування. Цей код читає і аналізує таблицю розділів твердого диска, а потім, залежно від виду завантажувача, або передає керування завантажувальному коду активного розділу твердого диску, або самостійно завантажує ядро з диску в оперативну пам'ять і передає йому керування. Спочатку завантажувач працює в режимі реальної адресації при вимкненій адресній лінії A20, що створює певні труднощі при написанні завантажувачів.

Завантажувальні пристрої

Завантажувальний пристрій — з якого вантажиться операційна система. BIOS сучасних комп'ютерів підтримує завантаження з різних пристроїв, зазвичай це локальний жорсткий диск (HDD) (або одна з частин логічного чи фізичного розділу на диску), пристрій читання оптичних дисків, USB-диск (у варіантах флеш-диску, зовнішнього твердого, магнитооптичного чи оптичного диску тощо), або інтерфейсна мережева карта (з використанням PXE). Старіші, вже менш поширені варіанти завантаження, включають дисковод гнучких дисків, SCSI-пристрої, Zip-дисководи, або пристрої LS-120. Зазвичай BIOS дозволяє користувачу обрати і впорядкувати спосіб завантаження. Якщо порядок завантаження встановлено так «по-перше, DVD-дисковод; по-друге, твердий диск», тоді BIOS намагатиметься завантажити систему з DVD, і якщо спроба виявиться неуспішною (наприклад, у дисководі відсутній диск), тоді відбудеться наступна спроба завантажитися з твердого диску.

Поширені завантажувачі

  • LILO (LInux LOader)— завантажувач, в основному для завантаження ядра Linux
  • GRUB — використовується для завантаження ядрі Linux і Hurd
  • cygwin— завантажувач для вбудованих систем
  • SILO (SPARC Improved bootLOader)— завантажувач Linux і Solaris для машин з архітектурою SPARC.
  • Loadlin — завантажує Linux з під DOS або Windows
  • Syslinux — завантажує Linux з під DOS або Windows
  • BOOTP — застосовується для завантаження по мережі
  • Yaboot — завантажувач Linux на PowerPC
  • Das U-Boot
  • SyMon

Покрокові інструкції

Завантаження

Для того, щоб завантажити встановлений Linux-Mandrake RE, не потрібно робити нічого складного. Після перезавантаження, з'явиться меню з різними варіантами завантаження. Просто виберіть - linux, або потрібне. Процедура входу в систему.

Linux - система для багатьох користувачів. Для того, щоб війти в систему, Вам треба бути ідентифікованим системою, - це і є процедура входу. Введіть ім'я користувача, якого створено для Вас та його пароль. Коли Вам знадобиться виконувати завдання, для яких треба повноважень наглядача, користуйтеся командою su + пароль наглядача, або налаштуйте для таких випадків sudo.

Під час підключення користувача (так саме як і при одержанні прав наглядача командою su) запускається нова командна оболонка (shell). Вийти з поточного shell можно за допомогою команди exit або натиснувши комбінацію клавіш Ctrl-D.

Вимикання

Існує багато способів вимикання вашої Linux системи, але до них не належить вимикання кнопкою живлення! Насправді, як і багато інших операційних систем, Linux інтенсивно користується кеш-пам'ятю для прискорення процесів вводу/виводу. Невірне вимикання системи може привести до втрати данних. Тому, треба виключати систему вірно. Для цього існує маса способів:

Перебуваючи в системі з повноваженнями root, наберіть "poweroff", через деякий час система перестане працювати та живлення буде вимкнено автоматично.

Перебуваючи в системі з повноваженнями root, наберіть "halt" та почекайте появи повідомленя "System halted" (Система зупинена), а потім можете вимикати живлення.

Більш швидкий варіант - це натиснути клавіши ctrl-alt-del одночасно (як в Dos/Windows). Потім ваша система размонтує всі диски. Дочекайтесь реініціалізаціі (перезавантаження) системи та вимикайте живлення.

Якщо Ви користуєтесь KDM, натисніть "Вимкнути...", і знов виберіть "Вимкнути". Як для пункту 1 дочекайтесь зупинки системи та вимикайте живлення. Майте на увазі, що Ви можете також вимкнути цю можливість в "Центрі керування KDE". Що може статися коли Ви просто вимкнете живлення вашого ПК? Під час завантаження Linux, будуть перевірені всі диски, що не були вірно размонтовані. Ця операція має назву "fsck" (Filesystem Check - перевірка файлової системи). Вона займе декілька хвилин. Коли повезе, то потім ваша система завантажиться нормально. Командні оболонки (shell) Після реєстрації в системі, якщо Ви не вибрали автоматичний запуск X Windows, Ви побачите запрошення - рядок, що містить символ $ (далі, цей символ буде позначати командний рядок). Програма очікує ваших команд. Роль командного інтерпретатора - передавати ваши команди оперційній системі. За своїми функціями він відповідає command.com в DOS, але незрівняно потужніше. При допомозі командних інтерпретаторів можно писати невеличкі програми - сценарії (scripts). В Linux доступні наступні командні оболонки:

bash - сама поширена оболонка під linux. Вона веде історію команд та надає можливість іх редагування

pdksh - клон korn shell, добре відомої оболонки в UNIX(tm) системах.

tcsh - покращена версія C shell.

zsh - сама нова з прерахованих тут оболонок.

Стандартною оболонкою є "Bash" (Bourne Again Shell ) Щоб перевірити, яку оболонку Ви використовуєте, наберіть команду:

echo $shell

У кожної оболонки свій синтаксис. Ми рекомендуємо Вам використовувати Bash. В подальшому ми будемо будувати свої приклади з використанням цієї оболонки. Командна оболонка Bash.

В bash є декілька прийомів для роботи з рядком команд. Наприклад, користуючись клавіатурою, Ви можете:

Ctrl + A перейти на початок рядка.

Ctrl + U видалити поточний рядок.

Ctrl + C зупинити активне завдання.

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

history

Команди, що є в історіі, відображуються в переліку пронумерованими. Для того, щоб запустити потрібну команду наберіть: ! номер команди коли Ви введете: !! запуститься остання з набраних команд.

Іноді в Unix, назви програм та команд надто довгі. На щастя, Bash сам може завершувати назви. Натиснувши клавішу [TAB], Ви можете завершити назву команди, програми чи каталогу. Наприклад, нехай, Ви бажаєте використати програму розпакування bunzip2. Для цього наберіть:

bu

потім натисніть [TAB]. Коли нічого не відбувається, то можливо існує декілька варіантів завершення команди.

Нaтиснувши клавішу [TAB] ще раз, Ви отримаєте перелік назв, що починаються з "bu".

Наприклад у Вас є:

$ bu buildhash builtin bunzip2

Наберіть:

n

(bunzip - це єдина назва, де третя літера "n"), а потім натисніть клавішу табуляціі. Оболонка доповнить назву і Вам залишиться лише натиснути "Enter", щоб запустити команду!

Зауважимо, що програму, яка викликається з командного рядка, bash щукає в каталогах, що визначаються в змінній оточення PATH. Стандартно, в цей перелік каталогів не входить поточний каталог, позначаємий./ (крапка коса) (якщо тіки Ви не обрали один з двох самих слабих рівнів захисту, див. про це нижче). Тому для запуску програми prog з поточного каталога, треба дати команду:

./prog


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

Приклад перший - запуск програми в фоновому режимі. Для того, щоб це зробити, Вам треба, лише, набрати "&" після назви програми. Після цього, оболонка дає Вам можливість запускати інші програми. Будьте обережними, бо деякі програми потребують Вашої реакції, щоб продовжувати працювати,і їх запуск в фоновому режимі не має сенсу. Для того, щоб повернути їх з фонового режиму, наберіть:

fg назва_програми

Другий метод - запуск декількох незалежних сеансів, або використання програми, що імітує декілька таких сеансів (screen). Коли ви в графічному режимі, просто запустіть Xterm або емулятор терміналу. В режимі консолі, натисніть "alt" та одну з клавіш, що знаходяться в інтервалі від "F1" до "F6". На екрані з'явиться нове запрошення системи, і Ви зможете розпочати новий сеанс. цей метод також дозволяє Вам працювати на іншій консолі, коли консоль, що Ви використовували до того, не відповідає, або Вам необхідно зупинити програму, що зависла.