gdisk, сделать временное исправление поврежденной таблицы GPT

gdisk, сделать временное исправление поврежденной таблицы GPT

Мой ноутбук не может загрузиться. Поэтому я запускаю Ubuntu 18.04 live с загрузочного USB. Он не смонтировал автоматически жесткий диск на 500 ГБ /dev/sda, который использует GPT.

lsblkпоказывает только диск, а не разделы; fdiskвместо этого может их показывать.

gdiskпоказывает ту же ошибку, что и вэта страница(Раздел «Полуавтоматическое восстановление»):

# gdisk /dev/sda
GPT fdisk (gdisk) version 0.7.2

Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

recovery/transformation commandЗатем на связанной странице в разделе «Процедуры ручного восстановления» отображается список опций , в котором указывается, что:

Вы можете поэкспериментировать со всеми описанными выше опциями (кроме w); ни одна из утилит восстановления данных не вызывает немедленной записи на диск.

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

Можно ли gdiskвременно использовать backup partition table, чтобы Ubuntu могла монтировать /dev/sdaразделы диска, а затем оставить диск неизменным при завершении работы Ubuntu?

решение1

Вам не нужно, чтобы ваша ОС распознавала раздел. Вы можете (попытаться) смонтировать все устройство с правильным смещением. Например, если вы подозреваете (или если какой-либо инструмент вам это подскажет), что раздел начался с sector 2048(довольно распространенное значение с 512-байтовыми логическими секторами), то попробуйте:

sudo mount -o ro,offset=$((2048*512)) /dev/sda /some/mountpoint

( roна всякий случай; без него было бы так -o offset=$((2048*512))). Если он монтируется и содержимое выглядит нормально, начальный сектор правильный.

Это может быть номер сектора 256для 4096-байтовых логических секторов. Обратите внимание, что $((256*4096))и $((2048*512))— это одно и то же число.

И если какой-либо инструмент скажет вам начать с сектора 14649344, вы используете offset=$((14649344*512))(предполагая, что сектора размером 512 байт).

Microsoft любила начинать с 63(из-за общего значения 63 секторов на дорожку в CHS, я полагаю), но это было до GPT. Если вам когда-нибудь понадобится угадать, где C:\начинается Windows эпохи XP, попробуйте offset=$((63*512)).


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

Если fdiskне помогло, testdiskто это будет следующим инструментом для запуска. Я считаю, что он может искать потерянные разделы и отображать их начальные сектора без изменения диска. Это должно дать вам смещения, которые можно попробовать.

Связанный контент