Що вибрати – GPT чи MBR? Пояснюємо, чим відрізняються стандарти. Встановлення Windows на конвертований з MBR на GPT диск без втрати даних на несистемних розділах Зробити розділ mbr

Перед тим, як поставити запитання у темі, що стосується MBR, будь ласка, прочитайте наступне:

1. Що таке MBR і чому вона важлива у роботі комп'ютера?
У перекладі з англійської, MBR - абревіатура, що означає Main/Master Boot Record або Основний Завантажувальний Запис. Цей запис лежить у першому фізичному секторі жорсткого диска і відіграє основну роль завантаженні операційної системи, вірніше, виборі, з якого розділу необхідно завантажити операційну систему. Таким чином, MBR містить інформацію про розділи жорсткого диска (таблицю розділів – partitions table). При завантаженні комп'ютера, MBR завантажується в пам'ять BIOS (Basic Input/Output System - Базова Система Введення/Виведення), де їй і передається управління завантаженням системи, вірніше, вибором, який розділ зробити активним. Ось чому в системі Acer для того, щоб скористатися системою відновлення системи (eRecovery Management) з прихованого розділу, необхідно одночасно натискати клавіші Alt-F10 під час завантаження комп'ютера (а саме під час появи логотипу Acer, коли виконується тест POST BIOSa). Таке поєднання клавіш дозволяє MBR вибрати як активний розділ - перший (PQService). При звичайному завантаженні комп'ютера активним розділом залишається другий, на якому і встановлена ​​основна користувальницька операційна система. На цьому малюнку я спробував графічно зобразити принцип роботи MBR, де Ви можете побачити перший прихований розділ "PQService", другий розділ із встановленою системою "C:" і третій розділ для даних користувача "D:".

Тут представлені диски з трьома та чотирма розділами (в останньому випадку - є прихований четвертий розділ з Instant-On-Arcade "IOArcade", що дозволяє завантажувати мультимедійну оболонку без завантаження основної операційної системи).

2. Не працює комбінація клавіш Alt+F10, що робити?
Якщо при натисканні клавіш Alt+F10 Ви не можете завантажити комп'ютер із прихованого розділу (увійти в Acer eRecovery Management), це означає заміну оригінальної MBR від Acer основним завантажувальним записом встановленої Вами операційної системи. Для встановлення оригінальної MBR (від Acer) у системі Windows XP, Vista, скористайтеся цим патчем (розпакуйте та запустіть). Якщо було встановлено Windows 7, то після розпакування запустіть цей патч . Після перезавантаження системи знову спробуйте натиснути клавіші Alt+F10.

3. Ви видалили прихований розділ (розділи) і не збираєтеся користуватися Acer eRecovery Management. Що робити у цьому випадку?
Для початку необхідно вимкнути функцію "D2D Recovery" у БІОС. Після цього Ви можете встановити самостійно операційну систему або скористатися дисками відновлення, що постачаються з Вашим комп'ютером або зроблені Вами за допомогою програми Acer eRecovery. В останньому випадку програма відновлення автоматично визначить відсутність прихованого розділу та встановить систему в перший розділ, з якого і надалі завантажуватиметься встановлена ​​операційна система.

На додаток: для відновлення завантажувача Windows XP (у випадку, якщо ця ОС встановлена), скористайтеся цією утилітою . Будьте уважні! Запускайте файл лише у випадку, якщо у Вас встановлено Windows XP. Якщо потрібно відновити завантажувач Windows Vista, запустіть цю утиліту.

Якщо ви бажаєте відновити MBR у середовищі DOS, утиліта mbrwrwin.exe не буде працювати. Використовуйте для цієї мети.

Усі питання висловлюємо у цій темі форуму:

Матеріал підготовлений спеціально для http://сайт (автор – Гур'єв Денис, GDenis)
e-mail [email protected]
(Зміна матеріалу, копіювання та розповсюдження тільки з дозволу автора)

Одним з ефективних кроків усунення неполадок, пов'язаних із завантаженням windows, є відновлення завантажувального запису Windows 10/7/8.1 з новим UEFI і розміткою GPT або BIOS з розміткою MBR. Одна з найпоширеніших причин, через які головний завантажувальний запис може бути пошкоджений, пов'язана із зараженням шкідливими програмами або пошкодженням файлу в цьому секторі. Неправильне завершення роботи може призвести до пошкодження завантажувального запису (MBR). Іноді проблеми бувають, коли Linux Grub встановлений і Windows не може його виявити. У деяких випадках ви можете отримати помилку Bootmgr is Missingабо BCDувімкнення комп'ютера. У таких випадках ви можете запустити відновлення завантажувача для вирішення цих проблем.

Як відновити завантажувач Windows 10

Ви повинні підготуватися, оскільки комп'ютер на робочий стіл у вас не завантажується і додаткові параметри завантаження можуть бути неефективними. Тому вам потрібно з Windows 10 з тією ж розрядністю (x32 або x64), яку збираєтеся полагодити, і бажано тієї ж версії. Ви повинні завантажуватись у всіх нижче способах із завантажувальної флешки, щоб запустити командний рядок. Пам'ятайте, що після відновлення завантажувача можуть з'являтися деякі помилки і потрібно кілька разів просто перезавантажити ПК, щоб завантажувач притерся.

Почніть інсталяцію Windows 10 із завантажувальної флешки та дійдіть до пункту інсталяції. Далі натисніть знизу на " Відновлення системи", щоб потрапити до додаткових параметрів завантаження."

Спосіб 1. Як тільки потрапили в додаткові параметри завантаження, перейдіть " " > "Додаткові параметри"> і виберіть "". Зачекайте, поки процес завершиться, і завантажувач Windows 10 повинен відновитися.

Спосіб 2. У тих же додаткових параметрах завантаження перейдіть Пошук та усунення несправностей" > "Додаткові параметри"> і запустіть" Командна строка".


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

  1. diskpart
  2. list volume- Виводить список розділів.
  3. exit- Вихід з інструменту по роботі з дисками.

У моєму випадку на скріні нижче видно, що локальний диск на якому встановлена ​​Windows 10 не "C", а "D". У вас, швидше за все, буде "C", але будьте уважні, ви повинні визначити, де у вас встановлена ​​система. Як тільки ви визначили під якою літерою у вас система, введіть наступну команду, щоб відновити завантажувач Windows 10:

  • bcdboot D:\windows

Спосіб 3. Якщо ви використовуєте систему Windows з новим UEFI і схемою розділів GPT, потрібно знайти прихований розділ з файловою системою FAT32 (він приблизно 90-300 Мб). Якщо у вас стоїть BIOS та розмітка MBR, то файлова система буде NTFS (приблизно 500 Мб). У моєму випадку це NTFS. Значить, запускаємо командний рядок через флешку завантаження, як описано вище способами, і пишемо команди:

  1. diskpart- Запускає інструмент для роботи з дисками.
  2. list volume- Виводить список розділів.
  3. select volume 3- Вибір прихованоготоми (у моєму випадку це NTFS, у вас може бути прихований FAT32).
  4. format fs=ntfsабо format fs=fat32- форматування вибраного тома (дивлячись яка у вас).
  5. assign letter=E- Призначаємо нову літеру тому (я надав те, що вже було).
  6. exit- Вихід з інструменту дискпарт.
  7. bcdboot D:\Windows /s E: /f ALL- Копіюємо файли завантажувача. (У моєму випадку диск D: – це те, на якому знаходиться сама Windows, E: – літера, яку ми привласнили прихованому розділу).
  8. diskpart- Запускає інструмент для роботи з дисками.
  9. list volume- Виводимо список розділів.
  10. select volume 3– Номер прихованого тому, якому ми надавали літеру.
  11. remove letter=E- видаляємо букву, щоб розділ не відображалася у системі, коли перезавантажимося.


Спосіб 4. У цьому способі скористаємося інструментом Bootrec.exe. Введіть у командний рядок наступні команди одну за одною:

  1. bootrec /RebuildBcd
  2. bootrec /fixMbr
  3. bootrec /fixboot

Вийдіть та перезавантажте свою систему.


У деяких випадках потрібно виконати додаткову команду:

  • bootsect /NT60 SYSабо bootsect /nt60 ALL

У цьому розділі розповім, як написати власний менеджер мультизавантаження. Менеджер мультизавантаження є кодом, що знаходиться в завантажувальному секторі, і на вибір користувача завантажує будь-яку з декількох операційних систем, встановлених на комп'ютері. У процесі обговорення ви познайомитеся з перериванням INT 13h, таблицею розділів тощо. Стандартний завантажувач, що встановлюється більшістю операційних систем за умовчанням, занадто примітивний, щоб його сприймати всерйоз, а нестандартні завантажувачі від незалежних розробників зазвичай надто неповороткі та ненадійні. Ось і давайте напишемо свій! Поки ми його писатимемо, ми пізнаємо дао і дзен асемблера, навчимося налагоджувати програми без відладчика і ближче познайомимося з низькорівневими інтерфейсами вінчестера.

Інтерфейс INT 13h

Керувати дисками можна через порти вводу/вывода, і через BIOS. Порти набагато могутніші та цікавіші, проте BIOS програмується набагато простіше, до того ж вона підтримує велику кількість різнокаліберних накопичувачів, абстрагуючись від конструктивних особливостей кожної конкретної моделі. Тому діятимемо через неї, а точніше, через інтерфейс переривання INT 13h.

Номер функції заноситься в регістр AH. У разі читання він дорівнює двом. Регістр AL відповідає за кількість секторів, що обробляються. Оскільки ми збираємось читати по одному сектору за операцію, занесемо сюди одиницю. Регістр DH зберігає номер головки, a DL – номер приводу (80h – перший жорсткий диск, 81h – другий і т.д.). П'ять молодших бітів регістру CL задають номер сектора, біти регістра CL, що залишилися, і вісім бітів регістра CH визначають номер циліндра, який ми хочемо прочитати. Реєстрова пара ES:BX вказує на адресу буфера-приймача. Ось, власне, і все. Після виконання команди INT 13h дані, що зчитуються, виявляться в буфері, а якщо відбудеться помилка (наприклад, головка "спіткнеться" про BAD-сектор), то BIOS встановить прапор переносу (carry flag), і ми будемо змушені або повторити спробу, або вивести сумне повідомлення на екрані.

Код цієї програми мовою асемблера представлений у лістингу 5.6.

Лістинг 5.6. Код, який зчитує завантажувальний сектор або розширену таблицю розділів

MOV SI, 1BEh; Перейти до першого розділу
MOV AX, CS; Налаштовуємо ES
MOV ES, AX
MOV BX, buf; Зміщення буфера
...
read_all_partitions:
MOV AX, bud; Читати 1 сектор з диска

MOV DH, ; Стартовий номер голівки
MOV CX, ; Стартовий сектор із циліндром INT 13h
JC error; Помилка читання
;Обробляємо лічений boot-сектор або розширену таблицю розділів
;===================================================================
;
CMP byte, 80h
JZ LOAD_BOOT; Це завантажувальний сектор
; Передаємо на нього керування
CMP byte, 05h
JZ LOAD_CHS_EXT ; Це розширена таблиця розділів
; у форматі CHS
CMP byte, 0Fh
JZ LOAD_LBA_EXT ; Це розширена таблиця розділів
; у форматі LBA
ADD SI, 10h; Переходимо на наступний розділ
CMP SI, 1EEh
JNA read_all_partitions; Читаємо всі розділи один за одним
...buf rb 512; Буфер на 512 байт

Запис сектора в режимі CHS відбувається практично так само, тільки регістр AH дорівнює не 02h, a 03h. З режимом LBA розібратися набагато складніше, але ми, як справжні хакери, його обов'язково подужаємо.

Читання сектора здійснюється функцією 42h (AH = 42h). У регістр DL , як і раніше, заноситься номер приводу, а ось регістрова пара DS:SI вказує на адресний пакет (disk address packet), що є просунутою структурою формату, описаного в табл. 5.4.

Таблиця 5.4. Формат адресного пакета, який використовується для читання та записування секторів у режимі LBA

Зміщення Тип Опис
00h BYTE Розмір пакета – 10h або 18h
01h BYTE Поле зарезервовано і має дорівнювати нулю
02h WORD Скільки секторів читати
04h DWORD 32-розрядна адреса буфера-приймача у форматі seg:offs
08h QWORD Стартовий номер сектора для читання
10h QWORD 64-розрядна плоска адреса буфера-приймача. Використовується лише у випадку, якщо 32-розрядна адреса дорівнює FFFF:FFFF

Код, що читає сектор у режимі LBA, у випадку виглядає так, як показано в лістингу 5.7.

Лістинг 5.7. Код, який здійснює читання сектора з диска в режимі LBA

MOV DI, 1BEh; Перейти до першого розділу
MOV AX, CS; Налаштовуємо...
MOV buf_seg; ...сегмент
MOV EAX, ; Зміщення partition щодо
; початку розділу
ADD EAX, EDI; EDI має містити номер сектора
; поточного MBR
MOV;
...
read_all_partitions:
MOV АН, 42h; Читати сектор в режимі LBA
MOV DL, 80h; Читати з першого диска
MOV SI, dap; Зміщення адресного пакету INT 13h
JC error; Помилка читання
...
dap:
packet_size db 10h; розмір пакету 10h байт
reserved db 00h; "Заначка" для майбутніх розширень
N_SEC dw 01h; Читаємо один сектор
buf_seg dw 00h; Сюди буде занесено сегмент буфера-приймача
buf_off dw buf; Зміщення буфера-приймача
X_SEC dd 0; Сюди буде занесено номер сектору для читання
dd 0; Хіст, що реально не використовується
; 64-бітної адреси
buf rb 512; Буфер на 512 байт

Запис здійснюється аналогічно до читання, тільки регістр AH містить не 42h , a 43h . Регістр AL визначає режим: якщо біт 0 дорівнює 1, BIOS виконує не запис, та її емуляцію. Біт 2, будучи зведеним, записує з перевіркою. Якщо регістр AL дорівнює 0, виконується звичайний запис за промовчанням.

Тепер, освоївшись із дисковими перериваннями, перейдемо до обговорення інших аспектів програмування.

Створюємо код завантажувача

Найкраще завантажувачі програмуються на FASM. З погляду асемблера завантажувач є звичайним двійковим файлом, гранично допустимий обсяг якого становить 1BBh (443) байт. Небагато? Але не поспішатимемо з висновками. Кожен розділ завжди починається з початку циліндра, а це означає, що між кінцем MBR і початком розділу є щонайменше n вільних секторів, де n == sectors per track . Практично всі сучасні вінчестери мають по 64 сектори на доріжку, що дає нам: 443 + 63*512 == 32699 байт або приблизно 32 Кбайт. Та в цей обсяг навіть графічний інтерфейс з мишею можна вмістити! Однак робити цього ми не будемо. Справжні хакери працюють у текстовому режимі з командним рядком.

Як вже говорилося, BIOS завантажує MBR за адресою 7C00h, тому на початку асемблерного коду має стояти директива ORG 7C00h, а ще – USE16, адже завантажувач виконується у 16-розрядному реальному режимі. Пізніше, за бажання, він може перейти до захищеного режиму, але це буде вже потім. Не лізтимемо в такі нетрі.

Виявивши завантажувальний розділ (а виявити це можна за прапором 80h, що знаходиться по нульовому зміщенню від початку розділу), завантажувач повинен вважати перший сектор цього розділу, помістивши його в пам'яті за адресою 0000:7C00h, тобто в точності поверх свого тіла. А ось це вже недобре! І щоб не викликати крах системи, завантажувач повинен заздалегідь перенести своє тіло на іншу адресу, що зазвичай здійснюється командою MOVSB. Копіюватися можна за будь-якою з адрес пам'яті - від 0080:0067h до 9FE00h. Пам'ять, розташовану нижче 0080:0067h, краще не чіпати, тому що тут знаходяться вектори переривань і системні змінні BIOS, а від A000h і вище починається область відображення ПЗУ, так що гранично доступна адреса дорівнює A000h - 200h (розмір сектора) == 9FE.

Не забувайте, що чіпати регістр DL у жодному разі не можна, оскільки в ньому передається номер завантажувального приводу. Деякі завантажувачі містять помилку, завжди завантажуючись з першого жорсткого диска, і це в той час, як BIOS вже більше 10 років дозволяє змінювати порядок завантаження, і тому завантажувальним може бути будь-який привід.

Правду кажучи, FASM - це єдиний відомий мені асемблер, який "перетравлює" команду далекого виклику JMP 0000:7C00h безпосередньо. Всі інші асемблери змушують перекручуватися приблизно так: PUSH offset_of_target/PUSH segment_of_target/RETF . Тут ми заштовхуємо у стек сегмент та зміщення цільової адреси та виконуємо далекий RETF, що переносить нас на потрібне місце. Ще можна скористатися кодом, що самодифікується, зібравши команду JMP FAR "вручну", або просто розташувати цільову адресу в одному сегменті з вихідною адресою (наприклад, 0000:7C00h ? 0000:7E00h). Однак ці підходи моторошні та стомлюючі.

Загалом, скелет нашого завантажувача виглядатиме так, як показано у лістингу 5.8.

Лістинг 5.8. Скелет найпростішого завантажувача написаний на FASM

use16
ORG 7C00h
CLD; Копіюємо зліва направо
; (у бік збільшення адрес)
MOV SI,7C00h; Звідки копіювати
MOV DI,7E00h; Куди копіювати
MOV CX,200h; Довжина сектора
REP MOVSB; Копіюємо
; // Вибираємо розділ, який ми хочемо завантажити,
; // зчитуємо його на згадку за адресою 0000:7C00h
; // (див. лістинги 5.7 та 5.6)
JMP 0000:7C00h; Передаємо управління на завантажувальний сектор

Записуємо завантажувач у головний завантажувальний запис

Під старенькою MS-DOS записати свій завантажувач у MBR було легко. Для цього достатньо смикнути переривання INT 13h, функція 03h (запис сектора). Але під Windows NT цей прийом не працює, і доводиться вдаватися до послуг функції CreateFile . Якщо замість імені файлу, що відкривається, вказати назву пристрою, наприклад, .PHYSICALDRIVE0 (перший фізичний диск), ми зможемо вільно читати і записувати його сектора викликами ReadFile і WriteFile відповідно. При цьому прапор dwCreationDisposition має бути встановлений на значення OPEN_EXISTING, а прапор dwShareMode - на значення FILE_SHARE_WRITE. Ще будуть потрібні права системного адміністратора, інакше нічого не вийде.

Закінчений приклад виклику CreateFile виглядає, як показано у лістингу 5.9.

Лістинг 5.9. Відкриття безпосереднього доступу до жорсткого диска під Windows NT

XOR EAX, EAX
PUSH EAX; hTemplateFile
PUSH dword FILE_ATTRIBUTE_NORMAL; dwFlagsAndtributes
PUSH dword OPEN_EXISTING; dwCreationDisposition
PUSH EAX; lpSecurityAttributes
PUSH dword FILE_SHARE_WRITE; dwShareMode
PUSH dword (GENERIC_WRITE OR GENERIC_READ) ; dwDesiredAccess
PUSH DEVICE_NAME; Ім'я пристрою
CALL CreateFile; Відкриваємо пристрій
INC EAX
TEST EAX, EAX
JZ error
DEC EAX
...
DEVICE_NAME db ".PHYSICALDRIVE0",0
BUF RB 512; Буфер

Відкривши фізичний диск і переконавшись у успішності цієї операції, ми повинні прочитати оригінальний MBR-сектор у буфер, перезаписати перші 1BBh байт, ні в якому разі не чіпаючи таблицю розділів і сигнатуру 55h AAh (адже ми не хочемо, щоб диск перестав завантажуватися, вірно? ). Тепер залишається записати оновлений код MBR на місце та закрити дескриптор пристрою. Після перезавантаження всі зміни набудуть чинності.

Примітка

Щоправда, цілком можливо, що внесені вами зміни і не подумають набути чинності. Завантажувач жорстоко мститься за найменші помилки проектування. Тому, щоб не втратити вміст своїх розділів, спочатку краще попрактикуватися на VMWare або будь-якому іншому емуляторі PC.

Під Windows 9 xЗрозуміло, трюк з CreateFile не працює. Але там можна скористатися симуляцією переривань із DMPI або звернутися до драйвера ASPI. Обидва способи були докладно описані у моїй книзі "Техніка захисту компакт-дисків від копіювання". Однак, хоча в ній йдеться про CD, а не HDD, жорсткі диски програмуються аналогічно.

Перш ніж писати власний завантажувач, рекомендується вивчити наявні нестандартні завантажувачі. Всі наведені нижче завантажувачі розповсюджуються за ліцензією GPL або BSD, тобто без обмежень.

Ge2000.asm – ретельно прокоментований Stealth-вірус, що підміняє системний завантажувач своїм власним. Хоча це і вірус, але він не небезпечний і може бути використаний у навчальних цілях.

Mbr.asm - гранично простий, але повнофункціональний завантажувач із підтримкою розділів понад 8 Гбайт.

Bootasm - чудовий менеджер мультизавантаження з докладними коментарями, переходить у захищений режим, може вантажитися з дискети, компакт-диска, zip-дискети, вінчестера тощо. Підтримує розділи понад 8 Гбайт, показує індикатор завантаження та робить багато інших корисних речей, які не завадить вивчити.

Налагодження коду завантажувача

Налагоджувати код завантажувача неймовірно важко. Завантажувач отримує керування задовго до запуску операційної системи, коли жодні налагоджувачі ще не працюють. Декілька років тому це представляло величезну проблему, і при розробці "наворочених" завантажувачів доводилося або вбудовувати в них інтегрований міні-наладчик, або вишукувати помилки вручну, вивчаючи лістинги з олівцем у руці. З появою емуляторів все змінилося. Достатньо запустити такий емулятор, як BOCHS (рис. 5.5), і ви зможете налагоджувати завантажувач як будь-яку іншу програму!


Мал. 5.5. Зовнішній вигляд емулятора BOCHS у процесі налагодження завантажувального сектора

Програмування завантажувачів - одна з небагатьох областей, в яких застосування асемблера дійсно обґрунтовано. Мови високого рівня для цього надто абстраговані від обладнання. Крім того, вони недостатньо гнучкі. Ось чому хакери так люблять возитися із завантажувачами, додаючи сюди безліч нових можливостей, включаючи автоматичне завантаження з CD-ROM або дисків SCSI, протидію вірусам, парольний захист із шифруванням даних тощо. Тут справді є де розвернутися, і є на чому показати всі свої можливості. Як додаткове читання я рекомендував би вам кілька дуже цікавих джерел. Ось вони:

? MBR та OS Boot Records- маса цікавого матеріалу з MBR (англійською мовою): http://thestarman.narod.ru/asm/mbr/MBR_in_detail.htm;

? BOCHS- відмінний емулятор з вбудованим налагоджувачем, що значно полегшує процес "пуско-налагодження" завантажувальних секторів. Безкоштовний, розповсюджується з вихідними текстами: http://bochs.sourceforge.net;

? http://www.koders.com(Мал. 5.6) - відмінний пошуковик, націлений на пошук вихідних кодів, за ключовим словом MBR видає величезну кількість завантажувачів на будь-який смак;


Мал. 5.6. Пошук вихідних текстів завантажувачів MBR на сайті Koders

? Ralf Brown Interrupt List(Рис. 5.7) - знаменитий "Список переривань" (Interrupt List) Ральфа Брауна (Ralf Brown), що описує всі переривання, включаючи недокументовані (англійською мовою): http://www.pobox.com/~ralf;


Мал. 5.7. Перегляд легендарного "Списку переривань" Ральфа Брауна

OpenBIOS - проект "Відкритого BIOS", що розповсюджується у вихідних текстах. Допомагає зрозуміти деякі неочевидні моменти обробки системного завантажувача: http://www.openbios.info/docs/index.html.

Форматування жорстких дисків виконується у три етапи:

    низькорівневе форматування (фізична розмітка диска на циліндри, доріжки, сектори);

    розбиття диска на розділи (логічні пристрої):

    високорівневе (логічне) форматування кожного розділу.

На етапі низькорівневого форматування процесор, виконуючи програму форматування, по черзі передає до контролера жорсткого диска спочатку команду "Пошук" для встановлення головок накопичувача на потрібний циліндр, а потім посилає команду "Форматувати доріжку". Виконуючи команду "Форматувати доріжку" контролер жорсткого диска, отримавши з накопичувача імпульс "Індекс" (початок доріжки), записує службовий формат доріжки, який розбиває її на сектори. Кожен сектор містить у собі блок даних (512 байт), обрамлений службовим форматом сектора (зміст до розміру службового формату визначається конкретною фірмою-розробником даного пристрою). Службовий формат доріжки та секторів необхідний контролеру жорсткого диска під час виконання команд. Читаючи та розшифровуючи поля службового формату, контролер знаходить на диску необхідний циліндр, поверхню, сектор та блок даних усередині сектора. На наступних етапах форматування блоки даних ряду секторів записується системна інформація, яка забезпечує організацію розділів на диску, автоматичне завантаження операційної системи та підтримку файлової системи на диску.

На етапі розбиття диска на розділи в блоці даних першого фізичного сектора диска (0 циліндр, 0 поверхня, 1 сектор) з адреси 1BEh формується таблиця розділів (Partition table), що складається з 4 шістнадцятибайтних рядків. Зазвичай, системну інформацію, записану в блок даних цього сектора в процесі форматування, називають Master Boot Record (MBR).

З початку блоку даних цього сектора розташовується програма (IPL 1). Перехід на IPL 1 процесор здійснює після успішного завершення POST і програми "Початкового завантажувача", виконуючи яку процесор завантажує з диска в пам'ять MBR, і передає управління на початок MBR (на програму IPL 1), продовжуючи дії, що ведуть до завантаження операційної системи. Програма IPL 1 (завантажувач), що знаходиться в MBR, переглядає рядки таблиці розділів у пошуках активного розділу з якого можливе завантаження операційної системи. Якщо у таблиці розділів немає активного розділу, видається повідомлення про помилку. Якщо хоча б один розділ містить неправильну мітку, або кілька розділів позначені як активні, видається повідомлення про помилку Invalid partition table, і процес завантаження зупиняється. Якщо активний розділ виявлено, аналізується завантажувальний сектор цього розділу. Якщо знайдено лише один активний розділ, вміст блоку даних його завантажувального сектора (BOOT) читається в пам'ять за адресою 0000:7С00 і управління передається за цією адресою, якщо завантажувальний сектор активного розділу не читається за п'ять спроб, видається повідомлення про помилку: Error loading operating system та система зупиняється; перевіряється сигнатура ліченого завантажувального сектора активного розділу і якщо останні два його байти не відповідають сигнатурі 55AAh, видається повідомлення про помилку: Missing operating system і система зупиняється). Процесор читає за адресою 0000:7С00 команду JMP, виконуючи її, передає керування на початок програми IPL 2, яка здійснює перевірку, чи дійсно розділ активний: IPL 2 перевіряє імена та розширення двох файлів у кореневому каталозі - це мають бути файли IO.SYS та MSDOS.SYS (NTLDR для Windows NT), завантажує їх і. т.д.

Система Windows 9x багато в чому ґрунтується на тих же концепціях, що й DOS, але в ній ці концепції набули подальшого логічного розвитку. Ті ж два системні файли IO.SYS і MSDOS.SYS, але тепер вся системна програма знаходиться в IO.SYS , а другий файл MSDOS.SYS містить ASCII-текст з установками, що управляють поведінкою системи під час завантаження. Еквіваленти програм Himem.sys. Ifshlp.sys і Setver.exe автоматично завантажуються програмою IO.SYS під час запуску системи. Як і раніше, для завантаження в пам'ять драйверів та резидентних програм можна використовувати файли Config.sys та Autoexec.bat, але завантаження 32-розрядних драйверів пристроїв, розроблених спеціально для Windows 9x, тепер забезпечують записи в системному реєстрі. Коли вся попередня робота виконана, запускається файл Win.com і Windows 9x завантажується і надає свої можливості через графічне меню.

Системний реєстр є базою даних, в якій Windows 9x зберігає інформацію про всі налаштування, конфігураційні установки та параметри, необхідні для її власних модулів і окремих додатків. Системний реєстр виконує функції Config.sys, Autoexec.bat і ini-файлів Windows 3.1 разом узятих. На диску комп'ютера реєстр зберігається у вигляді двох окремих файлів: System.dat та User.dat. У першому з них містяться всілякі апаратні установки, а в другому - дані про працюючих в системі користувачів і конфігураціях, що використовуються. Кожен користувач може мати власний файл User.dat, тобто. власне робоче середовище, яке він налаштовує на свій смак і потреби. Системний реєстр можна імпортувати, експортувати, а також створювати його резервні копії та, використовуючи їх, відновлювати збережені дані – одним словом, це досить потужний механізм управління системними параметрами та їх захист від втрат та пошкоджень.

Таблиця 3. Компоненти MBR

Область

Опис

Програма IPL 1 (програма завантажувача займає зону від адреси 00h до 1BEh)

Код програми Повідомлення про помилки (Error Messages):

    Invalid Partition Table (неправильна таблиця розділів).

    Error loading operating system (помилка під час завантаження операційної системи)

    Missing operating system (операційна система відсутня).

Таблиця поділу фізичного диска на логічні пристрої (Partition Tables) (4 рядки по 16 байт = 64 байти) займає зону з адреси 1BEh до 1FDh

1 рядок (16 байт):

    Прапор завантаження (80h - активний / 00h -звичайний розділ) - 1 байт

    Початковий фізичний сектор розділу (головка, сектор та циліндр) - 3 байти

    Тип розділу -1 байт

    Кінцевий фізичний сектор розділу (головка, сектор та циліндр) - 3 байти

    Число секторів попередніх розділу - 4 байти

    Загальна кількість секторів у цьому розділі - 4 байти

2 останніх байта в блоці даних сектора з адреси 1FE по 1FF-кінцева сигнатура (Ending Signature)

55АА – відзначає кінець MBR. Перевіряється програмою початкового завантажувача

Область MBR, що змінилася на FAT32 - це Partition Table. Вона, як і раніше, складається із чотирьох 16-байтних записів. Кожен запис визначає розділ. У FAT32 введено 2 нових типи розділів DOS32 (0В) та DOS32X (ОС).

Вибір одного зі стандартів GPT або MBR може виявитися досить простим для власника нового комп'ютера з великим жорстким диском та сучасним інтерфейсом UEFI.

Такі параметри вимагають переходу більш сучасний стандарт.

Тоді як за наявності більш-менш ПК вибір може бути зроблений на користь практично застарілого MBR - а він може виявитися взагалі єдиним варіантом.

Зміст:

Що означають ці абревіатури?

Будь-який жорсткий диск або твердотільний накопичувач перед використанням для запису операційної системи, системної та іншої інформації, обов'язково розбивається на розділи.

Стандарт MBR, що розшифровується як «Головний завантажувальний запис», являє собою старий спосіб зберігання даних, GPT (або "таблиця розділів GUID") - новий.

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

Хоча при цьому MBR вважається надійним і простим – і відновлення потрібно нечасто.

До мінусів стандарту відноситьсянеможливість підтримки великої кількості розділів - невеликий недолік HDD розміром до 500 ГБ, але вже досить серйозний для терабайтних або навіть 4-терабайтних моделей.

При необхідності створити більше 4 розділів потрібно використовувати досить складну технологію EBR.

Друга проблема, пов'язана із збільшенням об'ємів жорстких дисків, полягає у неможливості працювати з розділами більше 2,2 ТБ.

Переваги та недоліки нового стандарту

Удосконалений стандарт GPT, який поступово замінює MBR, входить до складу технології UEFI, який, у свою чергу, замінює застарілий інтерфейс BIOS.

Кожен розділ має свій унікальний ідентифікатор- Дуже довгий рядок символів. Перевагою GPT у порівнянні зі застарілим стандартом можна назвати:

  • відсутність обмежень обсягом розділу.Точніше, максимальна величина все ж таки існує – але досягти її вийде не раніше, ніж через кілька десятиліть;
  • необмежену кількість розділів- До 264 в цілому, до 128 для ОС Windows.

На диску, що підтримує стандарт MBR, дані про розділи та завантаження розташовані в тому самому місці. При пошкодженні цієї частини накопичувача у користувача ПК виникає низка проблем.

Ще одна відмінність GPT - зберігання циклічного надлишкового коду, що дозволяє контролювати збереження даних.

Пошкодження інформації призводить до негайної спроби її відновлення.

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

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

Сумісність

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

Системи Windows завантажуються з розмічених за технологією GPT дисків тільки на пристроях, що підтримують інтерфейс UEFI – тобто на ноутбуках та ПК з windows від Vista до 10-ї.

Якщо прошивка материнської плати містить , розділи будуть читатись, але завантаження, швидше за все, не відбудеться.

Хоча ці ж операційні системи здатні працювати з GPT-дисками як сховище інформації.

Слід знати:Стандарт GPT підтримується й іншими операційними системами, зокрема Linux. А на комп'ютерах Apple ця технологія замінила стару таблицю розділів APT.


Порівняння стандартів

Для оцінки подібності та відмінностей двох стандартів, можливостей їх роботи, накопичувачами та завантажувальним інтерфейсом, варто створити невелику порівняльну таблицю.

По ній набагато простіше визначитися з тим, який стандарт розділів використовуватиме для свого комп'ютера.

Табл. 1. Порівняльні характеристики MBR та GPT
Стандарт MBR GPT
Робота з прошивками З BIOS та з UEFIТільки з UEFI
Підтримка Windows Усі версії, починаючи з найпершихТільки 64-бітові версії Windows 7 та Vista, всі варіанти Віндоус 8 та 10
Читання та запис Будь-які платформиУсі операційні системи Windows від Vista та вище + XP Professional 64-біт
Число розділів одного диска Не більше 4До 264
Максимальний розмір розділу 2,2 ТБ9,4 х 109 ТБ
Вбудований мультизавантажувач ВідсутнєЄ

Проблеми роботи з новим стандартом та їх вирішення

Існування двох стандартів може призвести до виникнення певних проблем. Особливо, якщо на комп'ютері заборонено завантаження іншим способом, крім використання жорсткого диска.

Виправити ситуацію дозволяє перехід до , який не дозволяє працювати з новим стандартом – і при спробі завантажитись на екрані виникає помилка, що повідомляє про наявність стилю розділів GPT.

Вирішити проблему не так складно – для цього потрібно взяти звичайний завантажувальний диск з ОС Віндоус і виконати такі дії:

  • Почати завантаження з диска;
  • Дійти до моменту вибору розділу, у якому виникає проблема;
  • Запустити консоль(одночасне натискання Shift та F10);
  • Почати роботузі спеціальною утилітою, ввівши команду diskpart .

Після того як програма запущена, слід набрати «list disk» , що призведе до появи на екрані списку пронумерованих дисків.

Тепер достатньо ввести в командному рядку "clean", очистивши зайву інформацію, і перейти до перетворення стандартів.

Для того, щоб диск GPT був перетворений на застарілий формат, слід ввести команду convert mbr , що дозволяє працювати з диском і ставити на нього будь-яку платформу.

Ця ж утиліта забезпечує роботу з розділами.

Наприклад, введення команди "create partition primary size=X"створює розділ розміром X Гб, "format fs=ntfs label="System" quick"виконує форматування в NTFS, а "active" дозволяє розділу стати активним.

Висновки

Вирішуючи, який стандарт використовувати, GPT або MBR, слід визначити, який завантажувальний інтерфейс використовується, і який розмір жорсткого диска на ПК.

За наявності прошивки БІОС робота з GPT буде неможливою. Для сучаснішого комп'ютера, укомплектованого, навпаки, не варто вибирати MBR.

На порівняно нових материнських платах, випущених останніми роками, вже встановлено інтерфейс UEFI – а отже, проблем із GPT не буде.

Проте розміри дисків збільшуються ненабагато– небагато покупців вибирають комп'ютери з HDD об'ємом більше 2 ТБ і, тим більше, потребують 2,2-терабайтних розділів.

Через це особливих підстав вибирати цей стандарт у звичайного користувача поки не існує- А ось для сервера він стане чудовим варіантом.

Відео: