Практичне заняття 6. Налаштування завантажувачів
Мета роботи: Освоїти навики роботи по налаштуванню завантажувачів операційної системи
Теоретичні відомості
Сьогодні традиційна схема розбиття дисків на основі головного завантажувального запису (Master Boot Record, MBR) вже не може забезпечити доступ до дискового простору вінчестера, якщо його ємність перевищує 2.2 ТБ. На сьогоднішній день вже доступні диски ємністю 3 ТБ, а також широко використовуються RAID-масиви ще більшої місткості, тому дуже важливо знати і розуміти нові схеми розбивки дискового простору, які приходять на зміну MBR. Наслідником MBR є розбиття диску на основі таблиці розділів GUID (GUID Partition Table, GPT).
Перш ніж говорити про заміну схеми розбиття вашого жорсткого диска, варто розповісти про обмеження, через які потрібна така заміна. Знання про ці проблеми і шляхи їх вирішення дозволить самостійно вирішити, коли слід переходити з MBR на GPT, особливо, якщо планується почати використовувати GPT перед придбанням нових жорстких дисків. Переваги GPT в порівнянні з MBR проявляються навіть при роботі з дисками меншої ємності, однак перехід на нову схему розбиття диска потребуватиме певних зусиль.
Обмеження традиційної схеми з використанням MBR
Система розбиття дисків на основі MBR включає велику кількість різних виправлень структури даних, призначених для усунення ранніх обмежень. Сам головний запис повністю лежить у першому секторі (512 байтів) жорсткого диска. Перші 440 байтів MBR містять програмний код – так званий початковий завантажувач. Базова система введення/виведення (BIOS) зчитує і виконує цей код при завантаженні комп’ютера.
Слідом за програмним кодом в MBR зберігається інформація про чотири розділи, які називаються основними розділами. Кожен розділ можна описати двома способами: за допомогою номерів циліндрів, головок і секторів (нотація CHS) або в термінах логічної адресації блоків (LBA). Нотація CHS сьогодні практично не використовується, оскільки оперує 24-бітними числами. Це означає, що CHS дозволяє описувати диски ємністю не більше 8 ГБ. Схема LBA оперує 32-бітними значеннями, що дозволяє описувати диски ємністю до 2 ТБ (передбачається, що розмір сектора становить 512 байтів). Обмеження в 2 ТБ не так просто подолати, оскільки в MBR просто немає вільних полів, які можна було б використовувати для додавання додаткових бітів до адреси LBA.
Крім проблеми з обмеженням 2 ТБ, існують і інші обмеження MBR, перш за все неможливість використання більш чотирьох основних розділів. Щоб обійти це обмеження, можна використовувати один основний розділ як Extended, такий розділ називається розширеним розділом, що містить довільне число додаткових розділів, які називаються логічними розділами. Проте, це не дуже ефективне рішення і породжує додаткові проблеми, наприклад, при інсталяції на диск кількох операційних систем, що вимагають використання власних основних розділів.
При використанні MBR також виникає проблема цілісності даних. MBR застосовує єдину структуру даних, яка схильна до різних ушкоджень, які можуть виникнути через помилки людини або збоїв обладнання. Крім того, оскільки логічні розділи мають структуру зв’язаного списку, пошкодження одного з них може заблокувати доступ до решти логічних розділів. Жодна з цих структур даних не застосовує жодних функції виявлення помилок, тому діагностика проблеми може виявитися досить трудомісткою процедурою.
Рішення за допомогою GPT.
Компанія Intel розробила GPT, як частину специфікації інтерфейсу EFI (Extensible Firmware Interface), який покликаний замінити собою BIOS. Не звертаючи уваги на той факт, що GPT є частиною стандарту, призначеного для заміни застарілої системи BIOS, можна використовувати GPT навіть в тих комп’ютерах, які засновані на BIOS. Якщо на комп’ютері використовується EFI, то це є додатковим плюсом застосування GPT. Незалежно від того, чи використовується на комп’ютері застаріла система BIOS або новий інтерфейс EFI, таблиця розділів GPT дозволяє усунути безліч обмежень, пов’язаних з головним завантажувальним записом:
- GPT працює виключно з адресацією LBA, тому можна забути про всі проблеми, пов’язані з адресацією CHS.
- Дискові покажчики мають розмір в 64 біта; це означає, що GPT може працювати з дисками ємністю аж до 512 x 264 байтів (8.6 мільярдів ТБ) при розмірі сектора 512 байт.
- Структури даних GPT зберігаються на диску в двох місцях: на початку і в кінці диска. Це підвищує шанси на успішне відновлення даних після апаратних збоїв або виявленні збійних секторів.
- Для критично важливих структур даних обчислюються CRC, що підвищує шанси на виявлення пошкоджених даних.
- GPT зберігає всі розділи в єдиній таблиці розділів (яка резервується), тому немає необхідності використовувати розширені або логічні розділи. За замовчуванням можна створити 128 розділів, але розмір таблиці розділів можна змінювати, якщо це підтримується програмним забезпеченням для роботи з розділами.
MBR використовує для ідентифікації розділу однобайтовий код з типом розділу, проте GPT використовує для цього 16-байтовий глобальний унікальний ідентифікатор (GUID). Це знижує ймовірність колізій, пов’язаних з типом розділів.
- GPT дозволяє використовувати легкі для читання імена розділів. Це поле можна використовувати для присвоєння в Linux імен розділів /home, /usr, /var, а також інші розділи для їх швидкої ідентифікації при роботі з програмним забезпеченням.
Перший сектор диска зарезервований під захист головного завантажувального запису protective MBR, яка є офіційною структурою даних MBR і вказує на один єдиний розділ з типом 0xEE (EFI GPT). На дисках ємністю менше 2 ТБ цей розділ повинен займати весь диск; на дисках більшої місткості він повинен мати розмір в 2 ТБ. Основне призначення захисної MBR – захистити GPT-диск від пошкоджень при роботі з утилітами, які не вміють працювати з GPT. Якщо така утиліта звернеться до диску, то побачить MBR-диск, на якому відсутній вільний простір.
Оскільки в GPT реалізована захисна MBR, то комп’ютери на базі BIOS можуть завантажуватися з GPT-диска за допомогою завантажувача, що зберігається в області коду захисної MBR, однак при цьому і завантажувач, і операційна система повинні вміти працювати з GPT. EFI застосовує власні методи завантаження, тому в системах на базі EFI можна завантажуватися з GPT- дисків.
Основною проблемою GPT є проблема сумісності: таблиця розділів GPT повинна підтримуватися всіма низькорівневими дисковими утилітами і операційними системами. Ця підтримка присутня практично у всіх операційних системах Linux, проте, необхідно приділяти увагу цим деталям і використовувати тільки ті 14rea14орматуват дискові утиліти, які підтримують роботу з GPT. Якщо планується встановити на комп’ютері кілька операційних систем, то потрібно переконаєтеся, що всі вони підтримують GPT.
Якщо ви адміністратор великої кількості Linux-комп’ютерів або плануєте в найближчому майбутньому додати диски ємністю понад 2 ТБ, то корисно буде спробувати виконати тестову установку з використанням GPT.
Можна запускати системи, в яких встановлені диски обох типів – як MBR, так і GPT. Наприклад, MBR-диск можна використовувати для завантаження комп’ютера, а GPT-диск – для зберігання даних. Така конфігурація найкраще підходить для Windows-комп’ютерів на базі BIOS: незважаючи на те, що операційні системи Windows не може завантажуватися з GPT-дисків за допомогою BIOS, ОС Windows Vista і більш пізні ОС від Microsoft можуть використовувати GPT- диски для зберігання даних.
Використання GPT
Підтримка GPT має бути присутня на рівні наступних трьох категорій програмного забезпечення: ядро, завантажувач і 14rea14орматуват утиліти для роботи з диском.
Підтримка на рівні ядра
Ядро Linux має підтримувати GPT для забезпечення доступу до даних на розділах диска. В Linux ця підтримка вже давно реалізована. Якщо ви компілюєте власну збірку ядра, то переконаєтеся, що ви вибрали опцію EFI GUID Partition Support в гілці Partition Types вузла Enable the Block Layer, як показано на рисунку 1 (цей елемент зазвичай розташований під елементом File Systems, тому подивіться туди, якщо ви працюєте зі старим ядром).
Підтримка GPT реалізована не у всіх завантажувач і залежить від типу 15rea15орма комп’ютера. На комп’ютерах з BIOS таблиця розділів GPT офіційно підтримується тільки в засобі завантаження GRUB2. Більшість сучасних дистрибутивів Linux використовують Grand Unified Bootloader (GRUB2) в якості завантажувача за замовчуванням, тим не менш, деякі дистрибутиви продовжують використовувати стару версію GRUB – GRUB Legacy. Офіційно завантажувач GRUB Legacy не підтримує GPT, однак доступні його виправлені версії, що володіють такою підтримкою. Ще більш ранній завантажувач LILO не підтримує GPT явно, але його методи дискової адресації засновані на розташуванні секторів, тому на практиці часто LILO працює з GPT.
Для завантаження комп’ютера з інтерфейсом EFI потрібна наявність системного розділу EFI (EFI System Partition, ESP). Окремим винятком є комп’ютери Mac, хоча вони і поставляються з розділами ESP. Розділ ESP повинен містити файлову систему FAT32. Стандарт EFI не регламентує розмір цього розділу, і зазвичай все добре працює при його розмірі в 100-500 МІБ. Якщо ви використовуєте завантажувач ядра EFI stub loader або завантажувач ELILO, то може знадобитися зберігати ядро в розділі ESP, так що краще створювати розділ ESP розміром ближче до 500 МІБ.