Алгоритм відновлення даних файлової системи HFS+
У цій статті ми розберемо структуру файлової системи HFS+, які зміни вона отримала в порівнянні з ранньою її версією HFS. Розглянемо алгоритми відновлення даних на диску з файловою системою HFS+.
- 1. Переваги та відмінності HFS+
- 2. Архітектура HFS Plus
- 3. Відновлення даних в Time Machine
- 4. Алгоритм відновлення HFS+
- Висновок
- Питання та відповіді
- Коментарі
1. Переваги та відмінності HFS+
Головною відмінністю HFS+ є те, що вона використовує 32-бітну архітектуру замість 16-бітної, як у HFS. Стара адресація була серйозним обмеженням, що не дозволяла працювати з томами обсягом понад 65536 блоків. При обсязі диска в 1 ГБ розмір кластера (блоку) становив 16 КБ – навіть файл з 1 байта займав всі 16 КБ.
У HFS +, так як і в попередній системі, використовується B-дерево для зберігання більшої частини метаданих.
Том у HFS+ поділений на сектори (у HFS вони називалися логічними блоками) рівні 512 байтам. Один або більше секторів складають кластер, загальне число кластерів залежить від обсягу диска. 32-бітна адресація дозволяє отримати доступ до понад 4 294 967 296 кластерам проти старих 65 536. У порівнянні ці дві системи мають:
- різну довжину імені файлу – у HFS:31, у HFS+: 255;
- кодування імен файлів – HFS: Mac Roman, HFS+: Unicode;
- розмір вузла каталогу – HFS: 512 байт, HFS+: 4 Kбайт;
- збільшений максимальний розмір файлу: HFS: 2^31, HFS+: 2^63.
Перевага або Відмінність | Опис |
---|---|
Підтримка великих файлів | HFS+ підтримує роботу з файлами великого розміру, що робить його корисним для зберігання мультимедійних файлів та інших об’ємних даних. |
Журнальована файлова система | HFS+ має можливість журналювання, що дозволяє зменшити ризик втрати даних при збоях системи або раптовому відключенні живлення. |
Підтримка Unicode | Файлова система HFS+ підтримує кодування Unicode, що дозволяє зберігати файли з назвами на різних мовах. |
Оптимізація для використання в macOS | HFS+ розроблено спеціально для macOS, що забезпечує високу продуктивність та стабільність роботи на цих пристроях. |
Дефрагментація | Файлова система HFS+ автоматично виконує дефрагментацію файлів, що підвищує продуктивність при читанні та записі даних. |
Підтримка метаданих | HFS+ підтримує розширені метадані, що дозволяє краще організовувати та керувати файлами. |
Сумісність з Time Machine | Файлова система HFS+ повністю сумісна з функцією резервного копіювання Time Machine у macOS. |
Обмеження на підтримку сучасних систем | HFS+ не має тієї ж функціональності і надійності, як APFS (Apple File System), що є стандартом у нових версіях macOS. |
2. Архітектура HFS Plus
Простір у HFS Plus поділено на сектори (так звані логічні блоки), які зазвичай мають розмір 512 байтів. Ці сектори групуються в блоки розподілу (аналог кластерів у Windows), які можуть містити один або кілька секторів. Кількість блоків розподілу залежить від загального розміру тому. У HFS+ значення для блоків розподілу дорівнює 32-м бітам. Файлова система має Big Endian кодування.
Для управління розміщенням даних на диску, HFS+ зберігає на ньому службову інформацію – файли метаданих. Серед них найбільш важливі для роботи файлової системи та найбільш цікаві при пошуку зниклих даних наступні елементи:
- Тема розділу (Volume Header). Має структуру таблиці, використовує розширення записів (Extents);
- Карта зайнятого простору диска (Allocation File). Структура – бітова карта, використовує розширення записів (Extents);
- Каталог файлів (Catalog File). Має структуру Бі-дерева (B-Tree), використовує розширення записів (Extents);
- Додаткові розширення записів (Extents Overflow File). Має структуру Бі-дерева (B-Tree);
- Список збійних секторів (Bad block file). Має структуру Бі-дерева (B-Tree);
- Файл запуску (StartUp file). Фіксований розмір;
- Журнал (Journal). Область диска з фіксованим розміром і позицією.
Система містить ще багато структур, але для відновлення даних ці мають переважне значення. Для того, щоб продовжити розбір структури нам необхідно розібратися з базовими поняттями – Бі-дерево і розширення записів.
a. Що таке Бі-дерево?
Для зберігання частини інформації HFS+, використовуються Бі-дерева. Вони необхідні для запису довільних масивів інформації (наприклад, 100 MB) в блоки з фіксованим розміром (наприклад, 4 KB). В цьому випадку в перший блок записується не інформація, а посилання на наступні блоки, в яких так само можуть зберігатися посилання на наступний рівень блоків або безпосередньо необхідна інформація. Елементи дерева, які зберігають посилання називаються вузлами, а елементи 0 рівня з даними називаються листям.
b. Що таке розширення записів і Extent Overflow File?
Для збереження інформації про займані файлом сектори, HFS+ може використовувати від 0 до 8 розширених записів. Кожен запис зберігає посилання на перший сектор з даними, та кількість послідовних кластерів, використовуваних під дані. Якщо файл сильно фрагментований і 8 записів не вистачає для опису всіх частин, то фрагменти які записуються в файл з додатковими розширеннями – Extent Overflow File.
c. Volume header
Зоголовок тому завжди перебуває в другому секторі від початку диска і містить загальну інформацію про том. Це розмір блоків розміщення, час створення тому і адреси розміщення інших структур файлової системи: Catalog File, Extent Overflow File, Allocation File, Journal та ін. У другому секторі від кінця диска завжди знаходиться резервна копія заголовка.
d. Allocation file
Файл містить інформацію про вільні та зайняті блоки розміщення. Кожен блок представлений одним бітом, значення «1» відповідає зайнятому блоку, а «0» – вільному. Іноді таку структуру називають бітова карта (bitmap). Файл може мати довільний розмір і не обов’язково розміщується в суміжних блоках. Інформація про фрагменти файлу описана в заголовку тому.
e. Catalog file
Файл зберігає більшу частину даних про розміщення файлів і папок на диску. Це досить велика структура являє собою B-дерево.
Цей файл у HFS Plus дуже схожий на файл каталогу HFS. Основна відмінність – це розмір поля. Вони стали більшими і тепер вміщають більше інформації. Наприклад, це дозволяє використовувати більш довгі імена Unicode файлів (255-символів). Розмір запису у HFS становить 512 байтів, а у HFS Plus дорівнює 4 КБ для Mac OS і 8 КБ для OS X. Поля у HFS мають фіксований розмір, а у HFS Plus розмір може варіюватися в залежності від фактичного розміру даних.
Більшість полів зберігають невеликі атрибути, які можуть розміститися всередині 4 КБ. Для атрибутів більшого розміру використовуються додатковими розширення (максимум 8, якщо необхідно більше розширень вони зберігаються в Extent Overflow File). В розширеннях зберігаються посилання на наступні поля, в яких лежить інформації про атрибут великого розміру.
f. StartUp file
Файл призначений для операційних систем, які не підтримують HFS або HFS Plus. Це схоже на завантажувальні блоки з тому HFS.
g. Bad blocks
Файл містить інформацію про всі переміщеннях сектора.
h. Journal
Журнал не є файлом, а фіксованою областю даних на диску. Посилання на перший сектор і розмір області зберігається в заголовку розділу. Перш ніж записати будь-які зміни на диск, HFS+ записує їх в журнал, а потім в системні файли. У разі відключення електроенергії в момент запису можна провести відновлення файлової системи.
Необхідно врахувати, що розмір журналу у HFS+ обмежений і періодично його вміст буде перезаписано. Журнал завантажувального тому Mac-mini зазвичай перезаписується за 5-10 хвилин, а MacBook за 30 хвилин. Якщо активована Time Machine, то час скорочується до 20 секунд.
3. Відновлення даних в Time Machine
Починаючи з MacOS X Leopard, до складу системи входить Time Machine. Ця утиліта створює резервні копії файлів, записуючи всі зміни, що відбуваються з файлової системою. Перераховані дії дозволяють користувачеві відновити всю систему, кілька файлів або один окремий файл в тому вигляді, в якому він знаходився в певний момент часу.
Для роботи Time Machine необхідно виділити окремий диск. Apple випускає спеціальний пристрій Apple Time Capsule, який використовується як мережевий диск спеціально для резервних копій Time Machine. Time Machine може використовуватися і з будь-яким USB або eSata-диском. При першому запуску Time Machine створює папку на зазначеному резервному диску, що містить всі дані.
Потім Time Machine буде копіювати лише змінені файли. Загалом, якщо для диска використовується Time Machine, то відновлення втрачених даних не викликає особливих проблем.
4. Алгоритм відновлення HFS+
Відновлення інформації з файлової системи HFS+ набагато складніше ніж з інших систем. Проблеми виникають через те, що HFS+ використовуються B-дерева для зберігання метаданих про розміщення файлів. Після того як якийсь файл видалений, B-дерево оновлюється, і інформація про розміщення видаленого файлу втрачається.
Наша програма дозволяє побачити пристрій і структуру файлової системи HFS+ в Windows без додаткового софту та драйверів.
Крок | Опис дій |
---|---|
1. Встановлення програми | Скачайте та встановіть Hetman Partition Recovery на вашому комп’ютері. |
2. Підключення накопичувача | Підключіть HFS+ накопичувач до комп’ютера, якщо він не є внутрішнім. |
3. Запуск програми | Відкрийте Hetman Partition Recovery та оберіть HFS+ накопичувач у списку доступних дисків. |
4. Сканування диска | Запустіть процес сканування для виявлення втрачених або видалених файлів. |
5. Перегляд відновлених даних | Після закінчення сканування перегляньте відновлені файли у зручному для вас форматі. |
6. Вибір файлів для відновлення | Виберіть файли, які ви хочете відновити, і натисніть кнопку відновлення. |
7. Збереження відновлених файлів | Збережіть відновлені файли на інший диск або зовнішній накопичувач для запобігання перезапису даних. |
Алгоритм утиліти при повному аналізі дозволяє виключити ці ланки в процесі пошуку втрачених даних, і відновити потрібну нам інформацію.
При швидкому аналізі програма читає заголовок тому (Volume header) або його резервну копію. З заголовка отримує адресу файлу каталогу (Catalog file) і місце розміщення журналу на диску. Якщо блоки, які належать видаленим файлам, ще не перезаписані, то вона читає їх і відновлює дані.
Якщо блоки вмдаленого файлу ще не були перезаписані, то цей спосіб дозволить повністю відновити файл. Навіть якщо блоки файлу перезаписані, дані файлу можуть ще залишитися в журналі, або файл буде відновлений частково.
Алгоритм повного аналізу програми дозволить виключити елементи ланцюжка в процесі пошуку видалених даних. Утиліта побудує структуру диска і відобразить видалені файли, навіть якщо заголовок розділу і файл каталогу були частково перезаписані.
Висновок
В цілому, можна сказати що реалізація файлової системи HFS+ є вже застарілою. На зміну HFS+ вже прийшла нова файлова система – Apple File System.
HFS+ значно поступається у швидкості, безпеці та надійності APFS, тому для неї дуже актуальне питання відновлення даних. Інформація дуже рідко зникає безслідно. Добре знаючи роботу файлової системи, можна відновити навіть те, що вважалося назавжди втраченим.
1. Відсутність доступу до файлової системи HFS+ або відсутність правильного драйвера.
2. Пошкодження або втрата файлової системи HFS+.
3. Неправильний формат файлу, який може призвести до порушення цілісності файлу.
4. Помилки при записі, які можуть викликати помилки при зчитуванні.
5. Відсутність резервної копії, яка може зникнути, якщо файлова система HFS+ неможливо відновити.
1. Програма повинна мати можливість читання і відновлення файлів, які були втрачені або пошкоджені з диска, який має файлову систему HFS+.
2. Програма повинна мати можливість сканувати і відновлювати файли, які були пошкоджені або втрачені з диска, який має файлову систему HFS+.
3. Програма повинна мати можливість розпізнавати структуру HFS+ файлової системи та його суб-структуру.
4. Програма повинна мати можливість розпізнавати різні типи файлів, які можуть бути збережені на HFS+ файлової системі.
5. Програма повинна мати можливість пошуку файлів, які були втрачені, пошкоджені, або переміщені.
6. Програма повинна мати можливість створення резервної копії HFS+ файлової системи.
7. Програма повинна мати можливість редагування файлової системи HFS+, яку можна використовувати, якщо створено резервну копію.