Никогда не пишите ничего на диск, с которого вы пытаетесь восстановить данные
Также, если возможно, создайте образ диска с помощью dd
, ddrescue
или чего-либо, что вам подходит.
Скачайте Linux Live CD (я настоятельно рекомендую System Rescue CD)
Используйте testdisk для восстановления старой таблицы разделов. Это были бы основные шаги:
- Запустите
fdisk -l
чтобы узнать узел вашего дискового устройства
- Запустите
testdisk </dev/sdX>
замените его
- Выберите тип таблицы разделов (обычно
Intel
)
- Выберите команду «
Analyze
Начиная с этого момента, это зависит от того, нашел ли он ваш потерянный раздел и можно ли его восстановить. Следуйте пошаговой инструкции для более подробных шагов.
Если testdisk
не смог найти ваш потерянный раздел, скорее всего, часть информации была перезаписана. Теперь хорошим выбором будет использовать photorec, чтобы попытаться восстановить из него столько файлов, сколько сможете.
photorec
будет читать объем диска и использовать эвристику, чтобы восстановить как можно больше файлов из необработанных данных. После этого вам предстоит просмотреть восстановленные файлы и найти, что полезно, а что нет.
Оба testdisk
и photorec
включены в CD System Rescue.
РЕДАКТИРОВАТЬ:
Вы также можете попытаться создать изображение только нераспределенного пространства и запустить PhotoRec для этого изображения. Это должно быть быстрее. Я предполагаю, что у вас уже есть образ диска в image-file
:
bash # sfdisk -l -uS image-file
Disk image-file: 0 cylinders, 255 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
image-file1 * 2048 206847 204800 83 Linux
image-file2 206848 4401151 4194304 82 Linux swap / Solaris
image-file3 4401152 312581807 308180656 83 Linux
image-file4 0 - 0 0 Empty
Таким образом, из этой информации мы знаем, что размер блока равен 512, а последний раздел заканчивается 312581807. Нам нужно извлечь оттуда на:
dd if=image-file of=unallocated-space bs=512 skip=312581807
Источник.