Как вытащить файлы с жесткого диска linux

GNU ddrescue — лучшая утилита для восстановления данных с поврежденного жесткого диска

Оригинал: GNU ddrescue – The Best Damaged Drive Rescue
Автор: Carla Schroder
Дата публикации: 2 марта 2017 года
Перевод: А. Кривошей
Дата перевода: апрель 2018 г.

Когда вы спасаете свои данные с умирающего жесткого диска, время имеет большое значение. Чем дольше требуется копировать ваши данные, тем больше вы рискуете потерять. GNU ddrescue — это превосходный инструмент для копирования умирающих жестких дисков, а также любых блочных устройств, таких как компакт-диски, DVD-диски, USB-накопители, Compact Flash, SD-карты — все, что распознается вашей системой Linux как /dev /foo. Вы можете скопировать устройства, предназначенные для Windows и Mac OS X, поскольку GNU ddrescue работает на уровне блоков, а не на уровне файловой системы, поэтому не имеет значения, какая файловая система находится на устройстве.

Вместо того, чтобы запускать какие-либо средства восстановления файлов или инструменты анализа на поврежденном томе, лучше всего сначала сделать копию, а затем работать с этой копией.

Мне нравится всегда иметь под рукой SystemRescueCD на компакт-диске, а также на USB-накопителе. SystemRescueCD имеет небольшой объем и специализируется на спасательных операциях. В наши дни большинство дистрибутивов Linux имеют загрузочные версии с live-режимом, поэтому вы можете использовать то, с чем вам удобно работать, при условии, что вы ваш дистрибутив включает GNU ddrescue и другое программное обеспечение для спасения данных, которое вам нужно.

Не путайте GNU ddrescue с dd-rescue от Курта Гарлоффа . dd-rescue старше, и дизайн GNU ddrescue, вероятно, выиграл от этого. GNU ddrescue работает быстро и надежно: он пропускает плохие блоки и копирует хорошие блоки, а затем возвращается, чтобы попытаться скопировать поврежденные блоки, отслеживая их местоположение с помощью простого лог-файла.

Требуемое оборудование

Вам нужна система Linux с GNU ddrescue (gddrescue в случае Ubuntu), диск, который вы пытаетесь спасти, и устройство с пустым разделом, размером по крайней мере, в 1,5 раза больше, чем тот, который вы спасаете, так как у вас должен быть приличный запас свободного места. Если вы исчерпали свободное место, даже если это всего лишь несколько байтов, GNU ddrescue завершится неудачно в конце операции.

Есть несколько способов настройки оборудования. Один из способов — установить поврежденный диск в вашей Linux-системе, что очень просто, если это оптический диск или USB-устройство. Для дисков SATA и SDD имеются недорогие н простые в использовании адаптеры USB. Я предпочитаю подключать поврежденный диск к своей надежной системе Linux, а не зацикливаться на загрузчиках и странном железе. Для хранения спасенных данных я использую запасной диск SATA в переносном USB-кейсе.

Другой способ — загрузить компьютер, в котором находится умирающий диск, с помощью SystemRescueCD (или любого другого подобного дистрибутива), и подключить накопитель для копирования данных.

Если у вас недостаточно USB-портов, незамененимым является мощный USB-концентратор.

Идентификация накопителей

Убедитесь, что вы используете правильные имена устройств. Подключите все, а затем запустите lsblk:

Как видно из этого примера, вполне возможно ошибиться. У меня два диска по 1,8 TB. На одном корневая файловая система и мой домашний каталог, а другой — дополнительный накопитель для хранения данных. lsblk точно определяет флэш-накопитель, SD-карту и оптический привод. Если вы не сможете определить ваши диски, попробуйте findmnt:

Здесь видно, что корневой файловой системой является /dev/sda3, а все, что находится в папке /media, не относится к корневой файловой системе.

/media/carla/100MB2 и /media/carla/50MB обозначены метками вместо UUID типа /media/carla/8c670f2e-dae3-4594-9063-07e2b36e609e, так как я всегда присваиваю своим USB-накопителям понятные имена. Это можно делать для любой файловой системы, например я могу присвоить имя своей корневой файловой системе:

Запустите sudo e2label [device], чтобы увидеть вашу новую метку. e2label подходит для файловых систем ext2/ext3/ext4, а для XFS, JFS, BtrFS и других файловых систем имеются свои команды. Упростить этот процесс можно с помощью GParted: отключите файловую систему, а затем вы можете присвоить или изменить метку без использования команд для каждой файловой системы.

Основы восстановления данных

Мы потратили достаточно времени на выяснение того, как узнать, где какой диск. Предположим, что GNU ddrescue запущена на /dev/sda1, поврежденный диск — /dev/sdb1, и мы копируем его в /dev/sdc1. Первая из приведенных ниже команд копирует как максимально возможное количество данных без повторных попыток. Вторая команда снова работает с поврежденной файловой системой и делает три попытки чтения. Лог-файл находится в корневой файловой системе, которая, по моему мнению, лучше, чем съемный носитель, но вы можете поместить его куда считаете нужным:

Чтобы скопировать весь диск, используйте только имя диска, например /dev/sdb, и не указывайте раздел.

Если у вас есть поврежденные файлы, которые ddrescue не может полностью восстановить, вам понадобятся другие инструменты для их восстановления, такие как Testdisk, Photorec, Foremost или Scalpel. В Arch Linux wiki есть хороший обзор инструментов для восстановления файлов.

В следующих статьях вы найдете описание других средств для восстановления утерянных данных:

Источник

Восстановление данных

Содержание

Первым делом, очень важно свести к минимуму работу с повреждённым накопителем, иначе вероятность восстановления данных существенно снижается.

Если вы случайно удалили нужный файл с некоторого раздела, следует как можно скорее перевести данный раздел в режим «только чтение» и исключить любые попытки записи на него.

Если вы по ошибке установили операционную систему, на диск/раздел с важными данными, то загружать систему с этого диска/раздела категорически не рекомендуется. Для дальнейней работы следует использовать LiveCD/USB или систему, загружаемую с другого диска/раздела.

Читайте также:  Файл автоматической установки windows 10 wds

Кроме того, для сохранения восстанавливаемых данных потребуется ещё один накопитель ёмкости, не меньшей исходного.

Чтобы снизить возможные потери информации при неудачной попытке восстановления, следует сделать полный дамп повреждённого тома (ФС, раздел, либо весь диск, в зависимости от того как располагались исходные данные) через dd или ddrescue на отдельный носитель и дальше экспериментировать с этим дампом:

testdisk

Нередко судьба подкидывает нам такое, что послезавтра сдавать диплом, а сегодня умер жесткий диск со всей информацией. В Linux стандартом де-факто в области восстановления данных является утилита testdisk. Однако нередко человек, впервые сталкиваясь с ней, находит ее для себя малопонятной и отказывается от нее, т.к. она не имеет графического интерфейса.

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

Итог — при подключении флешка не обнаруживается компьютером, на ней важная информация, будем ее восстанавливать.

1. Для начала нужно установить testdisk. Для этого в консоли выполняем:

2. Запускаем testdisk с администраторскими правами

Появляется окошко приветствия testdisk, нам предлагается вести лог работы. В данном случае не вижу в этом смысла, но вы можете поступать иначе. Выбираем нужный пункт меню и подтверждаем выбор: No Log → Enter.

3. Появляются доступные носители, выбираем нужный, подтверждаем нажатием Proceed.

4. Предлагается выбрать тип таблицы разделов, думаю, что в большинстве случаев будет тип Intel / PC Partition.

5. Появляется меню с выбором операции. Для начала делаем анализ, выбрав Analyse.

6. В разделе Analyse Выбираем Quick Search.

7. Последний вопрос перед началом анализа «Должен ли testdisk искать разделы созданные с использованием Windows Vista?». В моем случае — нет, поэтому я выбираю N. 1)

Анализ закончен. Предупреждение. Или некоторые разделы не были найдены, или таблица разделов не может быть записана, т. к. разделы перекрываются.

8. Вот теперь можно начинать восстановление информации. В данном случае нас интересует 2 варианта действий.

Выводим список файлов нажатием Р .

Отсюда же можно попробовать скопировать особо важные файлы и папки, особенно если боитесь, что данные не восстановятся, а наоборот потеряете последнюю, пусть даже и битую информацию. Для примера я буду копировать музыкальный альбом. Выделяем нужное курсором, нажимаем С для копирования. Появляется файловый менеджер, где можно выбрать куда будем копировать. В домашнем каталоге для этих целей специально создана папка Restored.

Заходим в нее и подтверждаем копирование нажатием Y.

Открываем папку в Nautilus, видим, что все файлы на месте и их можно прослушать.

9. Итак, особо важную информацию на всякий случай сохранили, однако наша цель приведение носителя в нормальное рабочее состояние. Из каждого пункта меню testdisk можно вернуться в предыдущий с помощью клавиши Q . Таким образом возвращаемся к 8 пункту.

Попробуем вернуть все в первоначальное до поломки состояние, загрузив резервную копию таблицы разделов. Нажимаем L . В появившемся окошке выбираем Load

…и подтверждаем наши намерения Y .

Все, процесс восстановления закончен, отключаем и снова подключаем поврежденный носитель. Теперь он обнаруживается, все файлы на месте, в целости и сохранности.

Желаю вам удачных восстановлений!

extundelete

extundelete – утилита, позволяющая восстанавливать файлы, которые были удалены с разделов ext3/ext4.

Установить extundelete можно выполнив команду:

Как только вы поняли, что удалили нужные файлы, надо отмонтировать раздел:

или перемонтировать в режиме «только чтение»

Так же следует создать резервную копию раздела прежде, чем начинать с ним работу по восстановлению файлов:

Зайдите в каталог, в который будут восстанавливаться удаленные данные. Он должен быть расположен на разделе отличном от того, на котором хранились восстанавливаемые данные:

Запустите extundelete, указав раздел, с которого будет происходить восстановление и файл, который необходимо восстановить:

Можно так же восстанавливать содержимое каталогов:

Можно задать для восстановления рамки по времени удаления восстанавливаемых файлов, например так:

Дату необходимо указывать в UNIX-времени:

Полный список параметров extundelete можно посмотреть на странице http://extundelete.sourceforge.net/options.html.

foremost

foremost — поиск и восстановление данных по сигнатурам.

Пример использования для восстановления изображений с диска /dev/sdb в каталог

R-Studio

R-Studio позволяет восстанавливать утраченные данные с поврежденного, форматированного, переформатированного или удаленного диска (раздела) локального или удаленного компьютера вне зависимости от используемой системы (платформы).

Scalpel

Scalpel анализирует файлы по header и footer, заданным в шаблоне

Чтобы задать типы файлов для распознавания, нужно в указанном выше шаблоне раскомментировать соответствующие строки. Однако, будьте внимательны: зачастую header и footer ваших файлов могут отличаться от заданных в шаблоне для такого типа файлов (к примеру, sony jpg). В таком случае нам нужно самостоятельно выяснить header и footer искомых файлов на примере имеющегося аналогичного файла:

и вписать их в конфигурационный файл.

В качестве исходного пути может использоваться как путь к реальному устройству /dev/…, так и путь к образу диска. Директория outputdir для сохранения файлов обязательно должна быть пустой.

Источник

Утилиты для восстановления потерянных данных в Linux

На днях, в ходе небольшой ревизии содержимого своего сайта я наткнулся на перевод статьи «10 способов восстановления удаленных файлов в linux», исходный вариант которой датирован 21 июня 2007 года. Перечитав статью и попытавшись пройти по приведенным в ней ссылкам, я обнаружил, что некоторые ссылки вообще не работают (сайты разработчиков в сети пропали), а некоторые из упомянутых в статье утилит давно не обновляются и не поддерживаются.

Возникла идея посмотреть, какие же средства восстановления случайно удаленных файлов существуют на настоящий момент. Полагаю, что интерес к средствам такого рода за прошедшие годы не пропал. Ведь начинающие пользователи Линукс (как, впрочем, и других операционных систем) часто попадают в ситуацию, когда по ошибке, вызванной неопытностью, удаляют какие-то файлы и тут же спохватываются, что удалили не то, что хотели. А может быть и вообще не хотели что-то удалять. В Windows в таких случаях спасает Корзина. Впрочем, говорят, что в некоторых дистрибутивах Линукс (например, в Ubuntu) тоже есть Корзина. Проверить это утверждение на данный момент я не могу, поскольку не имею под рукой компьютера с Ubuntu. Но не Убунтой единой жив линуксоид, так что я занялся поиском в Интернет сведений о средствах восстановления случайно удаленных файлов для Linux.

Читайте также:  Dark room with windows

Кроме случаев ошибочного удаления данных возможны ситуации, когда оказывается испорчен носитель, появились поврежденные сектора на диске, поцарапан CD и так далее. В таких ситуациях тоже бывают нужны средства восстановления данных.

Сразу хочу предупредить, что все изложенное ниже мной лично не проверялось и основано только на сведениях, опубликованных на сайтах разработчиков или в статьях с описаниями соответствующих продуктов. Ну и, конечно, в статье рассматриваются только свободно распространяемые продукты. Если вас интересуют платные (проприетарные) продукты, вы без труда найдете их сами.

Итак, вот список утилит для восстановления потерянных данных, которые мне удалось разыскать (данные актуальны по состоянию на 10 ноября 2010 года).

    unrm — небольшая консольная утилита, которая при некоторых условиях, может восстановить почти 99% удаленных данных (похожа на утилиту undelete в DOS). Перед её использованием внимательно прочитайте файл FAQ и желательно Linux Ext2fs Undeletion Mini-HOWTO. Применение:
    unrm [-b (no block padding)][-e (every block)][-f fstype][-vW] device [block. ]

giis (gET iT i sAY) — средство восстановления файлов для файловых систем Ext2/Ext3. После установки могут быть восстановлены текущие файлы и новые созданные файлы в /root и /home. Утилита позволяет пользователям восстановить все удалённые файлы, восстанавливать файлы, принадлежащие указанному пользователю, выводить (dump) данные из местанахождения файлов и восстанавливать файлы определённого типа, например, текстовые или MP3. Имеется также анализатор, помогающий пользователям во время восстановления.

ddrescue (в Ubuntu эта утилита называется gddrescue) Эта утилита копирует данные из файла или с аппаратного устройства, содержащего данные, в другое место, предпринимая при этом попытки исправить все имеющиеся ошибки чтения. Основные операции ddrescue выполняет в автоматическом режиме, заполняя параллельно файл протокола. Если имеется две или более копий поврежденных файлов, ddrescue способна полностью восстановить файл, устранив все ошибки.
ddrescue устанавливает размер буфера ввода/вывода равным размеру сектора, так что ее можно использовать для посекторного восстановления данных с устройств.

TestDisk — это мощная бесплатная программа для восстановления данных! Она была разработана в первую очередь, как инструмент восстановления утраченных разделов и/или восстановления загрузочной способности дисков, если эта проблема вызвана програмно, вирусами или ошибками человека (такими, как случайное удаление Таблицы Разделов). Восстановить Таблицы Разделов TestDisk-ом очень легко. Но TestDisk может также восстанавливать удаленные файлы на файловых системах FAT, NTFS и ext2; копировать файлы с удалённых FAT, NTFS и ext2/ext3/ext4 разделов. (Смотрите статью В.Симон, » Testdisk — восстановление таблицы разделов диска «).

Foremost — консольная программа, позволяющая искать файлы на дисках или их образах по hex-данным, характерным заголовкам и окончаниям. Программа прочёсывает файлы на предмет совпадения заранее определённых hex-кодов (сигнатур), соответствующих наиболее распространённым форматам файлов. После чего экстрагирует их из диска/образа и складывает в каталог, вместе с подробным отчётом о том, чего, сколько и откуда было восстановлено. Типы файлов, которые foremost может сразу восстановить: jpg, gif, png, bmp, avi, exe, mpg, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, htm, cpp. Есть возможность добавлять свои форматы (в конфигурационном файле /etc/foremost.conf), о которых программа не знает.
Статьи: » Восстановление удаленных файлов при помощи foremost «, » Восстановление удалённых файлов в ОС Linux «.

R-Linux является бесплатной программой для восстановления файловых систем Ext2/Ext3/Ext4 FS, используемых в Linux и некоторых Unix-системах. Используемая в R-Linux Технология Сканирования и удобный в установке параметров интерфейс программы дают пользователю абсолютный контроль над процессом восстановления данных. R-Linux позволяет скопировать информацию и создать образ целого диска или его части, а уже затем работать с файлом образа, сохраненным на другом носителе, как с оригинальным диском. R-Linux производит поиск файлов известных типов, используя типовые характеристики их структур, что позволяет пользователю искать и восстановить файлы с устройств, где файловая система неизвестна, — HD, CD, DVD, дискет, USB дисков, ZIP дисков и устройств флеш-памяти (Compact Flash Card, Memory Sticks). Однако, в программе отсутствует возможность восстановления данных по сети, а также функциональность по реконструкции дисковых массивов и восстановления с них данных.

DMDE — DM Disk Editor and Data Recovery Software. Программа для редактирования дисков и восстановления данных. В бесплатной версии доступны все функции дискового редактора, управления разделами и восстановления файлов, за исключением возможности группового восстановления файлов и каталогов; полная версия позволяет восстанавливать группы файлов и директории с сохранением структуры каталогов.

PhotoRec — это утилита, входящая в состав пакета TestDisk. Предназначена для восстановления испорченных файлов с карт памяти цифровых фотоаппаратов (CompactFlash, Secure Digital, SmartMedia, Memory Stick, Microdrive, MMC), USB flash-дисков, жестких дисков и CD/DVD. Восстанавливает файлы большинства распространенных графических форматов, включая JPEG, аудио-файлы, включая MP3, файлы документов в форматах Microsoft Office, PDF и HTML, а также архивы, включая ZIP. Может работать с файловыми системами ext2, ext3, FAT, NTFS и HFS+, причем способна восстановить графические файлы даже в том случае, когда файловая система повреждена или отформатирована.
Может работать под операционными систмами Linux, DOS, Windows, FreeBSD, NetBSD, OpenBSD, Mac OS X и SunOS

Читайте также:  Для чего нужна командная строка windows

Mondo Rescue . Основное назначение этой программы — создание резервных копий данных. Она может создавать резервные копии на магнитных лентах, CD, на удаленных носителях по NFS или в виде ISO-образов на локальных дисках. Но в случае повреждения данных программа позволяет восстановить их полностью или частично, даже если ваш жесткий диск недоступен обычными средствами.
Mondo запускается на всех основных дистрибутивах Linux, поддерживает LVM, RAID, ext2, ext3, JFS, XFS, ReiserFS, VFAT и другие файловые системы. Может восстанавливать геометрию диска, обеспечивать миграцию данных на RAID-массивы, проверять целостность файловой системы компьютера. Кроме того, позволяет проводить реструктуризацию диска, уменьшать/увеличивать разделы, переназначать устройства, добавлять жесткие диски.

Safecopy — инструмент для восстановления данных, который пытается извлечь данные из доступных, но проблематичных носителей (с поврежденными секторами). В качестве источника данных могут выступать внешние устройства (такие как CD, DVD и Blu-ray) и разделы жеских дисков. Программа обладает тем преимуществом, что продолжает работу даже тогда, когда другие средства прекращают ее из-за ошибок ввода/вывода. Обычные средства копирования, такие как cat, cp или dd не позволяют создать образ диска или съемного носителя, если произошел сбой при чтении какого-то сектора.

The Sleuth Kit (TSK) — набор программ (fls, icat, ffind, ifind, mmls, fsstat, etc.) для проведения криминалистического анализа файловых систем. TSK — совокупность UNIX инструментальных средств командной строки, которые могут анализировать файловые системы NTFS, FAT, FFS, EXT2FS, и EXT3FS. TSK читает и обрабатывает структуры файловой системы самостоятельно, поэтому не требуется поддержка файловой системы операционной системой.
Статьи: Восстановление спрятанных или потерянных данных .

  • Scalpel — это средство быстрого восстановления файлов. Уникальность данного ПО заключается в том, что оно не зависит от файловой системы. Программа ищет по базе данных начало и конец файлов известных форматов и пытается найти их на диске. Поэтому восстановление возможно как с FATx, NTFS, ext2/3, так и с «голых» (raw) разделов.
    Статьи: Восстановление удаленных файлов с помощью Scalpel
  • Кроме перечисленных в некоторых статьях упоминаются также утилиты Magicrescue и ntfsundelete из пакета ntfstools.

    Этот список может вам очень пригодиться, если вы попадете в ситуацию, когда требуется восстановить данные с поврежденного носителя. И желательно освоить хотя бы некоторые из этих инструментов до того, как возникнет острая необходимость в их применении. Для этого имеет смысл протестировать их на искусственных примерах удаления файлов, как это сделано в одной из заметок, приведенных в списке источников.

    В заключение несколько советов, может быть тривиальных, но зато безусловно полезных, относительно того, как попытаться избежать попадания в неприятную ситуацию, когда требуется применение перечисленных выше средств. Во-первых, можно сделать так, чтобы случайно удалить файл или каталог было сложнее. Для этого сделайте так, чтобы вместо команды rm вызывалась команда rm -i. Сделать это можно с помощью команды alias следующим образом: Тогда перед выполнением удаления вам будет задан дополнительный вопрос, действительно ли вы этого хотите.

    Второй совет: делайте резервные копии своих данных как можно чаще, каждый день или даже каждый час. Если следовать этому совету, то в самом плохом случае вы потеряете только те результаты своей работы, которые получили в течение последнего часа. Да и процедуры восстановления данных в таком случае выполнить будет гораздо проще. Автоматизировать выполнение этих процедур можно с помощью cron-а и утилиты rsync, организовав периодическое копирование важных файлов и каталогов на другой диск или раздел. А можно использовать упомянутую выше утилиту Mondo Rescue. Кстати, вы освоите ее применение, что может оказаться полезным в случае возникновения необходимости восстановления данных в чрезвычайной ситуации.

    И третье: прежде чем приступать к попыткам восстановления удаленных файлов, сделайте копию раздела, в котором находились эти файлы, и работайте с ней, а не с исходным разделом. Если в процессе восстановления вы снова ошибетесь, то сможете начать все с начала. Если же работать с исходным разделом, можно испортить данные безвозвратно. Сделать копию раздела можно с помощью команды dd (о применении этой команды вы можете прочитать в статье А.Дмитриева «dd: Команда, которая не похожа на другие»).

    Нелишне напомнить также, что существуют специальные дистрибутивы Linux, запускающиеся с CD или других съмных носителей и содержащие наботы утилит администрирования, в том числе и инструменты восстановления данных. В качестве примера таких дистрибутивов можно упомянуть SystemRescue CD и Trinity Rescue Kit.

    Я полагаю, что приведенный выше список через некоторое время тоже устареет, как это случилось с перечнем, приведенным в статье, упомянутой в начале этой заметки. Зато появятся новые средства, может быть более совершенные. Чтобы быть в курсе, заглядывайте иногда на сайт «Каталог программного обеспечения для Linux» , а еще лучше — помогайте поддерживать этот каталог в актуальном состоянии. Тогда в любой нештатной или штатной ситуации вы или другой пользователь Linux сможет найти необходимые средства и инструменты для решения своих проблем.

    Источники и другие статьи на ту же тему

    • Carlo Wood, перевод: А.Коваленко, «Как восстановить удаленные файлы в файловой системе ext3»
    • Kurt Edelbrock, перевод: А.Тарасов, «Если вы сказали «О-о-о-й!»: ext3undel»
    • Перевод А.Дмитриев, «Упаси Боже (Root) удалить этот файл»
    • «Ext2fs-Undeletion-howto (Восстановление удаленных файлов с файловой системы Ext2fs в Linux)»
    • Обзор программ восстановления удаленных данных в linux
    • Восстановление удалённых данных в Linux
    • Linux Data Recovery Tool
    • 5 of the Best Free Linux Data Recovery Tools

    Дополнение от 11.01.2014: получил сегодня письмо от одного из посетителей сайта, который пишет, что нашел очень интересную статью на тему восстановления удаленных файлов — читайте: «Восстановление удаленных файлов на ext3/ext4»

    Источник

    Оцените статью