Налаштування обладнання та програмного забезпечення

Зберігання інформації на жорстких дисках

Зберігання інформації на жорстких дисках

Частина 1

1. Введення

Більшість користувачів, відповідаючи на питання, що знаходиться в їхньому системному блоці, також згадують вінчестер. Вінчестер – це пристрій, на якому найчастіше зберігаються Ваші дані. Існує легенда, яка пояснює, чому за жорсткими дисками повелася така химерна назва. Перший жорсткий диск, випущений Америці на початку 70-х, мав ємність по 30 МБ інформації кожної робочої поверхні. У той же час широко відома в тій же Америці магазинна гвинтівка О. Ф. Вінчестера мала калібр - 0,30; може гуркотів при своїй роботі перший вінчестер як автомат або порохом від нього пахло - не знаю, але з того часу стали називати жорсткі диски вінчестерами.

У процесі роботи комп'ютера трапляються збої. Віруси, перебої енергопостачання, програмні помилки — все це може спричинити пошкодження інформації, що зберігається на жорсткому диску. Пошкодження інформації далеко не завжди означає її втрату, тому корисно знати про те, як вона зберігається на жорсткому диску, бо тоді її можна відновити. Тоді, наприклад, у разі пошкодження вірусом завантажувальної області, не обов'язково форматувати весь диск (!), а, відновивши пошкоджене місце, продовжити нормальну роботу зі збереженням всіх своїх безцінних даних.

З одного боку, в процесі написання цієї статті я ставив собі завдання розповісти Вам:

  1. про засади запису інформації на жорсткий диск;
  2. про розміщення та завантаження операційної системи;
  3. про те, як грамотно розділити Ваш новий вінчестер на розділи з метою використання декількох операційних систем.

З іншого боку, я хочу підготувати читача до другої статті, в якій я розповім про програми, які називають boot manager-ами. Для того щоб розуміти, як працюють ці програми, потрібно мати базові знання про такі речі як MBR, Partitions і т.д.

Досить загальних слів - приступимо.

2. Пристрій жорсткого диска

Жорсткий диск (НDD - Hard Disk Drive) влаштований наступним чином: на шпинделі, з'єднаним з електромотором, розташований блок з декількох дисків (млинців), над поверхнею яких знаходяться головки для читання/запису інформації. Форма голівок надається у вигляді крила і кріпляться вони на серпоподібний повідець. Під час роботи вони «літають» над поверхнею дисків у повітряному потоці, що створюється при обертанні цих дисків. Вочевидь, що підйомна сила залежить від тиску повітря на головки. Воно ж, своєю чергою, залежить від зовнішнього атмосферного тиску. Тому деякі виробники вказують у специфікації на пристрої граничну стелю експлуатації (наприклад, 3000 м). Ну, чим не літак? Диск розбитий на доріжки (або треки), які у свою чергу поділені на сектори. Дві доріжки, що рівно віддалені від центру, але розташовані по різні боки диска, називаються циліндрами.

3. Зберігання інформації

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

На жаль, досить часто відбувається плутанина між такими поняттями як «сектор», «кластер» та «блок». Фактично, між «блоком» та «сектором» різниці немає. Щоправда, одне поняття логічне, а друге — топологічне. "Кластер" - це кілька секторів, що розглядаються операційною системою як одне ціле. Чому не відмовилися від простої роботи із секторами? Відповім. Перехід до кластерів стався оскільки розмір таблиці FAT було обмежено, а розмір диска збільшувався. У разі FAT16 для диска об'ємом 512 МБ кластер становитиме 8 КБ, до 1 ГБ – 16 КБ, до 2 ГБ – 32 КБ тощо.

Щоб однозначно адресувати блок даних, необхідно вказати всі три числа (номер циліндра, номер сектора на доріжці, номер головки). Такий спосіб адресації диска був поширений і отримав згодом позначення абревіатурою CHS (cylinder, head, sector). Саме цей спосіб був спочатку реалізований у BIOS, тому згодом виникли обмеження, пов'язані з ним. Справа в тому, що BIOS визначив розрядну сітку адрес на 63 сектори, 1024 циліндри та 255 головок. Однак розвиток жорстких дисків на той час обмежився використанням лише 16 головок у зв'язку із складністю виготовлення. Звідси з'явилося перше обмеження максимально допустиму для адресації ємність жорсткого диска: 1024×16×63×512 = 504 МБ.

Згодом, виробники стали робити HDD більшого розміру. Відповідно число циліндрів ними перевищило 1024, максимально допустиме число циліндрів (з погляду старих BIOS). Однак, адресована частина диска продовжувала дорівнювати 504 Мбайт за умови, що звернення до диска велося засобами BIOS. Це обмеження з часом було знято запровадженням так званого механізму трансляції адрес, про який трохи нижче.

Проблеми, що виникли з обмеженістю BIOS щодо фізичної геометрії дисків, призвели зрештою до появи нового способу адресації блоків на диску. Цей метод досить простий. Блоки на диску описуються одним параметром – лінійною адресою блоку. Адресація диска лінійно отримала абревіатуру LBA (logical block addressing). Лінійна адреса блоку однозначно пов'язана з його CHS адресою:

lba = (cyl * HEADS + head) * SECTORS + (sector-1);

Введення підтримки лінійної адресації в контролери жорстких дисків дало можливість BIOS"aм зайнятися трансляцією адрес. Суть цього методу полягає в тому, що якщо в наведеній вище формулі збільшити параметр HEADS, то потрібно менше циліндрів, щоб адресувати ту саму кількість блоків диска. Але зате потрібно головок.Однак головок-то якраз використовувалося всього 16 з 255. Тому BIOS"и стали переводити надлишкові циліндри в головки, зменшуючи число одних і збільшуючи число інших. Це дозволило їм використовувати розрядну сітку головок. Це відсунуло межу адресованого BIOS"ом дискового простору до 8 ГБ.

Не можна не сказати кілька слів і про Large Mode. Цей режим роботи призначений для жорстких дисків об'ємом до 1 ГБ. У Large Mode кількість логічних головок збільшується до 32, а кількість логічних циліндрів зменшується вдвічі. При цьому звернення до логічних головок 0.. F транслюються в парні фізичні циліндри, а звернення до головок 10.. F - в непарні. Вінчестер, розмічений у режимі LBA, несумісний із режимом Large, і навпаки.

Подальше збільшення об'ємів диска, що адресуються, з використанням колишніх сервісів BIOS стало принципово неможливим. Дійсно, всі параметри задіяні за максимальною «планкою» (63 сектори, 1024 циліндри та 255 головок). Тоді було розроблено новий розширений інтерфейс BIOS, що враховує можливість великих адрес блоків. Однак цей інтерфейс вже не сумісний з колишнім, внаслідок чого старі операційні системи, такі як DOS, які користуються старими інтерфейсами BIOS, не змогли і не зможуть переступити межі 8GB. Практично всі сучасні системи вже не користуються BIOS, а використовують власні драйвера для роботи з дисками. Тому дане обмеження на них не поширюється. Але слід розуміти, що перш ніж система зможе використовувати власний драйвер, вона повинна як мінімум його завантажити. На етапі початкового завантаження будь-яка система змушена користуватися BIOS". Це і викликає обмеження на розміщення багатьох систем за межами 8GB, вони не можуть звідти завантажуватись, але можуть читати та писати інформацію (наприклад, DOS який працює з диском через BIOS).

4. Розділи, або Partitions

Звернемося до розміщення операційних систем на жорстких дисках. Для організації систем дисковий адресний простір блоків поділяється на частини, які називаються розділами (partitions). Розділи повністю подібні до цілого диска в тому, що вони складаються з суміжних блоків. Завдяки такій організації для опису розділу достатньо вказівки початку розділу та його довжини у блоках. Жорсткий диск може містити чотири первинні розділи.

Під час завантаження комп'ютера, BIOS завантажує перший сектор головного розділу (завантажувальний сектор) на адресу 0000h:7C00h і передає йому управління. На початку цього сектора розташований завантажувач (завантажувальний код), який прочитує таблицю розділів і визначає розділ, що завантажується (активний). А далі все повторюється. Тобто він завантажує завантажувальний сектор цього розділу на цю адресу і знову передає йому управління.

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

Розділи із файловими системами не повинні перетинатися. Це пов'язано з тим, що дві різні файлові системи мають кожна своє уявлення про розміщення файлів, але коли це розміщення припадає на те саме фізичне місце на диску, між файловими системами виникає конфлікт. Цей конфлікт виникає не відразу, а лише в міру того, як файли починають розміщуватися там диска, де розділи перетинаються. Тому слід уважно ставитись до розділення диска на розділи.

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

Диск розбивається на розділи програмним шляхом. Тобто Ви можете створити довільну конфігурацію розділів. Інформація про розбиття диска зберігається в першому блоці жорсткого диска, що називається головним завантажувальним записом (Master Boot Record (MBR)).

5. MBR

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

Все те, що знаходиться по зміщенню 01BEh-01FDh називається таблицею розділів. Ви бачите, що в ній чотири розділи. Тільки один із чотирьох розділів має право бути поміченим як активний, що означатиме, що програма завантаження має завантажити на згадку перший сектор саме цього розділу та передати туди управління. Останні два байти MBR повинні містити число 0xAA55. Наявність цієї сигнатури BIOS перевіряє, що перший блок був завантажений успішно. Сигнатура ця обрана невипадково. Її успішна перевірка дозволяє встановити, що всі лінії даних можуть передавати і нулі, і одиниці.

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

Давайте подивимося як влаштований дескриптор розділу:


* 0001h-0003h початок розділу
** 0005h-0007h кінець розділу

З погляду розділів диска найпопулярнішою донедавна була і залишається MS-DOS. Вона забирає у своє користування два з чотирьох розділів: Primary DOS partition, Extended DOS partition. Перший з них (primary) це звичайний досовий диск C:. Другий це контейнер логічних дисків. Вони всі бовтаються там у вигляді ланцюжка підрозділів, які так і називаються: D:, E:, ... Логічні диски можуть мати і сторонні файлові системи, відмінні від файлової системи DOS. Однак, як правило, стороння файлова система пов'язана присутністю ще однієї операційної системи, яку, взагалі кажучи, слід було б помістити у свій власний розділ (не extended DOS), але для таких витівок часто виявляється занадто маленькою таблиця розділів.

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

6. Висновок

Я сподіваюся, що зміг досить зрозуміло і докладно подати базову інформацію про пристрій жорсткого диска, MBR і PT. На мою думку, такого набору знань цілком достатньо для дрібного «ремонту» сховища інформації. У наступній статті я розповім Вам про програми, які звуться Boot Manager, та принципи їх роботи.

Дякуємо за допомогу Володимиру Дашевському

Сподобалась стаття? Поділіться з друзями!
Чи була ця стаття корисною?
Так
Ні
Дякую за ваш відгук!
Щось пішло не так і Ваш голос не було враховано.
Спасибі. Ваше повідомлення надіслано
Знайшли у тексті помилку?
Виділіть її, натисніть Ctrl+Enterі ми все виправимо!