Як freebsd зберігає дані

Розділіть ваші дані

Як FreeBSD зберігає дані. Принципи розбивки диска.

Зауважте, що ваша FreeBSD-система обов'язково має обидві таблиці, та BIOS'овскую і Unix'ов. Це необхідно через те, що FreeBSD, будучи UNIX-системою розуміє і використовує Unix'ов таблицю розділів, проте FreeBSD так само є системою, яка змушена працювати на PC (персональному комп'ютері). Персональний комп'ютер обов'язково має спеціальне програмне забезпечення, так званий BIOS, який необхідний для правильної ініціалізації комп'ютера, визначення параметрів жорстких дисків, а так само для пошуку програмного забезпечення, яке завантажує операційну систему.







Можливо ви вже добре знайомі з програмою fdisk, що поставляється в складі DOS. Я порівняю її з утилітою fdisk з FreeBSD, для того що б ви змогли побачити схожість цих двох програм. Я покажу результати своєї роботи на одній з моїх персоналок. Я завантажив її з завантажувального DOS-диска, а потім, з командного рядка, запустив утиліту fdisk:

Ми опинилися в головному меню програми fdisk для DOS. Оскільки я не хочу міняти таблицю розділів, я виберу 4 пункт, для того що б просто подивитися її вміст.

Зверніть увагу, що я розбив мій диск на три Слайса, які в DOS називаються партіціі (partition). Перший слайс має ознака «A» що означає, що в ньому записано завантажувальний код, необхідний для правильної завантаження операційної системи. Цей розділ має обсяг 204 Мб і відформатований в системі FAT16.

Другий слайс, об'ємом 3139 Мб містить мою FreeBSD. DOS-версія утиліти fdisk не в змозі правильно визначити тип файлової системи на цьому розділі, тому вона просто називає її «non-DOS" (не-DOS).

Давайте резюмуємо інформацію, яку ми з так ретельно добували за допомогою DOS-івського fdisk'а. Отже цей комп'ютер має жорсткий диск об'ємом 6150 Мб. Він розбитий на розділи наступним чином:

DOS використовує наступну схему іменування розділів:
  1. Основні розділи іменуються в першу чергу, починаючи з букви «C», оскільки літери «A» і «B» зарезервовані для дисководів гнучких дисків.
  2. Коли всі основні розділи названі, іменуються логічні диски.
  3. Додатковий розділ, а так само розділи невідомих типів браком.

Тепер давайте порівняємо fdisk'а для DOS з висновком fdisk для FreeBSD. Якщо ви просто надрукуєте fdisk в запрошенні командного інтерпретатора, то він виведе вам вміст BIOS'овской таблиці розділів. Однак якщо ви спробуєте зробити це від імені звичайного користувача, ви отримаєте тільки таке повідомлення:

Якщо ви уважно подивитеся на цей висновок, то помітите, що fdisk для FreeBSD видає ту ж саму інформацію що і fdisk для DOS і ще велика кількість різноманітних подробиць щодо фізичного розбиття диска. Вся ця інформація завжди міститься в BIOS'овской таблиці розділів, проте fdisk для DOS видає лише малу її частину.

Жорсткий диск розбивається на логічні блоки, які називаються циліндрами і секторами. Мій FreeBSD-розділ (номер 2) починається з першого сектора 26 циліндра, а закінчується в 63 секторі 432 циліндра. Оскільки циліндр складається з 63 секторів, ми почали з початку 26 циліндра і закінчили кінцем 432-го. Разом FreeBSD-розділ містить 407 циліндрів. Ми ще побачимо інформацію про циліндрах, коли будемо розглядати вміст Unix'ов таблиці розділів. Так само ви можете подивитися коротку інформацію про таблиці розділів за допомогою команди fdisk, виконавши її з ключем -s:







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

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

Якщо слайс містить операційну систему FreeBSD, то на нього буде записана Unix'ов таблиця розділів. Слайс FreeBSD може містити до восьми розділів і кожен з них може мати свою файлову систему або бути розділом свопинга.

Якщо ви запустите утиліту disklabel без ключів, ви зможете безпечно подивитися вміст Unix'ов таблиці розділів. Однак як і в випадку з fdisk'ом без прав суперкористувача не обійтися, оскільки тільки він має право на доступ до дискового пристрою. Моя персоналка працює під управлінням FreeBSD 4.2, IDE жорсткий диск має в ній ім'я ad. Жорсткі диски нумеруються з нуля, і оскільки у мене система стоїть на першому диску, то зазначимо пристрій ad0:

Unix'ов таблиця розділів разюче відрізняється від BIOS'овской. Всі ці розділи живуть в одному FreeBSD-слайсами, який BIOS бачить як розділ номер 2. Зверніть увагу, що один цей слайс позначений п'ятьма буквами, але ні файлова системи закріплена за «c» позначена як «невживана» (unused). За внутрісистемного угодою буква «c» завжди означає весь слайс цілком, а реальні файлові системи закріплюються за буквами «a-b» і «d-e». Цей FreeBSD-слайс містить в собі три файлові системи, позначені буквами «a», «e» і «f». Буквою «b» позначений розділ свопінгу.

Кожна файлова система визначається своєю групою циліндрів, яка вдає із себе простий безперервний ділянку згрупованих разом циліндрів. Кожна файлова система відповідає за дані тільки тієї групи циліндрів, які їй належать. Отже, файлова система «a» знаходиться на просторі від нульового до шостого циліндра, файлова система «e» розташовується на протязі 23-25 ​​циліндрів і, нарешті, файлова система «f» знаходиться на 25-406 циліндрах. Зверніть увагу, що весь слайс (позначений буквою «c») розміщується на циліндрах 0-406, що в сумі дає обсяг в 407 циліндрів, які і показує нам утиліта fdisk для FreeBSD.

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

Нарешті, трохи математики і ми зможемо підрахувати наскільки великий наш слайс в мегабайтах. Отже наш слайс складається з 6538455 секторів, при цьому розмір кожного сектора - 512 байт. Якщо ми помножимо кількість секторів на кількість байт в секторі, то ми отримаємо обсяг Слайса в байтах (ох-ох-ох ... це безсумнівно варто пояснювати детально - прим. Перекладача). Якщо ми розділимо отримане число на 1024, то отримаємо розмір Слайса в кілобайтах. А якщо ми ще раз розділимо результат на 1024, то отримаємо шуканий розмір Слайса в мегабайтах:

що повністю збігається з даними програми fdisk.







Схожі статті