Сегодня я сделал глупость, например, использовал «diskpart» Windows, чтобы попытаться удалить том внутри моего портативного SSD NVME 256GB, но вместо этого я набрал «clean» и удалил все тома на этом диске.

Внутри внешнего SSD-диска было в порядке: • 8 ГБ загрузочной загрузки Windows • Том 147 ГБ, где я храню общие папки, отформатированные в NTFS • 2 ГБ загрузочной папки Linux в ext4 • 39 ГБ зашифрованного тома ubuntu в ext4 • 22 ГБ зашифрованного тома veracrypt в exfat (думаю, exfat, но не уверен, в любом случае Windows показывала RAW) (это самое важное и то, что я не вижу) (зашифрованный том использовался для сокрытия другого зашифрованного тома) • 17 Gb EFI windows boot

Ниже вы можете увидеть некоторые из моих скриншотов:

enter image description here

enter image description here

enter image description here

enter image description here

Результат очень грязный и неправильный:

enter image description here

Потом поменял "головку" в геометрии диска на 8 (раньше было 255) и потом еще раз проанализировал, но результат был тот же.

У вас есть идеи, как я могу восстановить весь раздел, как раньше?

1
RosMyster 24 Фев 2021 в 21:02
Если вы не получили ответов или вариантов, попробуйте использовать R-Studio Undelete.
 – 
Artem S. Tashkinov
24 Фев 2021 в 22:24

1 ответ

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

Если нет, то вы должны угадать. Первый часто начинается с 1 МБ, и они, как правило, выравниваются до целых мегабайт. Но нет никакой гарантии, что это было именно так.

Чтобы просмотреть второй мегабайт вашего диска (вероятно, начало первого раздела), попробуйте следующее:

dd if=/dev/sdb bs=1M skip=1 count=1 | file -

Вы говорите, что первый раздел был разделом восстановления Windows, вероятно, NTFS или FAT. file затем сказал бы что-то вроде этого:

/dev/stdin: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 2048, sectors 524286 (volumes > 32 MB), FAT (32 bit), sectors/FAT 4033, reserved 0x1, serial number 0x7109f176, label: "EFI20210224"

Или это:

/dev/stdin: DOS/MBR boot sector, code offset 0x52+2, OEM-ID "NTFS    ", sectors/cluster 8, Media descriptor 0xf8, sectors/track 0, dos < 4.0 BootSector (0x80), FAT (1Y bit by descriptor); NTFS, sectors 204799, $MFT start cluster 4, $MFTMirror start cluster 12799, bytes/RecordSegment 2^(-1*246), clusters/index block 1, serial number 064baf16e1b371b26

Если он просто говорит /dev/stdin: data, вы ошиблись позицией. Изменяйте параметр skip=, пока не найдете его. Возможно, вам придется проверять кратные 512 байтам вместо целых мегабайт. Вы помните примерные размеры и порядок, так что шанс есть.

Для раздела ext4 file будет говорить что-то вроде:

/dev/stdin: Linux rev 1.0 ext4 filesystem data, UUID=52e69144-d086-54a3-882c-97fa6985226f, volume name "proot20210224" (needs journal recovery) (extents) (64bit) (large files) (huge files)

Для каждого типа файловой системы вы можете создать его в обычном файле, а затем проверить, что о них говорит file. Таким образом, вы будете знать, когда вы нашли каждый тип. Не просто переборщите это, проверьте позиции, в которых они должны быть. Где-то на диске может быть случайный мусор, который достаточно похож на заголовок файловой системы, чтобы обмануть file.

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

start=2048,size=16777216

Если он действительно начинается с 1 МБ, а это ровно 8 ГиБ. Но размер, конечно, зависит от того, где вы нашли следующий. Размер последнего раздела можно пропустить, чтобы использовать остальную часть диска.

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

0
stribika 25 Фев 2021 в 02:15
Спасибо за ответ, но ваши знания намного превосходят мой опыт. Я использую Windows 10, никогда в жизни не использовал Ubuntu, впервые использую testdisk. Я даже не знаю, куда вставить те команды, которые вы написали. В винде cmd? Есть ли для меня туториал на ютубе или где-то еще?
 – 
RosMyster
26 Фев 2021 в 00:03
Это команды Linux, я предположил, что у вас где-то еще есть работающая установка или, по крайней мере, копия sysresccd. (И эти скриншоты очень похожи на cfdisk.) dd – это простой инструмент для копирования данных, file пытается угадать, какой тип данных он просматривает, а sfdisk может создавать таблицы разделов. Но первое правило восстановления данных: если вы точно не знаете, что делаете, не делайте этого. Можно сделать хуже.
 – 
stribika
26 Фев 2021 в 00:19
Таким образом, в первой команде if=/dev/sdb указывает dd читать из /dev/sdb; bs=1M сообщает ему использовать единицы 1 МБ; skip=1 указывает ему пропустить 1 единицу (МиБ) в начале ввода; count=1 говорит ему прочитать 1 единицу. Поскольку of= отсутствует, он будет писать на стандартный вывод, который отправляется на стандартный ввод file из-за |. - указывает file читать со своего стандартного ввода.
 – 
stribika
26 Фев 2021 в 00:25