Пакет testdisk: восстановление данных с повреждённых дисковых разделов в Astra Linux (Астра Линукс)

#1 2022.08.01 09:31:19

0

Пакет testdisk входит в дистрибутивы Astra Linux, по умолчанию не устанавливается, и может быть установлен командой:

sudo apt install testdisk

В состав пакета входят два инструмента:
1. testdisk - восстановление повреждённой структуры дисковых разделов и повреждённой файловой структуры в этих разделах;
2. photorec - поиск и извлечение видео и изображений из повреждённой файловой структуры путём прямого доступа к данным.

Инструмент testdisk

Инструмент testdisk выполняет анализ информации, хранящейся в заданном блочном устройстве, и пытается найти известные ему структуры данных (дисковые разделы, таблицы файлов, каталоги и пр.). В качестве устройства может использоваться диск (/dev/sdb) или файл, содержащий образ диска. Инструмент может:
- Исправлять ошибки в дисковых разделах и восстанавливать удалённые разделы;
- Восстанавливать загрузочные секторы FAT32/NTFS из резервной копии;
- Пересобирать загрузочные секторы FAT12/FAT16/FAT32/NTFS;
- Исправлять таблицы FAT;
- Исправлять таблицы MFT используя зеркала MFT;
- Обнаруживать резервные суперблоки ext2/ext3/ext4 (далее эта информация может быть использована для восстановления файловой системы командой fsck - см.ниже);
- Восстанавливать удалённые файлы в FAT/exFAT/NTFS/ext2;
- Копировать файлы из удалённых дисковых разделов FAT/exFAT/NTFS/ext2/ext3/ext4.

Инструмент использует текстовый псевдографический интерфейс.

Пример запуска инструмента для анализа накопителя (как было указано выше, можно использовать не носитель, а его образ в файле):

sudo testdisk /dev/sdb

Программа testdisk может быть запущена без параметров - тогда будет предложено выбрать нужное устройство из подключенных дисковых устройств.

После запуска инструмента выводится информация о заданном в параметрах вызова устройстве:

TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
https://www.cgsecurity.org

TestDisk is free software, and
comes with ABSOLUTELY NO WARRANTY.

Select a media (use Arrow keys, then press Enter):
>Disk /dev/sdb - 8589 MB / 8192 MiB - VBOX HARDDISK

>[Proceed ] [ Quit ]

Note: Disk capacity must be correctly detected for a successful recovery.
If a disk listed above has incorrect size, check HD jumper settings, BIOS
detection, and install the latest OS patches and disk drivers.


Для продолжения нажать Enter, после чего будут предложены варианты выбора структуры носителя:

TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
https://www.cgsecurity.org

Disk /dev/sdb - 8589 MB / 8192 MiB - VBOX HARDDISK

Please select the partition table type, press Enter when done.
>[Intel ] Intel/PC partition
[EFI GPT] EFI GPT partition map (Mac i386, some x86_64...)
[Humax ] Humax partition table
[Mac ] Apple partition map
[None ] Non partitioned media
[Sun ] Sun Solaris partition
[XBox ] XBox partition
[Return ] Return to disk selection

Note: Do NOT select 'None' for media with only a single partition. It's very
rare for a disk to be 'Non-partitioned'.


 AstraLinux писал(а) 

С высокой вероятностью testdisk самостоятельно определит структуру носителя, однако для восстановления желательно знать, как был размечен накопитель. В частности, сравнительно редко, встречаются накопители, отформатированные без дисковых разделов (в примере выше пункт "[None ] Non partitioned media"). Попытки поиска дисковых разделов на таком накопителе (в примере выше пункт "[Intel] Intel/PC partitition") будут бесполезной тратой времени и ресурса накопителя.


Выбрав подходящий тип накопителя, нажать Enter, после чего откроется меню возможных действий:

TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
https://www.cgsecurity.org

Disk /dev/sdb - 8589 MB / 8192 MiB - VBOX HARDDISK
CHS 1044 255 63 - sector size=512

>[ Analyse ] Analyse current partition structure and search for lost partitions
[ Advanced ] Filesystem Utils
[ Geometry ] Change disk geometry
[ Options ] Modify options
[ MBR Code ] Write TestDisk MBR code to first sector
[ Delete ] Delete all data in the partition table
[ Quit ] Return to disk selection

Note: Correct disk geometry is required for a successful recovery. 'Analyse'
process may give some warnings if it thinks the logical geometry is mismatched.


Первый пункт "Analize" позволяет найти дисковые разделы и восстановить таблицу дискоковых разделов:


TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
https://www.cgsecurity.org

Disk /dev/sdb - 8589 MB / 8192 MiB - CHS 1044 255 63
Current partition structure:
Partition Start End Size in sectors

No partition is bootable

*=Primary bootable P=Primary L=Logical E=Extended D=Deleted
>[Quick Search]
Try to locate partition
Отредактировано: Panda 2022.08.08 14:25:07
#2 2022.08.01 09:31:28

0

Если таблица разделов на носителе корректна, то будет показана информация о дисковых разделах. В примере выше дисковые разделы не найдены. Если разделы не найдены - следует выбрать пункт "Quick Search" ("Быстрый поиск") и нажать Enter, после чего будет выполнено "быстрое" сканирование носителя и поиск дисковых разделов. В примере ниже после завершения "Быстрого поиска" отображается информация о двух найденных разделах и предлагается настроить их параметры или посмотреть содержимое (файлы).


TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sdb - 8589 MB / 8192 MiB - CHS 1044 255 63
Partition Start End Size in sectors
>* Linux 0 32 33 510 14 16 8192000 [first]
P Linux 510 14 17 1044 85 1 8583168 [second]

Structure: Ok. Use Up/Down Arrow keys to select partition.
Use Left/Right Arrow keys to CHANGE partition characteristics:
*=Primary bootable P=Primary L=Logical E=Extended D=Deleted
Keys A: add partition, L: load backup, T: change type, P: list files,
Enter: to continue
ext4 blocksize=4096 Large_file Sparse_SB, 4194 MB / 4000 MiB


После выполнения необходимых действий нажать Enter, после чего произойдёт возврат в список разделов:


TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sdb - 8589 MB / 8192 MiB - CHS 1044 255 63

Partition Start End Size in sectors

1 * Linux 0 32 33 510 14 16 8192000 [first]
2 P Linux 510 14 17 1044 85 1 8583168 [second]

[ Quit ] >[Deeper Search] [ Write ]
Try to find more partitions


На этом этапе можно либо выполнить повторное "глубокое" сканирование ("Deep Search"), либо записать восстановленную информацию о разделах на носитель ("Write").

Для восстановления повреждённой файловой системы в дисковых разделах в меню возможных действий с накопителем выбрать пункт "Advanced":


TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sdb - 8589 MB / 8192 MiB - VBOX HARDDISK
CHS 1044 255 63 - sector size=512

[ Analyse ] Analyse current partition structure and search for lost partitions
>[ Advanced ] Filesystem Utils
[ Geometry ] Change disk geometry
[ Options ] Modify options
[ MBR Code ] Write TestDisk MBR code to first sector
[ Delete ] Delete all data in the partition table
[ Quit ] Return to disk selection

Note: Correct disk geometry is required for a successful recovery. 'Analyse'
process may give some warnings if it thinks the logical geometry is mismatched.


После чего в списке дисковых разделов выбрать нужный раздел :


TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sdb - 8589 MB / 8192 MiB - CHS 1044 255 63

Partition Start End Size in sectors
> 1 * Linux 0 32 33 510 14 16 8192000 [first]
2 P Linux 510 14 17 1044 85 1 8583168 [second]

[ Type ] >[Superblock] [ List ] [Image Creation] [ Quit ]
Locate ext2/ext3/ext4 backup superblock


После чего выбрать и выполнить возможные действия:
- Type - уточнить тип дискового раздела, если он определён неверно;
- Superblock - выполнить поиск суперблоков для восстановления файловой системы с помощью команды fsck. При этом выводится список найденных суперблоков и их параметры (номер и размер). В последней строке содержится подсказка, как передать параметры суперблоков в команду fsck:


TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sdb - 8589 MB / 8192 MiB - CHS 1044 255 63

Partition Start End Size in sectors

Linux 0 32 33 510 14 16 8192000 [first]
superblock 0, blocksize=4096 [first]
superblock 32768, blocksize=4096 [first]
superblock 98304, blocksize=4096 [first]
superblock 163840, blocksize=4096 [first]
superblock 229376, blocksize=4096 [first]
superblock 294912, blocksize=4096 [first]
superblock 819200, blocksize=4096 [first]
superblock 884736, blocksize=4096 [first]

To repair the filesystem using alternate superblock, run
fsck.ext4 -p -b superblock -B blocksize device


- List - просмотреть список файлов;
- Image Creation - создать образ раздела.

Для файловой системы Ext4, использованной в примере и рекомендованной для использования в Astra Linux, для завершений восстановления файловой системы выйти из программы testparm ("q") и выполнить команду проверки и восстановления файловой системы с предложенными параметрами одного из резервных суперблоков, например:

sudo fsck.ext4 -p -b 32768 -B 4096 /dev/sdb1