Сравнение версий
Ключ
- Эта строка добавлена.
- Эта строка удалена.
- Изменено форматирование.
Оглавление |
---|
В данной статье рассматриваются средства восстановления данных в случаях:
- повреждения (отказа) оборудования (физического повреждения носителей информации);
- искажения структуры хранения данных (удаление/повреждение таблицы дисковых разделов или самих дисковых разделов, форматирование дисковых разделов);
- удаления данных (удаление файлов или каталогов);
В данной статье предполагается, что читатель знаком с основными типами файловых систем и особенностями их внутренней структуры.
Предупреждение |
---|
В любом случае следует помнить, что:
|
Информация | ||
---|---|---|
| ||
|
GNU ddrescue: Копирование данных с повреждённых носителей
Инструмент GNU ddrescue (не путать с инструментом dd_rescue) копирует данные из одного (повреждённого) источника в другой, предпринимая максимально возможные усилия для максимально возможного извлечения данных.
Инструмент GNU ddrescue входит в дистрибутив ОС ОН Орёл 2.12 и может быть установлен командой:
Command |
---|
sudo apt install gddrescue |
В ОС СН Смоленск инструмент может быть установлен из репозитория ОС ОН Орёл.
Общий синтаксис вызова:
Command |
---|
sudo ddrescue [<параметры>] <источник_данных> <приёмник_данных> [<карта>] |
После вызова инструмент сначала пытается скопировать данные из указанного источника в указанный приёмник пропуская "сбойные данные". При этом чтение осуществляется в прямом и обратном направлении постепенно уменьшающимися блоками, а результаты копирования запоминаются в "карте" (журнале хода копирования). После завершения копирования легкодоступных данных информация, сохранённая в "карте", используется для попыток копирования пропущенных "сбойных" участков. При этом наличие "карты" позволяет в произвольные моменты времени останавливать и возобновлять операцию копирования, не выполняя чтение ранее скопированных участков. Таким образом, возможное нарастание повреждений носителя в процессе работы не повлияет на уже прочитанные данные.
Раскрыть | ||
---|---|---|
| ||
|
Информация |
---|
Параметр "карта" является необязательным, но именно его применение делает инструмент действительно эффективным. |
В качестве источника и приёмника могут быть использованы любые блочные устройства в любых сочетаниях: накопители (например, /dev/sdb), дисковые разделы (/dev/sdb1), файлы.
В параметрах вызова команды могут быть указаны (подробнее см. man ddrescue):
- -r N - количество повторных попыток чтения повреждённых блоков;
- -i NNN - начало зоны чтения;
- -d - прямое чтение без использования буферов ядра;
- -f - разрешение переписывать данные в приёмнике (используется для записи в приёмники, являющиеся устройствами).
- -n - быстрое чтение без фазы "выцарапывания" данных;
- -A - пометить все сбойные области как непрочитанные. Применяется для восстановления после потери источника и его последующего подключения.
Примеры:
Пример 1. Быстро копируем доступные данные с дискового накопителя /dev/sdh в файл-образ file.tmp используя карту map.tmp:
Command | ||
---|---|---|
| ||
GNU ddrescue 1.21 |
Пример 2. В приведённом выше примере использован исправный диск, ошибок нет. При возникновении ошибок чтения - повторно копируем данные с накопителя, извлекая данные из повреждённых частей. Используются карта и файл образа, созданные при первой попытке копирования, извлечённые данные добавляются в образ, выполняются 3 попытки повторного чтения повреждённых данных, и используется прямой доступ к данным (-d):
Command |
---|
sudo ddrescue -f -d -r3 /dev/sdh file.tmp map.tmp |
Информация |
---|
Полученный таким способом образ диска можно использовать следующим способом:
|
Копировать весь диск не обязательно, можно копировать отдельные дисковые разделы или даже только важные файлы (если они доступны, на повреждённом диске разделы и файлы могут не определяться).
Пример 3. Копирование отдельно дискового раздела /dev/sdb1 в новый дисковый раздел /dev/sdc1 (новый раздел должен быть создан заранее и иметь достаточный для размещения копируемых данных размер). Команды отличаются от команд в предыдущем примере только названиями источника и приёмника:
Command |
---|
sudo ddrescue -f /dev/sdb1 /dev/sdc1 partmap.tmp sudo ddrescue -f -r3 /dev/sdb1 /dev/sdc1 partmap.tmp |
Пример 4. Перезапуск копирования после отказа и восстановления диска-источника (например, диск-источник перестал отвечать, но удалось заставить его работать после переподключения).
Можно указать смещение, с которого нужно продолжить копирование (для этого использовать информацию о выполненном копировании, полученную в предыдущей попытке копирования):
Command |
---|
sudo ddrescue -f -r3 -i 1234567000 /dev/sdb /dev/sdc map.tmp |
Можно продолжить копирование в обратном порядке:
Command |
---|
sudo ddrescue -f -r3 -R /dev/sdb /dev/sdc map.tmp |
Можно пометить сбойные области как непрочитанные для повторного чтения (рекомендуется при возобновлении копирования после потери диска):
Command |
---|
sudo ddrescue -f -r3 -A /dev/sdb /dev/sdc map.tmp |
Пример 5. Отказы носителей-приёмников. Если копирование прервано из-за отказа со стороны диска-приёмника (/dev/sdc), можно скопировать содержимое неисправного приёмника на третий диск (/dev/sdd) и продолжить копирование из источника:
Command |
---|
sudo ddrescue -f -m map.tmp /dev/sdc /dev/sdd newmap.tmp sudo ddrescue -f -n /dev/sdb /dev/sdd newmap.tmp sudo ddrescue -f -d -r3 /dev/sdb /dev/sdd newmap.tmp |
Пакет testdisk: восстановление данных с повреждённых дисковых разделов
Пакет testdisk входит в дистрибутивы Astra Linux, по умолчанию не устанавливается, и может быть установлен командой:
Command |
---|
sudo apt install testdisk |
В состав пакета входят два инструмента:
- testdisk - восстановление повреждённой структуры дисковых разделов и повреждённой файловой структуры в этих разделах;
- 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.
Инструмент использует текстовый псевдографический интерфейс.
Пример запуска инструмента для анализа накопителя (как было указано выше, можно использовать не носитель, а его образ в файле):
Command |
---|
sudo testdisk /dev/sdb |
Программа testdisk может быть запущена без параметров - тогда будет предложено выбрать нужное устройство из подключенных дисковых устройств.
После запуска инструмента выводится информация о заданном в параметрах вызова устройстве:
Блок кода |
---|
TestDisk 7.0, Data Recovery Utility, April 2015 Christophe GRENIER <grenier@cgsecurity.org> http://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> http://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'. |
Предупреждение |
---|
С высокой вероятностью testdisk самостоятельно определит структуру носителя, однако для восстановления желательно знать, как был размечен накопитель. В частности, сравнительно редко, встречаются накопители, отформатированные без дисковых разделов (в примере выше пункт "[None ] Non partitioned media"). Попытки поиска дисковых разделов на таком накопителе (в примере выше пункт "[Intel] Intel/PC partitition") будут бесполезной тратой времени и ресурса накопителя. |
Выбрав подходящий тип накопителя, нажать 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 - 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> http://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 |
Если таблица разделов на носителе корректна, то будет показана информация о дисковых разделах. В примере выше дисковые разделы не найдены. Если разделы не найдены - следует выбрать пункт "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") и выполнить команду проверки и восстановления файловой системы с предложенными параметрами одного из резервных суперблоков, например:
Command |
---|
sudo fsck.ext4 -p -b 32768 -B 4096 /dev/sdb1 |
Инструмент photorec
Инструмент photorec не использует файловую структуру, а анализирует непосредственно содержимое заданного устройства, пытаясь по содержимому определить известные ему типы файлов и извлечь их.
Информация |
---|
При таком способе извлечения не сохраняются названия файлов, которые придётся восстанавливать анализируя восстановленные файлы. |
Как и testdisk, инструмент использует текстовый псевдографический интерфейс, и может быть запущен из командной строки командой:
Command |
---|
sudo photorec /dev/sdb1 |
На стартовой странице предлагается подтвердить выбор носителя для поиска:
Блок кода |
---|
PhotoRec 7.0, Data Recovery Utility, April 2015 Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org PhotoRec is free software, and comes with ABSOLUTELY NO WARRANTY. Select a media (use Arrow keys, then press Enter): >Disk /dev/sdb1 - 4194 MB / 4000 MiB (RO) - 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.
В открывшемся окне имеется важный пункт "File Opt" - выбор типов восстанавливаемых файлов:
Блок кода |
---|
PhotoRec 7.0, Data Recovery Utility, April 2015 Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org Disk /dev/sdb1 - 4194 MB / 4000 MiB (RO) - VBOX HARDDISK Partition Start End Size in sectors Unknown 0 0 1 509 236 47 8192000 [Whole disk] > P ext4 0 0 1 509 236 47 8192000 [first] >[ Search ] [Options ] [File Opt] [ Quit ] Start file recovery |
Крайне рекомендуется ограничить набор типов восстанавливаемых файлов, иначе при восстановлении будет извлечено очень много ненужного "мусора":
Блок кода |
---|
hotoRec 7.0, Data Recovery Utility, April 2015 Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org PhotoRec will try to locate the following files >[X] custom Own custom signatures [X] 1cd Russian Finance 1C:Enterprise 8 [X] 3dm Rhino / openNURBS [X] 7z 7zip archive file [X] DB [X] a Unix Archive/Debian package [X] abr Adobe Brush [X] acb Adobe Color Book [X] accdb Access Data Base [X] ace ACE archive [X] ab MAC Address Book [X] ado Adobe Duotone Options [X] ahn Ahnenblatt [X] aif Audio Interchange File Format [X] all Cubase Song file: .all [X] als Ableton Live Sets [X] amd AlphaCAM (amd/amt/atd/att) [X] amr Adaptive Multi-Rate [X] apa APA Style Helper [X] ape Monkey's Audio compressed format [X] apple AppleSingle/AppleDouble [X] ari ARRI Raw Video [X] arj ARJ archive [X] asf ASF, WMA, WMV: Advanced Streaming Format used for Audio/Video [X] asl Adobe Layer Style [X] asm Pro/ENGINEER Assembly [X] atd Agelong Tree Database/Abs0luteDatabase [X] au Sun/NeXT audio data [X] axx AxCrypt [X] bac Bacula backup [X] db Berkeley DB (Little Endian) [X] bim Broadcast Interface Module [X] binvox Binvox Voxel File [X] bkf MS Backup file [X] blend blender [X] bmp BMP bitmap image [X] bz2 bzip2 compressed data [X] cab Microsoft Cabinet archive [X] caf Core Audio Format [X] cam Casio QV Digital Camera Image [X] catdrawing CATIA [X] cdt cdl/cdt/cdd Concept Draw [X] chm MS Windows HtmlHelp Data [X] class Java Class [X] comicdoc Comic Life [X] cp_ MS compress file (SZDD) [X] cow Qemu Image [X] crw Canon Raw picture Next Press s to disable all file families, b to save the settings >[ Quit ] Return to main menu |
После выбора типов файлов вернуться в предыдущее окно, выбрать нужный дисковый раздел и снова Enter.
В открывшемся окне выбрать файловую систему, в которой будет пороизводиться поиск файлов, и снова нажать Enter:
Блок кода |
---|
PhotoRec 7.0, Data Recovery Utility, April 2015 Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org P ext4 0 0 1 509 236 47 8192000 [first] To recover lost files, PhotoRec need to know the filesystem type where the file were stored: >[ ext2/ext3 ] ext2/ext3/ext4 filesystem [ Other ] FAT/NTFS/HFS+/ReiserFS/... |
Выбрать область поиска ("Free" - поиск удалённых файлов, "Whole" - поиск всех файлов) и нажать Enter:
Блок кода |
---|
PhotoRec 7.0, Data Recovery Utility, April 2015 Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org P ext4 0 0 1 509 236 47 8192000 [first] Please choose if all space need to be analysed: [ Free ] Scan for file from ext2/ext3 unallocated space only >[ Whole ] Extract files from whole partition |
После чего выбрать каталог в который будут копироваться обнаруженные файлы и нажать "C", после чего будет выполнено сканирование данных с сохранением обнаруженных файлов в указанном каталоге.
Информация |
---|
WEB-сайт разработчиков TestDisk: http://www.cgsecurity.org Документация от разработчиков: TestDisk Documentation |
Инструмент extundelete
Инструмент extundelete входит в дистрибутивы Astra Linux, однако по итогам его применения к использованию не рекомедуется как неработоспособный.
Command |
---|
sudo apt install extundelete |
Command | ||
---|---|---|
| ||
NOTICE: Extended attributes are not restored. Loading filesystem metadata ... 232 groups loaded. Loading journal descriptors ... Segmentation fault |
Инструмент ext4magic
Информация |
---|
При написании статьи инструмент показал высокую эффективность и рекомендуется к применению. |
Инструмент ext4magic на момент написания статьи не входит в дистрибутивы Astra Linux и может быть установлен командами:
- Для ОС ОН Орёл 2.12 / ОС СН Смоленск 1.6:
Command |
---|
wget http://ftp.de.debian.org/debian/pool/main/e/ext4magic/ext4magic_0.3.2-7_amd64.deb sudo apt install ./ext4magic_0.3.2-7_amd64.deb |
Полная справка по возможностям инструмента доступна в man etxt4magic, основные варианты применения:
Попытаться извлечь все файлы из (повреждённой) файловой системы:
Command sudo ext4mgic -M /dev/имя_дискового_раздела Попытаться восстановить удалённые файлы из файловой системы:
Command sudo ext4mgic -m /dev/имя_дискового_раздела
По умолчанию извлекаемые файлы сохраняются в подкаталоге RECOVERED текущего рабочего каталога.
Свободно распространяемый графический инструмент R-Linux
R-Linux является бесплатной программой для восстановления файловых систем Ext2/Ext3/Ext4, используемых в Linux и некоторых Unix операционных системах (ОС). Разработчик программы - компания R-Tools Technology (Канада). Программа восстанавливает данные с существующих логических дисков, даже если записи файлов утрачены. Однако, в программе отсутствует возможность восстановления данных по сети, а также функциональность по реконструкции дисковых массивов и восстановления с них данных.
Инструмент R-Linux может быть загружен с Web-сайта производителя и установлен командами:
Command |
---|
wget https://www.r-studio.com/downloads/RLinux5_x64.deb sudo apt install ./RLinux5_x64.deb |
После установки программа доступна в графическом меню в разделе "Системные", или может быть запущена из командной строки командой:
Command |
---|
sudo rlinux |
Информация |
---|
После первого запуска программа предложит ознакомиться с лицензионным соглашением и подтвердить согласие с ним. |
Стартовое окно программы:
Программа позволяет работать как непосредственно с носителями (дисковыми разделами), так и с образами носителей и дисковых разделов.
Возможность создания образов носителей/дисковых разделов также встроена в программу.
Программа обеспечивает поиск и восстановление удалённых файлов, а в случаях, когда структура дисковых разделов изменена или повреждена, R-Link предлагает возможность сканирования накопителя для поиска сохранившихся данных и восстановления дисковых разделов. .
Помимо работы с дисковыми разделами и файловыми системами R-Linux может отображать параметры S.M.A.R.T дисковых некопителей, позволяя предсказать возможныеих неисправности.