Восстановление данных в Linux: Введение
Многие из нас сталкивались с ситуациями, когда случайно был удалён нужный файл, либо вирусы «погрызли» самые интересные фотографии из Турции, либо по каким-либо другим причинам были потеряны важные данные.
В интернете можно найти много программ, позволяющих восстановить потерянные данные. Есть как бесплатные утилиты (например, Recuva, UndelePlus, R.Saver, PC Inspector File Recovery, Pandora Recovery и т. д.), так и платные (Ontrack EasyRecovery, BadCopy Pro, RecoverMyFiles, GetDataBack и т. д.). Также предлагается много программ для восстановления потерянных фотографий с флэшек, стоимость которых начинается от 199 рублей (западные — от 30 долларов) и выше. Какие-то из них эффективны, другие — не очень, но практически у всех есть один недостаток: они работают только в системе Windows. А как же быть пользователям других систем, таких как Linux, популярность которой с каждым днём набирает обороты?
Оказывается, для неё тоже имеются мощные инструменты восстановления данных, которые в отличие от Windows и MacOS в большинстве случаев являются бесплатными, но работают в основном только в консоли. Более того, для восстановления данных независимо от файловых систем рекомендуется использовать именно систему Linux, и на то есть несколько веских причин:
- если к компьютеру с системой Windows подключить сбойный жёсткий диск, то она может и не загрузиться;
- во время работы система Windows (даже в режиме LiveCD) производит записи на жёсткий диск без ведома пользователя, что снижает вероятность полноценного восстановления данных;
- как известно, Windows без антивируса — это мёртвая Windows, но антивирусы могут тормозить процесс восстановления данных, попутно удаляя восстановленные файлы, которые они ошибочно могут принять за вирусы; даже если антивирус отключить, его ядро всё равно остаётся включенным и продолжает работать;
- в составе систем Linux есть собственные мощные инструменты, которые могут спасти положение в сложных ситуациях, когда кажется, что всё безнадёжно; например, утилита ddrescue прекрасно копирует диски со сбойными секторами, создавая образы, с которыми потом сможет работать любая программа;
- из любой системы Linux можно создать загрузочный диск или флэшку, предварительно установив в создаваемую систему все необходимые программы; можно конечно же сделать подобный диск и из системы Windows, но во-первых, это нарушит лицензионное соглашение, а во-вторых, в некоторых случаях он окажется бесполезен (см. п.1 и 2);
- для корректного распознавания жёстких дисков в Windows придётся включать драйвера чипсетов и RAID-контроллеров; это особенно актуально для загрузочных дисков на базе WindowsXP;
- для систем Windows загрузочная флэшка как правило форматируется в раздел NTFS или FAT32; достаточно одного некорректного выключения компьютера или завершения работы с такой флэшкой, чтобы она потеряла свои загрузочные способности; загрузочные флэшки на базе системы Linux и файловой системой ISOFS в этом плане гораздо стабильнее.
Недостатки можно перечислять и дальше, но для этого потребуется отдельная статья.
Почитать обзоры некоторых утилит для системы Linux можно на сайтах:
В данной статье рассмотрены наиболее популярные утилиты (бесплатные и коммерческие), а некоторые из них описаны более подробно. Я буду описывать все программы с точки зрения начинающего «спасителя данных» (коим в принципе и являюсь) и проводить эксперименты в штатных условиях (например, случайно отформатировал флэшку с фотографиями). Для экспериментов были выбраны две флэшки:
- Флэшка №1 — типа SD из фотоаппарата объёмом 2 ГБ, на которой было записано 512 фотографий в двух разных папках (в одной — 356, в другой — 156);
- Флэшка №2 — моя рабочая USB-флэшка на 8 ГБ, на которой была всякая всячина общим количеством 1192 файла в 146 папках.
Для усложнения задачи обе флэшки были очищены под Windows XP в режиме полного форматирования.
В качестве дополнительного эксперимента я пробовал восстановить данные с диска DVD-RW, на котором был записан 21 мультфильм в формате AVI размером от 90 до 200 МБ, затем диск был отформатирован программой Nero в режиме «быстрого стирания». Что из этого получилось, читайте ниже.
Благодарности
За помощь в подготовке статьи хочется выразить благодарность Дмитрию Сидорову — автору программы DMDE (её описание приведено ниже) — за предоставленную копию DMDE Professional для тестирования, а также за консультации по особенностям восстановления данных с различных файловых систем и некоторые замечания.
Рекомендации
Перед тем, как восстанавливать данные, нужно знать несколько вещей:
- носитель (жёсткий диск, флэшка, дискета и т. д.) обязательно должен быть доступен системе; если жёсткий диск или флэшка в компьютере никак не определяются, значит, программы восстановления данных окажутся бесполезны, в этом случае вам поможет только дорогое специализированное оборудование (например, комплекс PC-3000 от компании «ACE Laboratory») или фирма, у которой это оборудование есть в наличии;
- если вы потеряли нужные файлы, ни в коем случае на этот носитель нельзя ничего сохранять, иначе новые файлы могут записаться поверх старых, и вероятность восстановить нужные данные резко падает;
- если на диске появились проблемы физического характера («плохие» секторы, посторонние звуки, диск уронили и т.д.), то при наличии особо важных данных лучше сразу его отключить и обратиться к специалистам, в противном случае после собственных неудачных попыток сложность и стоимость восстановления на специализированном оборудовании может существенно возрасти, либо можно безвозвратно добить бесценные данные, если диск в процессе сканирования «умрет»;
- если вы потеряли важные данные в результате неудачных операций с жёстким диском (например, переразметка или форматирование в другую систему), попробуйте сначала восстановить прежнюю таблицу разделов; очень большая вероятность, что после такого восстановления все ваши данные окажутся в целости и сохранности;
- если в вашем компьютере использовался RAID-массив и данные были потеряны в результате его разрушения, не торопитесь его восстанавливать; для таких случаев существуют утилиты, позволяющие создать «виртуальный RAID» и далее работать с ним как с реальным, а в некоторых коммерческих программах восстановления данных эта функция уже включена; после реконструирования RAID-массива для безопасности желательно создать его полный образ и далее работать уже с ним;
- если на диске, с которого будет проводиться восстановление, установлена какая-либо система, крайне нежелательно загружать её и использовать для запуска программ восстановления, особенно если эта система — Windows; для таких случаев рекомендую создать загрузочный диск или флэшку на базе системы Linux с включенными в неё необходимыми программами восстановления; как сделать загрузочную флэшку на базе систем Debian или Ubuntu, описано в самом конце статьи;
- перед тем, как восстанавливать данные, желательно запастись вторым носителем (жёстким диском, флэшкой), на который будут записываться восстановленные файлы; поскольку вместе с нужными файлами восстанавливается много «мусора», который по объёму может в несколько раз превышать объём полезной информации, позаботьтесь заранее о том, чтобы на втором носителе было достаточно свободного места;
- процесс восстановления данных довольно длительный, особенно когда сканируются жёсткие диски, поэтому желательно, чтобы во время сканирования компьютер был подключен к блоку бесперебойного питания.
- перед тем, как запускать программу восстановления, нужно создать папку, куда будут копироваться восстановленные данные; папка ни в коем случае не должна располагаться на том же разделе, с которого ведётся восстановление, а в идеальном случае её нужно создать вообще на другом диске;
- во время восстановления процессор довольно сильно нагружается, поэтому желательно закрыть все программы, отключить антивирусы (если они установлены), хранитель экрана и т. д., чтобы ничего лишнего не мешало процессу.
- если вы пытаетесь восстановить данные с повреждённого диска (например, с плохими секторами), то лучше всего создайте образ этого диска в посекторном режиме, дабы сканирование не добило всю информацию до конца; сделать это можно при помощи бесплатных утилит dd, ddrescue, encase и т. д.; сделать образ раздела в посекторном режиме утилитой dd можно при помощи команды:
sudo dd if=/dev/sdXY of=//disk_image.dd bs=512 conv=sync,noerror
В этой команде X — порядковая буква диска в системе, Y — порядковый номер раздела (оба параметра можно посмотреть командой fdisk -l); / — полный путь до каталога, куда сохраняем образ; bs=512 — размер блока, записанный за один раз (в данном случае 512 байт, но можно установить размер, равный размеру кэша диска, например, 8M); conv=sync,noerror — копирование всего диска бит-в бит, пропуская ошибки чтения; эти два параметра конечно же замедлят процесс создания образа, но это нужно для более высокого результата восстановления.
Что ещё нужно знать
Режим сканирования RAW, который поддерживают большинство программ восстановления, позволяет сканировать любые носители независимо от файловой системы, даже с намертво убитыми файловыми системами, но у него есть некоторые недостатки:
- восстанавливается только содержимое файлов без имени и начального местоположения;
- в этом режиме стопроцентного восстановления всех файлов не гарантирует ни одна программа;
- успех восстановления файлов некоторых форматов (особенно редких) зависит от того, «знакома» ли с ними программа восстановления, которую вы используете; файлы, не имеющие своего формата, например текстовые, созданные в Notepad, не восстанавливаются;
У фрагментированных файлов правильно восстанавливается только начальный фрагмент, поэтому:
- очень многие файлы после восстановления могут быть повреждены;
- как правило не восстанавливаются файлы больших размеров.
Режим RAW рекомендуется применять только в крайних случаях, когда восстановление по файловой системе невозможно.
При форматировании раздела с файловой системой FAT полностью очищаются таблицы FAT и корневая директория, поэтому все файлы и имена папок, которые были расположены в корне флэшки, не восстанавливаются (файлы можно восстановить только в режиме RAW), а фрагментированные файлы восстанавливаются некорректно; с разделами NTFS такой проблемы нет.
Windows XP в режиме «полного форматирования» очищает разделы точно так же, как и в «быстром», но попутно производит тестовую запись во все сектора с последующим возвращением исходных данных для проверки состояния носителя, а вот системы Windows Vista и Windows7, а также специальные утилиты форматирования, в «полном» режиме очищают всё целиком, что делает невозможным любое восстановление данных, так что будьте внимательны!
При восстановлении данных с файловых систем EXT2/3/4 раздел, с которого ведётся восстановление, обязательно должен быть отмонтирован, поэтому программу восстановления желательно запускать с загрузочного диска LiveCD или LiveUSB.
На файловых системах EXT2/3/4, ReiserFS, XFS (Linux), UFS1/2 (FreeBSD), HSF/HFS+/HFSX (MacOS) при удалении файла сразу же удаляется вся информация о нём, поэтому после форматирования раздела данные можно восстановить только в режиме RAW.
Помните: самым надёжным средством от потери важных данных являются резервные копии (бэкапы), своевременно созданные на других носителях!