У меня есть жесткий диск размером 2 ТБ с одним форматом ext4. Недавно, работая под Windows 7 на той же машине, я повредил вышеупомянутый раздел. Случилось так, что, когда я пытался восстановить внешний USB-накопитель, я открыл стандартное средство управления дисками Windows, и оно предложило мне сделать диск 1 «активным». В тот момент я не осознавал, что «disk1» - это не мой USB-диск, а внутренний диск ext4. После нажатия кнопки «ОК» Windows создала на диске «системный зарезервированный раздел» размером 100 МБ, а остальное осталось нетронутым.
Когда я снова вошел в Linux, раздел не был смонтирован. Я удалил созданный Windows 100MB NTFS «системный зарезервированный раздел» и попытался запустить Testdisk. Testdisk видит мой старый раздел ext4, но в конце говорит что-то вроде «ни один раздел не может быть восстановлен».
Можно ли вернуть мои разделы и структуру каталогов + данные? Проблема в том, что у меня были все мои программы (C / C ++) и рабочие каталоги, а также некоторые экспериментальные данные, то есть файлы, которые не имеют определенных заголовков, таких как jpg или pdf. Есть ли способ восстановить эти данные? Могу ли я, например, восстановить часть раздела, скажем, что-нибудь выше 100 МБ?
P.S. Пожалуйста, давайте избегать комментариев «вы должны были сделать резервную копию» .. :) У меня была резервная копия, но она была сохранена на USB-накопителе, который я сначала пытался восстановить ... (общий сбой диска, диск не читается ).
Для восстановления я использовал только «dd» -копию диска:
sudo dd if=/dev/sdb of=/dev/sdd
(«sdb» - поврежденный диск и « sdd "это то, что я использовал для тестов)
Сначала я использовал" gdisk ", чтобы создать новую пустую таблицу разделов GUID (опция -o).
$ sudo gdisk /dev/sdd
Command (? for help):
$ o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N):
$ y
$ w
Я пытался sudo e2fsck /dev/sdd
- неудачно (первый суперблок был поврежден)
$ sudo e2fsck /dev/sdd
e2fsck 1.41.12 (17-May-2010)
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/sdd
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
, затем я сделал sudo mke2fs -n /dev/sdd
для перечислите суперблоки
$ sudo mke2fs -n /dev/sdd1
mke2fs 1.41.12 (17-May-2010)
/dev/sdd is entire device, not just one partition!
Proceed anyway? (y,n)
$ y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
122101760 inodes, 488378646 blocks
24418932 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
14905 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
затем - sudo e2fsck -b 214990848 /dev/sdd
после применения нескольких исправлений у меня получился частично восстановленный раздел! На самом деле все было не так просто. Я пробовал с несколькими суперблоками и разными опциями e2fsck. Во всяком случае, это был общий рецепт.
Приложение: во время восстановления я ответил «нет» на все вопросы, такие как:
One or more block group descriptor checksums are invalid. Fix(y)?
$ no
/lost+found not found. Create(y)?
$ no
Free blocks count wrong for group # (32768, counted=0). Fix(y)?
$ no
Free inodes count wrong (122101749, counted=1606). Fix(y)?
$ no
Попробуйте GNU ddrescue.
GNU ddrescue - это инструмент для восстановления данных. Он копирует данные из одного файла или блочного устройства (жесткий диск, компакт-диск и т. Д.) В другой, изо всех сил пытаясь спасти данные в случае ошибок чтения.
Основная операция ddrescue полностью автоматическая. То есть вам не нужно ждать ошибки, останавливать программу, читать журнал, запускать его в обратном режиме и т. Д.
Для получения дополнительной информации и загрузки ddrescue см. Их сайт .
Ubuntu Rescue Remix - это живая система GNU / Linux, которая работает с CD или USB-устройства флэш-памяти. Он предоставляет специалисту по восстановлению данных среду интерфейса командной строки, оснащенную лучшими доступными бесплатными инструментами восстановления данных с открытым исходным кодом и криминалистической экспертизы.
Есть также отличные продукты, но не бесплатно. Например, R-STUDIO для восстановления данных в Linux .
Вы также можете попробовать R-Studio .
R-Studio - это семейство мощных и экономичных программ восстановления и восстановления данных. Оснащенный новыми уникальными технологиями восстановления данных, это наиболее комплексное решение для восстановления данных из файлов NTFS, NTFS5, ReFS, FAT12 / 16/32, exFAT, HFS / HFS + (Macintosh), Little и Big Endian вариантов UFS1 / Разделы UFS2 (FreeBSD / OpenBSD / NetBSD / Solaris) и Ext2 / Ext3 / Ext4 FS (Linux). Он также использует восстановление файлов (сканирование на наличие файлов известных типов) для сильно поврежденных или неизвестных файловых систем. Он работает на локальных и сетевых дисках, даже если такие разделы отформатированы, повреждены или удалены. Гибкие настройки параметров дают вам абсолютный контроль над восстановлением данных.
blockquote>
Возможно, вы столкнулись с этой проблемой, , но это не совсем понятно. Если это так, то это ваш первый случай такого рода, о котором я слышал, и вы можете поблагодарить расставшихся разработчиков GNU за то, что они занимались исправлением более двух лет.
С практической точки зрения лучшая ставка для восстановления заключается в следующем:
sudo dd if=/dev/sdc of=/path/to/backup.img
выполняет резервное копирование /dev/sdc
(если это поврежденный диск) в /path/to/backup.img
(вы можете изменить этот целевой каталог или имя файла, если хотите). Очевидно, у вас должно быть достаточно свободного места в /path/to
для хранения резервной копии. Это означает, что вам может понадобиться купить новый резервный диск, подготовить его и смонтировать его в /path
или /path/to
. Вы можете пропустить этот шаг, но тогда, если вы усугубите положение, его будет труднее восстановить - возможно, до такой степени, что его уже невозможно будет восстановить. fdisk
(если диск использовал MBR) или gdisk
(если диск использовал GPT), чтобы заново создать исходные разделы. Поскольку вы говорите, что у вас был один раздел на диске, есть вероятность, что он начался в секторе 2048 и продолжился до конца диска. Таким образом, удаление текущего раздела (ов) и воссоздание этого раздела может работать. Не создавать новую файловую систему на диске; просто создайте пустой раздел. (GParted любит создавать новую файловую систему, поэтому ее следует избегать. Можно создать пустую секцию, но зачем рисковать?) e2fsck
на разделе, который вы только что создали. Если вам очень повезло, он может найти достаточно структур данных ext4fs, чтобы вернуть диск к работе, хотя, возможно, с некоторыми отсутствующими файлами или другими проблемами. Возможно, вы захотите использовать fsck.ext4, чтобы убедиться, что он правильно распознает, что это файловая система ext4. Использование опций e2fsck
(таких как -b
) может улучшить ваши шансы на восстановление данных, но эти опции очень продвинуты. Подробнее см. Справочную страницу e2fsck
.