Алгоритм відновлення даних файлової системи HFS+

У цій статті ми розберемо структуру файлової системи HFS+, які зміни вона отримала в порівнянні з ранньою її версією HFS. Розглянемо алгоритми відновлення даних на диску з файловою системою HFS+.

Алгоритм відновлення даних файлової системи HFS+

Переваги та відмінності 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 plus диска. Як відновити MacOs Extended диск 🍏

🔝 Топ програм для відновлення даних із HFS plus диска. Як відновити MacOs Extended диск 🍏

Архітектура HFS Plus

Простір у HFS Plus поділено на сектори (так звані логічні блоки), які зазвичай мають розмір 512 байтів. Ці сектори групуються в блоки розподілу (аналог кластерів у Windows), які можуть містити один або кілька секторів. Кількість блоків розподілу залежить від загального розміру тому. У HFS+ значення для блоків розподілу дорівнює 32-м бітам. Файлова система має Big Endian кодування.

HFS Plus

Для управління розміщенням даних на диску, 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). Область диска з фіксованим розміром і позицією.

Система містить ще багато структур, але для відновлення даних ці мають переважне значення. Для того, щоб продовжити розбір структури нам необхідно розібратися з базовими поняттями – Бі-дерево і розширення записів.

Що таке Бі-дерево?

Для зберігання частини інформації HFS+, використовуються Бі-дерева. Вони необхідні для запису довільних масивів інформації (наприклад, 100 MB) в блоки з фіксованим розміром (наприклад, 4 KB). В цьому випадку в перший блок записується не інформація, а посилання на наступні блоки, в яких так само можуть зберігатися посилання на наступний рівень блоків або безпосередньо необхідна інформація. Елементи дерева, які зберігають посилання називаються вузлами, а елементи 0 рівня з даними називаються листям.

Бі-дерево

Що таке розширення записів і Extent Overflow File?

Для збереження інформації про займані файлом сектори, HFS+ може використовувати від 0 до 8 розширених записів. Кожен запис зберігає посилання на перший сектор з даними, та кількість послідовних кластерів, використовуваних під дані. Якщо файл сильно фрагментований і 8 записів не вистачає для опису всіх частин, то фрагменти які записуються в файл з додатковими розширеннями – Extent Overflow File.

Volume header

Зоголовок тому завжди перебуває в другому секторі від початку диска і містить загальну інформацію про том. Це розмір блоків розміщення, час створення тому і адреси розміщення інших структур файлової системи: Catalog File, Extent Overflow File, Allocation File, Journal та ін. У другому секторі від кінця диска завжди знаходиться резервна копія заголовка.

Volume header
Volume header
Volume header

Allocation file

Файл містить інформацію про вільні та зайняті блоки розміщення. Кожен блок представлений одним бітом, значення «1» відповідає зайнятому блоку, а «0» – вільному. Іноді таку структуру називають бітова карта (bitmap). Файл може мати довільний розмір і не обов’язково розміщується в суміжних блоках. Інформація про фрагменти файлу описана в заголовку тому.

Allocation file

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). В розширеннях зберігаються посилання на наступні поля, в яких лежить інформації про атрибут великого розміру.

StartUp file

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

Bad blocks

Файл містить інформацію про всі переміщеннях сектора.

Journal

Журнал не є файлом, а фіксованою областю даних на диску. Посилання на перший сектор і розмір області зберігається в заголовку розділу. Перш ніж записати будь-які зміни на диск, HFS+ записує їх в журнал, а потім в системні файли. У разі відключення електроенергії в момент запису можна провести відновлення файлової системи.

Необхідно врахувати, що розмір журналу у HFS+ обмежений і періодично його вміст буде перезаписано. Журнал завантажувального тому Mac-mini зазвичай перезаписується за 5-10 хвилин, а MacBook за 30 хвилин. Якщо активована Time Machine, то час скорочується до 20 секунд.

Journal

Відновлення даних в 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, то відновлення втрачених даних не викликає особливих проблем.

Time Machine

Алгоритм відновлення HFS+

Відновлення інформації з файлової системи HFS+ набагато складніше ніж з інших систем. Проблеми виникають через те, що HFS+ використовуються B-дерева для зберігання метаданих про розміщення файлів. Після того як якийсь файл видалений, B-дерево оновлюється, і інформація про розміщення видаленого файлу втрачається.

Наша програма дозволяє побачити пристрій і структуру файлової системи HFS+ в Windows без додаткового софту та драйверів.

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

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

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

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

Алгоритм відновлення HFS+

Висновок

В цілому, можна сказати що реалізація файлової системи HFS+ є вже застарілою. На зміну HFS+ вже прийшла нова файлова система – Apple File System.

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

Перейти до перегляду
🍏 Топ програм для відновлення даних з APFS диска або як відновити Apple MacOs диск у Windows 🍏

🍏 Топ програм для відновлення даних з APFS диска або як відновити Apple MacOs диск у Windows 🍏

Valery Martyshko

Автор: , Технічний письменник

Автор, перекладач та технічний спеціаліст компанії Hetman Software. Має майже десятирічний досвід роботи в IT сфері, який охоплює різні галузі: від ПК з Windows та мобільних пристроїв, до фото та відео обладнання, сигналізацій та систем відеоспостереження, і т.д. Окрім іншого, є також спеціалістом по Android, Windows та Microsoft Office. Є експертом в області відновлення даних, файлових систем, пристроїв зберігання даних, RAID масивів.

Vladyslav Kupriyenko

Редактор: , Технічний письменник

Редактор статей блогу, автор та ведучий рубрики на YouTube каналі компанії Hetman Software. За освітою: спеціаліст з обслуговування комп’ютерних систем та мереж, вивчав розробку програмного забезпечення. Має досвід роботи в IT сфері, який охоплює різні галузі: адміністрування комп’ютерної мережі та обладнання, контроль та підтримка роботи Інтернет, офісних та спеціалізованих програм. Є фахівцем в області відновлення даних, файлових систем та пристроїв зберігання даних.

Рекомендуємо для вас

Вас вітає асистент Hetman Software створений на основі штучного інтелекту.
Розпочати чат