В состав обязательного программного инструментария Администраторов локальных или глобальных сетей входят средства восстановления работоспособности носителей данных и самих данных. Многие из таких программ являются бесплатными и включаются в дистрибутивы серверных или клиентских ОС, что даёт возможность сразу же переходить к их использованию в случае возникновения внештатных критических ситуаций. К такому ПО относится и программа 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 может успешно использоваться не только для работы с разделами, но и для восстановления отдельных структур данных, таких как файлы.