Аналіз та відновлення таблиці розділів диска

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

Аналіз таблиці розділів диска

Основні поняття

  • Жорсткі диски складаються з декількох магнітних дисків, що нагадують CD/DVD-диски. Кожен диск може зберігати дані на обох сторонах і має головки для читання і запису. Дані зберігаються на концентричних кільцях, так званих циліндрах. Циліндри можуть бути розділені на сектори або блоки.

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

  • Перед тим як почати процес відновлення, ви повинні розуміти три речі:

    • Master Boot Record (далі MBR). Це те, з чого все починається. MBR завжди розміщується в першому секторі на диску. Якщо такий запис є, то диск є завантажувальним, а якщо немає – то не завантажувальний. Диск, який містить операційну систему, повинен бути завантажувальним.

    • Volume Boot Record (далі VBR). Сектор, який також відомий як завантажувальний сектор або завантажувальний запис розділу. Це поняття розроблено IBM і використовується для створення розділів на жорсткому диску (наприклад: «C:\», «D:\», «E:\» і т.д.). Кожен логічний диск має свій власний VBR.

    • File Systems (файлові системи). Це набір алгоритмів, що визначають спосіб організації, зберігання та іменування даних, а також структуру інформації. Якщо ви хочете відновити файли, ви повинні знати який тип файлової системи на вашому диску (NTFS чи FAT32).

Що таке логічне пошкодження даних?

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

  • Диск та його сектори розпізнаються операційною системою.

  • ОС має доступ до жорсткого диска та його секторів.

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

Рівень пошкодження

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

Розглянемо детальніше:

  • Рівень 1: Це простий рівень, коли пошкоджена тільки таблиця розділу вашого MBR. В даному випадку необхідно знайти VBR. Як тільки буде знайдений VBR, ви зможете відновити дані.

  • Рівень 2: В цьому рівні деякі поля вашого VBR пошкоджені, через що ОС не в змозі розпізнати свою файлову систему. В даному випадку ви повинні проаналізувати VBR, щоб отримати адресне поле вашого кореневого каталогу в FAT32, і MFT в NTFS. Якщо це вийде, то ви зможете знайти і відновити ваші файли. В іншому випадку – вам доведеться здійснити пошук сигнатур файлів по всьому диску.

  • Рівень 3: У цьому випадку немає гарантії, що ви зможете відновити дані, оскільки може мати місце фізичне пошкодження вашого обладнання: диск пошкоджено вогнем, зіпсовано в результаті падіння, в нього потрапила вода і т.д. Для початку потрібно замінити пошкоджені деталі диска і відновити працездатність пристрою.

Архітектура

Розглянемо, наприклад, комп’ютер з одним жорстким диском і двома розділами на ньому: «C:\» і «D:\». ОС встановлена на диску «C:\». MBR завжди знаходиться в першому секторі, цей запис повністю відповідає за завантаження операційної системи комп’ютера на базі BIOS. Розглянемо структуру цього запису докладніше:

  • Код початкового завантаження . При завантаженні комп’ютера необхідно виконати код завантаження операційної системи або будь-якого іншого програмного забезпечення. Такий первинний набір кодів знаходиться в BIOS. Цей код перевіряє наявність апаратного забезпечення і проводить декілька перевірочних тестів на можливість завантаження. Потім, відповідно до зазначеного порядку завантаження, він почне завантажувати перші сектори дисків. Коли він знаходить той, який зазначений як MBR, він починає його запускати.

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

  • Таблиця разділів. Розмір таблиці складає 64 байта.

    Розділ – це логічно виділена частина жорсткого диска, для того, щоб працювати як окремий диск настільки, наскільки визначить операційна система. Може мати незалежну структуру файлової системи. Незалежно від того, який розділ є активним, тобто містить ОС, початкова адреса сектора, що включає VBR розділу, містить його розмір і інформацію про те, в якій системі він відформатований: NTFS чи FAT. Для відновлення файлів, пошук та інтерпретація таблиці розділів відіграють важливу роль.

  • Підпис диска. MBR і VBR завжди містять сукупність електронних даних 0x55AA. Ця сигнатура визначає, чи містить даний сектор MBR або VBR чи ні.

Таблиця розділів містить від 1 до 4 записів розміром 16 байт кожна. Давайте розглянемо, як їх інтерпретувати:

  • Індикатор завантаження. Це перший байт в таблиці розділів, який вказує на те, активний розділ чи ні.

    Наприклад: знаходиться на ньому операційна система (файли і драйвера) чи ні. Якщо це поле містить 0x80H (це в шістнадцятковому вигляді, а в десятковому = 128), то це активний розділ. Для неактивних розділів це поле дорівнює 0x00h.

  • Стартове значення CHS. Ігноруйте його.

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

    Значення Опис
    0x00h Немає розділу (відсутня файлова система);
    0x01h DOS FAT-12 (файлова система);
    0x04h DOS FAT-16 (відсутня файлова система);
    0x05h Розширена DOS 3.3 (файлова система розширеного розділу);
    0x06h DOS 3.31 (велика файлова система);
    0x06h NTFS;
    0x06h FAT32;
  • Завершальне значення CHS. Ігноруйте його.

  • Адреса сектора, який містить VBR. У першому секторі кожен розділ має сектор завантаження. Це поле містить адреси подібних записів, тому це важливе поле. Воно містить адресу в шістнадцятковому форматі і має розмір в 512 байт.

  • Розмір розділу. Тут можна отримати розмір розділу.

Встановивши розмір розділу і адресe його початку, ви можете приступити до ручного режиму відновлення файлів.

Author: Michael Miroshnichenko

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)