«На днях я открыл свой компьютер и обнаружил, что один из моих разделов GPT отсутствует. В разделе хранятся важные документы, которые я не могу позволить себе потерять. Я не знаю, как мне восстановить таблицу разделов GPT обратно?”
Сохранили документы на раздел, но теперь не можете их найти? Это может быть серьезной проблемой, но ее решение проще, чем кажется. Когда раздел пропадает, причиной может быть множество факторов, например, случайное удаление или отключение питания. Это руководство представит 3 метода восстановления разделов GPT.
- В этой статье
- GPT против MBR
- Часть 2. Распространенные причины потери разделов GPT
- Общие принципы
- Восстанавливаем структуру ФС
- Установка загрузчика в через
- Finding offset
- Создание записи в таблице разделов вручную
- Настройка размера
- Возможные проблемы
- Часть 4. Как уничтожить разделов GPT в будущем?
- Часть 3. 3 метода восстановления разделов GPT в Windows/Mac/Linux
- Метод 1. Восстановление раздела GPT с помощью «Управления дисками»
- Метод 2. Восстановление раздела GPT из резервной копии
- Метод 3. Выполните восстановление раздела GPT с помощью программного обеспечения для восстановления данных
- Wondershare Recoverit — надежное программное обеспечение для восстановления разделов
В этой статье
GPT против MBR
Ключевое различие между MBR и GPT заключается в том, что первая имеет различные ограничения на использование. MBR ограничен 2 ТБ дискового пространства и четырьмя основными разделами. Однако с GPT можно иметь десять разделов и до 9400000000 ТБ емкости SSD/HDD, поскольку ограничений на разделы нет. Эта страница «GPT против MBR» поможет лучше понять различия между разделами MBR и GPT.
Часть 2. Распространенные причины потери разделов GPT
Потеря раздела GPT может произойти по разным причинам и зачастую ее не избежать. Вот несколько причин, которые следует рассмотреть:
I am having troubles getting my partitions to show up correctly on one of my drives.
The problem I run:
sudo gdisk /dev/sdb
And I get:
Warning! Disk size is smaller than the main header indicates! Loading
secondary header from the last sector of the disk! You should use ‘v’ to
verify disk integrity, and perhaps options on the experts’ menu to repair
the disk.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! One or more CRCs don’t match. You should repair the disk!
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged
So then I did v to reveal the exact issues:
Caution: The CRC for the backup partition table is invalid. This table may
be corrupt. This program will automatically create a new backup partition
table when you save your partitions.
Problem: The secondary header’s self-pointer indicates that it doesn’t reside
at the end of the disk. If you’ve added a disk to a RAID array, use the ‘e’
option on the experts’ menu to adjust the secondary header’s and partition
table’s locations.
Problem: Disk is too small to hold all the data!
(Disk size is 1953569134 sectors, needs to be 3907029168 sectors.)
The ‘e’ option on the experts’ menu may fix this problem.
Problem: GPT claims the disk is larger than it is! (Claimed last usable
sector is 3907029134, but backup header is at
3907029167 and disk size is 1953569134 sectors.
The ‘e’ option on the experts’ menu will probably fix this problem
Problem: partition 2 is too big for the disk.
Identified 5 problems!
After running e then v again I get:
I can now see the correct partitions using p:
Disk /dev/sdb: 1953569134 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): D690A9B2-EA00-4D2E-9E18-0D4545A8683A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953569100
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1953515519 931.5 GiB 0700
2 1953515520 3907028991 931.5 GiB 0700
I am stuck at this point and any help would be greatly appreciated.
I have a SD card that has some issues and I could not fixed them.
This is how the disk looks like in GNOME Disks:
sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! Main and backup partition tables differ! Use the ‘c’ and ‘e’ options
on the recovery & transformation menu to examine the two tables.
Warning! One or more CRCs don’t match. You should repair the disk!
Partition table scan:
MBR: hybrid
BSD: not present
APM: not present
GPT: damaged
Found valid MBR and corrupt GPT. Which do you want to use? (Using the
GPT MAY permit recovery of GPT data.
I am not sure which partition table should I use but I used GPT (create blank GPT was not helpful)
This is how the partitions are look like:
Command (? for help): p
Disk /dev/sdb: 125067264 sectors, 59.6 GiB
Model: Multi-Card
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 76A0F070-E171-475B-9409-53840D61AD12
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 4194270
Partitions will be aligned on 2048-sector boundaries
Total free space is 671677 sectors (328.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 67583 32.0 MiB 0C01 hassos-boot
2 67584 116735 24.0 MiB 8300 hassos-kernel0
3 116736 641023 256.0 MiB 8300 hassos-system0
4 641024 690175 24.0 MiB 8300 hassos-kernel1
5 690176 1214463 256.0 MiB 8300 hassos-system1
6 1214464 1230847 8.0 MiB 8300 hassos-bootstate
7 1230848 1427455 96.0 MiB 8300 hassos-overlay
8 1427456 3524607 1024.0 MiB 8300 hassos-data
I will get this Info when I want to verify the disk:
Caution: The CRC for the backup partition table is invalid. This table may
be corrupt. This program will automatically create a new backup partition
table when you save your partitions.
Problem: The secondary header’s self-pointer indicates that it does not reside
at the end of the disk. If you’ve added a disk to a RAID array, use the ‘e’
option on the experts’ menu to adjust the secondary header’s and partition
table’s locations.
Identified 2 problems!
I could managed to fix these problems and then I got this massage:
No problems found. 121544637 free sectors (58.0 GiB) available in 2
segments, the largest of which is 121542623 (58.0 GiB) in size.
but after writing I got this:
OK: writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
But when I check the partitions again, it is still the same.
I have tried to delete all partitions one by one and then create a new empty GUID partition table but after writing I got this:
OK: writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
But when I check the partitions again, it is still the same. I think it is because of the of hybrid MBR and damaged GPT. Is there any way to delete both of these tables at the same time? Or what can I still do to fix this problem?
Thanks in advance
На гипервизоре Proxmox при запуске виртуальной машины, обнаружилось, что нет ни одного раздела. Из-за чего это произошло не совсем понятно, но в итоге имеем виртуальную машину Ubuntu, которая не загружается, из-за отсутствия разделов. Отсутствие разделов выяснилось только после загрузки с LiveCD и команды fdisk -l.
Давайте восстанавливать пропавшие разделы. Операционная система особой роли не играет. Способы восстановления подойдут для любой ОС на базе Linux с загрузчиком Grub.
Порядок восстановления пропавших разделов в Linux на обычном компьютере/сервере точно такое же как и на виртуальной машине.
В современных дистрибутивах Linux используется только 2 способа загрузки:
Эти два способа используются только со структурой разделов . сейчас не используется. В первом случае работает с устройствами через (немного устаревший вариант). Во втором работает с устройствами через специальную прослойку , минуя .
В моем случае был способ №1. Узнал я это только после того как временно восстановил систему из старого бэкапа.
Общие принципы
Если разделы пропали не по вашей вине (вы не удаляли их и не форматировали), на жестком диске, где размещен образ виртуальной машины, нет -блоков или других проблем, то успех решения этой проблемы очень высок.
Можно проверить жесткий диск на наличие физических проблем, запустив любую специальную утилиту. К примеру, можно запустить программу Victoria только на чтение.
Восстанавливаем структуру ФС
Это теоретический раздел и вводить команды в консоль будем в следующих разделах.
При запуске команды fdisk -l мы не видим ни одного раздела. Если мы создадим разделы на диске точь в точь как это было ранее, то ОС запустится. В моем случае был старый бэкап, который я восстановил и увидел как была размечена файловая система. Примерно так:
Здесь мы видим, используется . Первый раздел имеет 1Мб с меткой bios_boot. Загрузчик в таком случае ставится физически на второй раздел в директорию /boot/.
Запоминаем все цифры и воссоздаем разметку дисков вручную. При этом не форматируем разделы. Это важно.
Если точных данных у вас нет и Вы только примерно представляете структуру (сначала sda1 с boot, а потом sda2 с основным разделом системы), то размечаете первый раздел как на листинге выше. Это сработает, так как этот раздел создается автоматически при установке ОС с одинаковыми параметрами.
Файловая система 3/4 устроена так, что если мы даже создадим один раздел от начала первого и до конца второго, то вы сможете увидеть его содержимое. Восстановить загрузку не получится, а получить доступ к данным — да.
Установка загрузчика в через
При этом варианте загрузки необходимо иметь первый раздел /dev/sda1 размером 1Mb с флагом bios_grub. Этот раздел должен быть обязательно первым.
Создаем первый раздел:
Если не знаете чему должен быть равен Last sector, то оставляете значение по умолчанию.
Если вы изначально знали точные размеры разделов (как в моем случае), то при следующей загрузке у Вас запустится ОС. Если система не запустилась, то необходимо переустановить загрузчик .
Для этого устанавливаем дополнительный пакет:
sudo apt install grub2-common
И далее устанавливаем сам загрузчик:
sudo mount /dev/sda2 /mnt
sudo mount —bind /dev /mnt/dev
sudo mount —bind /proc /mnt/proc
sudo chroot /mnt
sudo grub-install /dev/sda
Здесь подключаем все нужные папки и через chroot ставим .
После перезагрузки система запустится.
Если для загрузки Linux используется , то восстановление похожее как в предыдущем случае. Есть небольшие исключения: специальный раздел должен быть =100Mb и отформатирован в FAT32 с установленным флагом esp. Раздел можно сделать последним. Порядок не важен. Чаще всего — это первый раздел. Именно в этом случае важно знать первоначальную разметку диска до аварии.
Восстанавливаем второй раздел:
Далее устанавливаем загрузчик в раздел. Для этого устанавливаем нужные пакеты:
sudo apt install grub-efi efibootmgr
sudo mount /dev/sda1 /mnt
sudo mount —bind /dev/sda1 /mnt/boot
sudo mount —bind /dev /mnt/dev
sudo mount —bind /proc /mnt/proc
sudo chroot /mnt
sudo grub-install /dev/sda
По сути эти два способа не сильно отличаются между собой, только размером разделов и флагом. В обоих случаях мы создаём заново раздел загрузки и на остальном свободном месте создаем раздел Ext4. Если нужны данные, то они должны уже быть доступны на нем. Если нужно восстановить загрузку ОС, то устанавливаем заново загрузчик.
The command you used
sgdisk -R /dev/sdb /dev/sdh2
copied the GUID partition table (GPT) from /dev/sdh2 to /dev/sdb.
One problem is /dev/sdh2 is a partition. Any partition has no meaningful partition table. Or at least it shouldn’t have one. I can imagine a meaningful partition table inside a partition (and even make it kinda work) but this is cumbersome, exotic, not really useful.
The resulting copy is an empty GPT because apparently the relevant (yet not meaningful) values inside /dev/sdh2 resulted in such table. This doesn’t really matter.
What matters is you overwrote the original GPT on /dev/sdb. The command you used modified only the partition table, all other structures are expected to exist still. The filesystem itself should be fine (unless your later tries to recover happened to be unfortunate enough to corrupt it). You only lost a convenient way to get to the filesystem. Please read this answer of mine, its initial part summarizes the difference between partition and filesystem.
Your goal now is to restore the original GPT somehow. Note your situation is as if you were in the middle of the procedure described in the mentioned answer: you have destroyed the partition table entry but not created a new one yet. The difference is you don’t necessarily want to create a larger partition and you don’t know the offset (starting sector) where the partition should begin.
GPT consists of primary and secondary (backup) table. The secondary table cannot help you in restoring the old state because sgdisk -R modified both tables in order to leave the whole GPT in a consistent state.
Finding offset
There are tools able to scan a disk, find filesystem signature(s), read filesystem size from the signature and propose a partition table entry that will properly embed the filesystem into a newly defined partition, so it can be easily mounted. One such tool is testdisk. If only the old partition table was wiped out, testdisk should be able to find the filesystem and to create a sane GPT. Scanning may take a while.
В качестве альтернативы вы можете попытаться угадать правильное смещение. Тот факт, что у вас был только один раздел, является преимуществом.
Пожалуйста, прочтите еще один мой ответ. В вашем случае (размер логического сектора 512) наиболее вероятным начальным сектором является 2048, и может работать команда:
mount -o ro,offset=$((512*2048)) /dev/sdb /some/точка монтирования/
Монтирование только для чтения не повлияет на данные, которые сохранились до сих пор, так что попробовать можно безопасно. Если команда выполняется успешно, и вы проверяете, что файлы и каталоги отображаются в /some/mountpoint/, это означает, что смещение правильное.
Примечание 512*2048 — ровно 1 МБ. На одном из скриншотов у вас есть:
Думаю, это он. Скорее всего, его также найдет testdisk, если вы воспользуетесь этим инструментом.
Создание записи в таблице разделов вручную
После того, как вы создадите правильную запись и запишете новую таблицу разделов на устройство, должен появиться /dev/sdb1. Если он не появляется, вызовите partprobe.
Подтвердите, что вы можете смонтировать /dev/sdb1.
Настройка размера
Теперь, когда доступен /dev/sdb1, вы можете легко запросить его размер в файловой системе. Я имею в виду то, что файловая система знает о своем размере. Как правило, это отличается от размера соответствующего раздела. Есть как минимум два инструмента, которые вы можете использовать:
Число, рассчитанное на основе вывода ntfsresize, может немного отличаться от того, что указано в файле. Я думаю, что это как-то связано с размером кластера. В моих тестах кажется, что после того, как mkfs.ntfs попросили использовать весь раздел, файл сообщает на один сектор меньше, чем количество секторов в разделе. Поэтому используйте скорее файл, а не ntfsresize, определите сектора NNNNNN, добавьте один. Вот насколько большим должен быть раздел. В случае сомнений добавьте 2048 секторов. Это излишество, но всего 1 МБ потраченного впустую пространства, не так уж и много; это будет держать вас в безопасности наверняка.
Если файловая система монтируется нормально, в основном все готово. Таблица разделов теперь в порядке.
Возможные проблемы
После того, как вы исправите таблицу разделов, вы, вероятно, захотите продолжить свой первоначальный план. Затем:
Часть 4. Как уничтожить разделов GPT в будущем?
GPT очень важна для правильной технологии компьютера. Ниже приведены несколько шагов, которые обеспечивают широкий выбор разделов GPT и его содержимое в целости и сохранности.
Шаг 1. Храните надлежащим образом резервные копии своих файлов. использовать «Резервное использование и восстановление» в «Панели управления», чтобы делать это регулярно.
Шаг 3. Не модифицируйте, не изменяйте и не форматируйте разделы, если только не хотите сделать это в резком порядке.
Шаг 4. Всегда следите за резервным питанием системы. Вероятность риска сбоев питания или короткого замыкания исключена.
Шаг 5. Всегда храните установленный антивирус, чтобы предотвратить предотвращение вирусных атак, которые удаляют раздел GPT.
Часть 3. 3 метода восстановления разделов GPT в Windows/Mac/Linux
Ниже приведены три различных варианта восстановления таблицы разделов GPT.
Метод 1. Восстановление раздела GPT с помощью «Управления дисками»
Если происходит удаление GPT буквы диска, можно использовать «Управление дисками» для восстановления раздела. Вот действие, которое необходимо для захвата:
Шаг 1. Откройте «Панель управления», набрав ее в диалоговом окне поиска на панели инструментов. В окне панели управления выберите пункт «Система и безопасность».
Шаг 2. Нажмите кнопку «Создание и форматирование разделов жесткого диска» в разделе «Инструмент администрирования» ниже.
Шаг 3. Выберите диск, на котором находится раздел GPT. Щелкните правой кнопкой мыши на диске и выберите «изменить букву диска и пути». В следующей панели нажмите на выбранное «Добавить».
Шаг 4. Назначьте букву диску. Необходимо выбрать букву, которая не используется ни для какого другого диска в системе. Нажмите «ОК», чтобы решить проблему и восстановить раздел с отсутствующей буквой.
Метод 2. Восстановление раздела GPT из резервной копии
По умолчанию опция восстановления и резервного сайта Windows может творить чудеса с восстановлением раздела GPT. Таким образом, если восстановить резервные копии хранилища с помощью инструмента резервного хранилища Windows, можно быстро восстановить раздел GPT, потерянный по одному экземпляру. Для этого возможно возможное действие:
Шаг 1. Перейдите в меню Windows, а из страны «Панель управления». Выберите пункт «Система и безопасность», как и в предыдущем способе. Затем выберите опцию «Резервное копирование и восстановление».
Шаг 2. Если резервное копирование уже настроено, достаточно нажать кнопку «Восстановить мои файлы», чтобы получить обратно свой GPT-раздел. Если резервное копирование не включено, то его можно включить, выбрав опцию «Настроить резервное копирование».
Метод 3. Выполните восстановление раздела GPT с помощью программного обеспечения для восстановления данных
Если не хочется использовать встроенные функции Windows для восстановления разделов GPT, всегда можно прибегнуть к помощи стороннего программного обеспечения. Эти программы пригодятся, если был потерян весь диск GPT, поврежден жесткий диск или случайно удалены важные диски.
Wondershare Recoverit — надежное программное обеспечение для восстановления разделов
5 481 435 человек скачали его.
Восстановление потерянных файлов или разделов практически с любых носителей информации, таких как компьютеры Windows/Mac/Linux, NAS-серверы, SD-карты, USB-накопители и т. д.
Эффективно справляется с 500+ вариантами потери данных, включая случайное удаление, форматирование, системный сбой, внезапное отключение питания и вирусную атаку.
Предоставление предварительного просмотра перед восстановлением. Оплата не требуется, если файлы не подлежат восстановлению.
Восстановление раздела GPT в Windows/Mac с помощью Recoverit
Шаг 1. Выберите потерянный раздел
Загрузите и установите Recoverit Восстановление данных в систему и запустите его. Затем выберите «Потерянный раздел» в меню «Жесткие диски и Расположение», чтобы начать восстановление раздела GPT.
Шаг 2. Сканирование потерянного раздела
Recoverit начнет сканирование потерянного раздела GPT, чтобы извлечь данные.
Шаг 3. Предварительный просмотр и восстановление
В процессе или после сканирования можно предварительно просмотреть обнаруженные фотографии, видео, музыку, офисные документы и другие файлы. Затем выберите нужные файлы и нажмите кнопку «Восстановить», чтобы вернуть их.
Восстановление раздела GPT в Linux с помощью Recoverit
В рамках этой новой функции пользователи операционных систем Linux также могут восстановить раздел GPT. Для этого необходимо иметь рабочий компьютер с операционной системой Windows или Mac. Ниже приведены шаги, которые следует выполнить:
Шаг 1. Выберите NAS и Linux
Запустите программу восстановления разделов Recoverit. Выберите опцию «Linux Recovery» в разделе «NAS и Linux».
Шаг 2. Подключение к компьютеру Linux
Введите необходимую информацию о Linux для создания соединения между ОС Linux и программой восстановления разделов. Затем нажмите кнопку «Подключить».
Шаг 3. Сканирование потерянного раздела
После завершения подключения Recoverit автоматически начнет сканирование на наличие потерянных файлов и разделов на устройстве Linux. Доступно множество опций фильтров, которые помогут быстро найти нужные файлы.
Шаг 4. Предварительный просмотр и восстановление
Предварительно просмотрите нужные файлы. После того, как результат предварительного просмотра устроит вас, нажмите опцию «Восстановить», выберите расположение для завершения процесса.