До складу обов'язкового програмного інструментарію Адміністраторів локальних чи глобальних мереж входять засоби відновлення працездатності носіїв даних та самих даних. Багато з таких програм є безкоштовними і включаються до дистрибутивів серверних або клієнтських ОС, що дає можливість відразу ж переходити до їх використання у разі позаштатних критичних ситуацій. До такого програмного забезпечення відноситься і програма TestDisk, орієнтована на роботу з різними ОС та безліччю типів файлових систем. Розглянемо більш детально її можливості та продемонструємо на практиці роботу з нею.
Основні можливості програми TestDisk
Програма має відкритий код, що легко розширюється, створений мовою програмування С, що сприяє постійному поліпшенню її характеристик. Поширюється на вільну ліцензію GNU або GPLv2. Серед підтримуваних ОС – SunOS, Linux, Windows, ***BSD та багато інших, що дозволяє віднести її до розряду кросплатформових програмних засобів.
Виділимо її основні можливості:
- Аналіз даних та тестування на наявність помилок файлової системи;
- Пошук та відновлення втрачених, пошкоджених або видалених дискових розділів із даними;
- Відновлення окремих віддалених файлів;
- Ведення логів для фіксації інформації, необхідної для відстеження помилок;
- Зміна конфігурації дискових накопичувачів.
Серед файлових систем, що підтримуються програмою, можна виділити такі:
- ОС Windows – FAT12, FAT16, FAT32, exFAT, NTFS;
- SunOS – Solaris, ZFS, UFS;
- ОС Linux – ext2, ext3, ext4, GFS2, btrfs, LUKS та інші;
- BSD – disklabel, UFS2.
Робота з TestDisk
Як мовилося раніше, програма входить у більшість дистрибутивів останніх версій підтримуваних нею операційних систем і, тому, її встановлення та оновлення не викликають будь-яких складнощів.
На нашій машині встановлена ОС, що стосується Linux-систем – Ubuntu 20.04. Зробимо установку TestDisk, її запуск і використовуємо для роботи з файловою системою.
Встановлення
Відмінності в установці TestDisk для різних ОС зводяться до використання різних типів менеджерів пакетів, а також різних параметрів запуску з командного рядка. У нашому випадку як менеджер пакетів використовується протокол apt і будь-яких додаткових параметрів вказувати не потрібно.
Потрібно враховувати, що програма повинна встановлюватись та запускатися користувачами з правами суперкористувача. Для цього в командному рядку ми використовуватимемо конструкцію sudo, яка і наділяє користувача потрібним рівнем повноважень.
Введемо в терміналі:
$ sudo apt install testdisk
Як видно зі скріншоту, програма була успішно встановлена. Її версія - 7.1-5. Тобто все гаразд, тепер можна приступати до роботи.
Пошук видалених, втрачених або пошкоджених розділів
У практиці Адміністраторів нерідко трапляються ситуації, коли один із розділів може бути випадково вилучений, пошкоджений або втрачений. Тут мається на увазі втрата розділу для ОС, коли його просто «не бачить». Причиною виникнення подібних ситуацій можуть стати різні фактори, серед яких вплив некоректно працюючого програмного забезпечення, людський фактор або згубні наслідки дії вірусу. Для боротьби з ними потрібні такі програми, як TestDisk.
Для запуску програми достатньо ввести в терміналі наступну команду:
$ testdisk
Тут пропонується вибрати варіант фіксації службової інформації з допомогою логів – створити новий файл; додавати дані в існуючий лог-файл або взагалі відмовитися від фіксації. Вибираємо другий варіант та натискаємо ENTER.
Після цього ми потрапляємо у вікно зі списком дискових накопичувачів, що є на нашій машині.
У випадку, якщо ємність диска визначена не правильно, потрібно виконати ряд дій:
- Інсталювати драйвери дисків;
- Перевірити встановлені диски перемички;
- Уточнити налаштування системи вводу-виводу BIOS;
- Завантажити останні пакети оновлень ОС.
Якщо цього не зробити, результати роботи програми будуть некоректні.
У нашому випадку, ємність накопичувача визначена правильно і тому продовжуємо процес натисканням клавіші ENTER. В результаті з'являється список можливих типів дискових розділів залежно від встановленої ОС. Вибираємо той, який є у нас – EFI GPT та підтверджуємо свій вибір клавішею ENTER.
У наступному вікні програми пропонується вибрати тип виконуваної дії – провести аналіз та знайти втрачені розділи; дослідити файлову систему; змінити конфігурацію диска; змінити опції або повернутися до вибору диска. Вибираємо перше та продовжуємо процес.
На наступному екрані виведено список виявлених розділів із їх характеристиками. Виберіть за допомогою клавіш керування курсором команду швидкого пошуку Quick Search і натисніть ENTER.
Програма проаналізує наявні розділи та видасть результат, де різними кольорами будуть позначені справні, втрачені чи пошкоджені з них. Як видно на нижньому скріншоті, з нашим розділом все ОК.
Щоб провести більш глибокий аналіз, продовжимо процес за допомогою клавіші ENTER. У вікні вибираємо кнопку глибокого пошуку Deeper Search і підтверджуємо свій вибір.
Цим ми активували досить тривалий процес поглибленого аналізу всього накопичувача. В результаті буде виведено кілька екранів, деякі показані нижче.
На кінцевому екрані буде виведено список всіх наявних розділів і повідомлено, що ці розділи не відносяться до категорії, які потребують відновлення – The following partitions can't recovered. Це означає, що для цього рівня пошуку втрачених або пошкоджених розділів диск не має, тобто все ОК. Якби такі були, вони були б у списку виділені будь-яким із кольорів, крім зеленого.
У цьому ж вікні ми можемо продовжити аналіз даних для кожного розділу, натиснувши кнопку Continue, що ми робимо для першого з них. В результаті з'явився список усіх його підрозділів (див. скріншот нижче).
Якби ми хотіли дослідити кожен із підрозділів, тоді досить було б натиснути клавішу ENTER. Однак на цьому ми зупинимося. Адже нашим завданням було продемонструвати процес пошуку пошкоджених чи втрачених розділів, що ми зробили.
Відновлення видалених файлів
Як зазначалося, крім роботи з розділами, TestDisk може забезпечити відновлення даних лише на рівні файлів. Для того, щоб відновити видалені з будь-яких причин файли, потрібно при запуску програми, в одному з перших вікон з опціями налаштування вибрати замість аналізу розділів команду Advanced Filesystem Utils. У цьому випадку можна відразу перейти до списку наявних на диску або видалених раніше файлів, які будуть виділені різним кольором.
Крім того, навіть перебуваючи в режимі аналізу розділів, можна відразу перейти до перегляду файлів на кожному з них. Для цього достатньо натиснути клавішу P (в латиниці). Так і ми зробили, коли програма закінчила роботу з розділами. В результаті ми отримали список всіх наявних в корені диска каталогів і файлів, як показано нижче.
Як бачимо, серед видалених раніше файлів виведений файл з ім'ям .ismount-test-file (виділений червоним кольором). Саме його ми спробуємо відновити. Слід зазначити, що відновлювати віддалений об'єкт зовсім необов'язково до тієї директорії, з якої він був видалений. Для цього можна вибрати будь-яку іншу директорію.
Для активації процесу відновлення виділимо файл, як показано нижче, та натисніть клавішу С.
Після цього ми можемо за допомогою кнопок керування курсором вибрати директорію для відновлення. Ми вибрали директорію root – це видно на скріншоті нижче.
Потім натискаємо клавішу C (латиною) і файл відновлено. Результат цієї операції показано нижче. У верхній частині вікна виведено повідомлення зеленим про її успішність – «Copy done! 1 Ok, 0 failed».
Тепер переходимо до директорії root і переконуємося, що файл вже там (виділений курсором).
Для того, щоб остаточно переконатися в коректності виконаної операції, вийдемо з програми і повернемося в командний рядок bash для перегляду повної інформації про відновлений файл.
Для виходу із програми скористаємося неодноразовим натисканням клавіші Q.
Тепер, коли ми повернулися в оболонку, переглянемо повну статистику файлу за допомогою команди stat:
$ stat .ismount-test-file
З результатів виходу команди бачимо що, по-перше: файл існує; по-друге: точний час його відновлення вказаний як час внесення змін (Change), який становить 28.08.2023 14:39:33. Це саме той час, коли ми працювали з програмою. Це говорить про те, що відновлення пройшло коректно, а значить TestDisk може успішно використовуватися не тільки для роботи з розділами, але й для відновлення окремих структур даних, таких як файли.