Интернет Windows Android

Восстановление gpt. Восстановление данных с GPT и MBR разделов с помощью Hetman Partition Recovery

Если в ходе установки Windows у вас появилась надпись "Установка Windows на данный диск невозможна. Выбранный диск имеет стиль разделов GPT", то значит ваш винчестер действительно разбит производителем на разделы GPT, (а не MBR, как обычно, для Windows 7 или XP), скорее всего диск предназначался для установки Windows 10 или 8.1 х64 бит.

Если у вас компьютер или ноутбук с новым BIOS (имеющим графический интерфейс), то вам просто достаточно перенастроить BIOS под установку Windows на GPT изменив в BIOS параметры: включить загрузку UEFI вместо CSM (Compatibility Support Mode) обычно находится в BIOS Features или BIOS Setup; режим работы SATA установить в AHCI вместо IDE (обычно настраивается в разделе Peripherals). После этого вы сможете установить 64х битный Windows с загрузочного диска, как обычно, или с загрузочной флешки, если она поддерживает загрузку UEFI (создание флешки с поддержкой UEFI смотри здесь) . Если же вам надо установить 32х битную Windows или у вас BIOS старого типа, то читайте далее статью.

Если ваш случай не попадает под предыдущий абзац, то ситуация может оказаться не из приятных, потому как эта надпись появляется в тот момент, когда вы нажимаете "Создать раздел" в ходе установки Windows, и к этому моменту вы уже уничтожили старую загрузочную запись, а это значит, что доступ ко всем вашим данным на всех дисках винчестера отсутствует, т.к. старая система уже уничтожена, а новую Windows 7 или XP вы поставить не сможете не преобразовав предварительно винчестер в MBR. Дело в том, что при преобразовании HDD в MBR, все данные на всех дисках (а не только на системном диске С:) будут уничтожены. Если у вас остались на диске важные данные, которые вы никуда не перенесли (понадеявшись, что они сохранятся на диске D:), то вам придется отложить установку Windows 7 или XP и заняться сохранением оставшихся на винчестере данных, что можно сделать двумя способами: либо загрузитесь с загрузочного диска (например Live CD c поддержкой GPT((образ можно найти в интернете)) и перебросьте данные на флешки или DVD диски; либо установите на время систему, поддерживающую GPT - Windows 10 или 8.1, (образ также можно найти в интернете) и также сохраните данные на другие носители, первый способ явно быстрее, но в любом случае это займет весьма много времени, если ничего особо ценного на диске не было, лучше просто пожертвуйте данными. Итак, вопрос с данными решен, переходим к установке Windows 7 или XP, на ваш винчестер, точнее к его преобразованию из GPT в MBR.

Самый простой способ конвертации диска из GPT в MBR - при помощи средств, входящих в комплект установочного пакета Windows (ДАННЫЕ БУДУТ ПОТЕРЯНЫ СО ВСЕГО ВИНЧЕСТЕРА, А НЕ ТОЛЬКО С ДИСКА С:). Итак, когда вы, в процессе установки системы, увидели надпись "Установка Windows на данный диск невозможна. Выбранный диск имеет стиль разделов GPT", закройте это окно и нажмите комбинацию клавиш "Shift + F10" - откроется командная строка в которой нужно ввести следующие команды:

  • diskpart (вход в программу управления дисками)
  • list disk (в результате выполнения команды вы увидите список ваших дисков запомните номер диска, который нужно конвертировать)
  • select disk N (где N — номер диска из предыдущей команды)
  • clean (после выполнения этой команды данные будут уничтожены)
  • convert mbr (диск будет преобразован в MBR)
  • create partition primary (создание нового раздела)
  • active (выбор активного раздела)
  • format fs=ntfs quick (форматирование)
  • assign (монтирование)
  • exit (выход)

Теперь нажмите «Обновить» для обновления конфигурации дисков. Дальнейшая установка происходит в обычном режиме.

Пока Windows 10 медленно, но неизбежно завоёвывает домашние и офисные компьютеры, всё больше и больше пользователей начинают искать программу для восстановления данных, которая бы работала с новой операционной системой. Hetman Partition Recovery 2.3 (а также последующие версии) полностью совместима с Windows 10, её новыми системными структурами и механизмами безопасности. Давайте рассмотрим некоторые ключевые технические особенности инструмента.

Поддержка GPT и MBR

На рассвете эры персональных компьютеров (по крайней мере тех, которые работали под операционной системой Microsoft), жесткие диски разбивались исключительно с помощью Master Boot Record, или MBR. В те дни, MBR был частью процесса загрузки системы, а за всё отвечал BIOS. Тогда, последовательность загрузки выглядела следующим образом. BIOS компьютера (набор программ, запускаемых с встроенного в материнскую плату чипа) инициализировал оборудование, запускал жесткий диск и пытался загрузить программное обеспечение с диска. Для того, чтобы определить где именно искать загрузочный код, BIOS анализировал информацию о разделе, которая хранилась в Master Boot Record.

GPT (GUID Partition Table) – это универсальный стандарт для разделения диска. Технически – это часть нового UEFI стандарта, который был создан для того чтобы заменить древний BIOS. Изначально, GPT только частично поддерживался 32-разрядными версиями Windows 7. Но, все 64-разрядные версии Windows, начиная с Windows Vista, полностью поддерживают загрузку с GPT дисков. Windows 8, 8.1 и Windows 10 могут загружаться с GPT дисков в 32-разрядных и 64-разрядных версиях.

При восстановлении жесткого диска, важно выбрать такую утилиту, которая поддерживает текущую схему разбиения накопителя. Hetman Partition Recovery полностью поддерживает MBR и GPT даже если вы работаете с программой в системе, которая имеет ограничения или не поддерживает данную схему разбиения. Например, наиболее распространенная 32-разрядная версия Windows XP не имеет доступа к GPT-разделам жестких дисков, в то время как Hetman Partition Recovery имеeт возможность анализировать и восстанавливать такие жесткие диски без проблем.

Уникальной особенностью Hetman Partition Recovery является её способность работать на всех материнских платах: и на основе BIOS и на основе UEFI, что позволяет восстанавливать GPT разделы даже если материнская плата не поддерживает UEFI.

Стоит сказать, что, поддерживая обе схемы разделения дисков, Windows 10 отдаёт предпочтение более новой GPT, как части процесса загрузки.

Совместимость с Windows 10

Если говорить о совместимости с Windows 10, то в последней версии операционной системы от Microsoft реализовано ряд изменений во всей системе. После всех споров вокруг предыдущей попытки Microsoft с Windows 8, новая Windows 10 разработана чтобы стать лучшим Microsoft Windows, который был представлен до сих пор.

Обновляясь до Windows 10 с предыдущей версии Windows, мастер установки пытается сохранить все пользовательские данные, включая программы, документы и файлы. Тем не менее, в некоторых случаях это может оказаться невозможным (например, при обновлении с 32-разрядной версии Windows на 64-разрядную, или наоборот). А в некоторых других случаях переход может оказаться неполным. Windows 10 известна тем, что может удалить программное обеспечение, не спрашивая , а в некоторых случаях даже заблокировать компьютер вызвав зависание (или так назваемую «bootloop»). Если что-то подобное произойдёт с вами, и вы утратите доступ к вашим файлам, или если ваши документы будут утеряны во время обновления операционной системы, вам понадобится программа для восстановления данных.

Hetman Partition Recovery предназначена для того, чтобы помочь вам восстановить файлы и папки даже если вы не можете загрузить Windows (в этом случае необходимо подключить жесткий диск к другой, работающей системе). Даже если файлы полностью утеряны и на диске создана новая файловая система или структура разделов, Hetman Partition Recovery поможет используя сигнатурный поиск.

Сигнатурный поиск

Сигнатурный поиск — это общее обозначение для ряда контентных алгоритмов восстановления данных. С сигнатурным поиском, инструмент для восстановления данных будет искать актуальные данные, а не только анализировать файловую систему. Работа алгоритмов сигнатурного поиска похожа на работу антивирусных продуктов. Они сканируют всю поверхность жесткого диска или читают все содержимое флэш-накопителя или карты памяти, с целью найти идентифицируемые сигнатуры. Как только встретится определяемая сигнатура (а их в базе данных Hetman Partition Recovery тысячи), алгоритм будет искать заголовок файла, анализировать его, и пытаться определить длину файла на основе информации, полученной из заголовка.

В некоторых ситуациях простого анализа заголовка файлов недостаточно. Например, текстовые или HTML-файлы не содержат информацию о длине файла. В таких случаях, алгоритм продолжит чтение секторов диска одного за другим в поиске сектора, который не содержит информации, которая будет считаться частью этого файла. Если речь идёт о текстовом файле, алгоритм сигнатурного поиска (в данном случае это больше контентный анализ чем сигнатурный поиск) будет определять кодировку файла и сканировать последующие сектора, чтобы определить содержат ли они текст в той же кодировке. Если встречаются соответствующие двоичные данные, алгоритм считает, что достигнут конец текстового файла.

Для некоторых форматов, таких как базы данных Skype (или базы данных SQLite в целом) процесс еще сложнее, так как база данных не имеет определенного фиксированного кодирования и в заголовке не определяется её размер. В случае с такими файлами, Hetman Partition Recovery будет продолжать сканировать последующие сектора, пытаясь определить, принадлежат ли они к изначально найденному файлу.

Одним словом, сигнатурный поиск помогает восстановить данные, которые расположены на сбойном, поврежденном или не загружаемом диске.

Вывод

Hetman Partition Recovery является одним из наиболее полных инструментов для восстановления данных на рынке. Программа поддерживает множество магнитных и твердотельных устройств, включая все типы жестких дисков, SSD диски, USB диски, карты памяти, независимо от марки и модели, а также множество устройств хранения данных которые вы, вероятно, и не видели в реальной жизни. Продукт активно развивается и постоянно обновляется, включая поддержку последних версий Windows. Вы можете скачать бесплатную пробную версию программы !

Видео о программе

17 апреля 2011 в 18:39

Восстановление убитых MBR и таблицы разделов

  • *nix

0. Intro.

Ситуация следующая. Есть винт на 160Гб. На нем 2 раздела - 40Гб и 120Гб. С целью установки убунты как второй системы была произведена разбивка 120Гб -> 100+10+2+8.
Итоги
1. При загрузке системы выводится сообщение MBR helper not found;
2. fdisk показывает один большой 160Гб диск.

Дураку понятно, что это начало веселой ночи.
Далее, под катом, решения вопроса.

1. Восстановление таблицы разделов

1.1. Parted magic
Данный LiveCD\USB дистрибутив , размером в 100Мб несет в себе огромную кучу софта, для работы с дисками. От разбивки, до восстановления.
Из них всех, нам нужны будут gpart , testdisk , fdisk и ms-sys .
1.2. Gpart
gpart - это утилита, сканирующая по-секторно диск на наличие разделов, которые присутствуют на носителе, но отсутствуют в таблице. В своей работе, она игнорирует уже существующую таблицу (если присутствует). Программа разаботана немецким программистом Michail Brzitwa и больше им не поддерживается. Вялотекущая разработка ведется командами Fedora и Debian. Текущая версия - 0.1h.

Утилита позволяет наиболее быстро и легко восстановить таблицу разделов, но она несет в себе несколько недостатков. Во-первых, разработка была давно заброшена, во-вторых, она иногда не совсем корректно определяет разделы.

Gpart может работать в 2-х режимах. Это быстрый анализ и подробное сканирование. В некоторых случаях, первого режима достаточно. Мы же будем смотреть на второй.

Gpart -if /dev/sda

-i - интерактивный режим. На каждую найденную партицию будет задан вопрос, сохранять ее, либо пропустить.
-f - полный скан диска.

После, довольно продолжительного времени, будет создан отчет с возможными разделами. Его-то и нужно обязательно максимально внимательно просмотреть перед записью.
Пример отчета (не мой):

Begin scan...
Possible partition(DOS FAT), size(1907mb), offset(0mb)
Possible partition(SGI XFS filesystem), size(5730mb), offset(1907mb)
End scan.
Checking partitions...
Partition(DOS or Windows 95 with 32 bit FAT, LBA): primary
Partition(Linux ext2 filesystem): primary
Ok.
Guessed primary partition table:
Primary partition(1)
type: 012(0x0C)(DOS or Windows 95 with 32 bit FAT, LBA)
size: 1907mb #s(3906544) s(16-3906559)
chs: (0/1/1)-(1023/19/16)d (0/1/1)-(12207/19/16)r
Primary partition(2)
type: 131(0x83)(Linux ext2 filesystem)
size: 5730mb #s(11736000) s(3906560-15642559)
chs: (1023/19/16)-(1023/19/16)d (12208/0/1)-(48882/19/16)r
Primary partition(3)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)

Primary partition(4)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Если все ОК, то соглашаемся на запись в таблицу разделов, скрещиваем пальцы и перезагружаемся.
В моем случае, программа определила разделы, которые были до разбивки (40 и 120), что не подходило и заставило искать альтернативные способы восстановления.

1.3. testdisk
Note: подробнее эта утилита описана в , здесь не буду повторяться.

Эта утилита аналогична предыдущей, но имеет ряд плюсов:
1. более свежая и активно поддерживается;
2. субъективно, работает намного быстрее;
3. функциональнее;
4. есть простой консольный интерфейс на базе ncurses.

Поехали!
1. в первом окне выбираем Create a new log file;
2. выбираем нужный диск (/dev/sda) -> Proceed;
3. отмечаем тип разделов как Intel;
4. выбираем Analyse current partition structure and search for lost partitions;
5. если найденные разделы верны, жмем Backup и переходим к пункту 6, есть возможность быстро пересканировать диск, если где-то ошибка (Quick search);
6. здесь уже виден зеленый список с разделами. Если ок, то записываем, иначе запускаем Deep search.;

В моем случае, результат был аналогичен результату gpart, что есть некорректен.
Запустив Deep search, выждав около 40 минут я получил ответ, от которого на душе так нехило отлегло.
Было найдено несколько партиций, которые накладывались одна на другую (это были изначальная (до манипуляций) 120Гб и новая, на 100Гб). Отметив ненужную, как удаленную, я записал таблицу на диск и перезагрузился. К счастью, все обошлось и компьютер вернулся к состоянию, который был изначально, а я мог с чистой совестью лечь спать.

3. Восстановление MBR

Для этой задачи, у нас в арсенале есть тулза ms-sys.
Сперва узнаем, что с нашей MBR.

Ms-sys /dev/sda
/dev/sda has an x86 boot sector
it is unknown boot sector

Теперь видно, что на данном диске нет загрузочного сектора.
Утилита может работать с MBR различных операционных систем. Список можно получить, запустив программу без агрументов. В моем случае, необходим был от Windows 7.
Записываем MBR на диск:

Ms-sys -7 /dev/sda
Windows 7 master boot record successfully written to /dev/sda

Проверяем:

Ms-sys /dev/sda
it is Microsof 7 master boot record, like the one this
program creates with the switch -7 on a hard disk device.

Вот и все, нужная MBR установлена и можно перезагружаться.

3. Outro

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

Поддержку gpart recover в head/. Через две недели планирую сделать MFC в 8-stable, если всё будет хорошо. Но хотелось бы успеть до заморозки кода перед началом подготовки к релизу, иначе в 8-ку это всё попадёт уже нескоро.

Немного подробнее. Прежде всего стоит заметить, что теперь при обнаружении повреждений метаданных таблица GPT будет помечена как corrupt и с ней будут запрещены любые действия. Т.е. если раньше вы получали в консоль сообщения о повреждённой GPT и могли по-просту не обращать на них внимания, то теперь игнорировать не получится:)

Запрещать любые действия было бы не логично, если не предложить что-то взамен. Взамен предлагается своего рода гарантия, что вы ничего случайно не сломаете, а так же возможность починить таблицу разделов, либо, если она вам не нужна - уничтожить её совсем. Для возможности уничтожения таблицы пришлось переделать "gpart destroy -F". Теперь форсированное уничтожение выполняется внутри ядра, а не в userspace как раньше.

Что бы знать какие типы повреждений возможно восстановить в GPT при помощи gpart, нужно иметь представление о том, как устроена GPT. Если коротко, то состоит она из заголовка и самой таблицы разделов. Всё это дублируется. Заголовок основной таблицы находится во втором секторе диска, за ним следует таблица разделов, её размер может быть различным. Заголовок резервной таблицы находится в последнем секторе, таблица располагается в предшествующих ему секторах. Содержание таблиц идентично и должно иметь одинаковую контрольную сумму. А вот заголовки отличаются, в них сохраняются номера секторов, в которых находится сам заголовок и его копия, номер начального сектора таблицы и границы пространства для использования партициями. Часть этой информации отображается в выводе команды gpart list :

> gpart list ada1 Geom name: ada1 state: OK fwheads: 16 fwsectors: 63 last: 320173022 first: 34 entries: 128 scheme: GPT Здесь first и last - номера секторов, ограничивающих доступное пространство для разделов GPT, entries - максимальное количество записей в таблице, другими словами максимальное количество партиций.

Так же, ещё одним обязательным условием для работы с GPT является наличие PMBR, который занимает первый сектор. Если повредить содержимое PMBR, то класс PART не будет даже искать GPT на диске. Такова особенность. Поэтому если ваша GPT не обнаруживается совсем, ядро не выдаёт никаких сообщений, связанных с GPT, первым делом стоит восстановить PMBR. Его копию можно найти в файле /boot/pmbr. Нужно всего лишь записать его в первый сектор диска. Это автоматически инициирует поиск метаданных различными GEOM классами, в том числе и GEOM_PART_GPT.

Теперь о возможных повреждениях. Первое - это повреждение основного заголовка или таблицы GPT. При обнаружении такого повреждения ядро выдаст сообщение:
GEOM: provider: the primary GPT table is corrupt or invalid. GEOM: provider: using the secondary instead -- recovery strongly advised. Здесь provider - это имя диска, например ad0. Кроме этого сообщения, которое обычно можно увидеть только во время загрузки системы, о том что ваша GPT повреждена могут расказать команды gpart show , list и status .
> gpart show => 34 1250263661 ada0 GPT (596G) 34 256 1 freebsd-boot (128K) 290 8388608 2 freebsd-swap (4.0G) 8388898 1241874797 3 freebsd-zfs (592G) > gpart list ada0 | grep state state: CORRUPT Следующий тип - повреждение резервной копии заголовка или таблицы GPT. Как частный случай сюда же относится вариант несоответствия резервной и основной копий (например, когда в основной копии заголовок и таблица с одними данными, а в резервной - с другими, но сами по себе они являются вполне корректными). В это случае GPART просто воспользуется данными из основной копии. Сообщение от ядра в этом случае будет таким:
GEOM: provider: the secondary GPT table is corrupt or invalid. GEOM: provider: using the primary only -- recovery suggested. Третий случай, когда таблица GPT будет помечена как повреждённая - это неверное расположение заголовка резервной копии GPT. Такое может случится, например если у вас GPT создана на каком-то виртуальном носителе, который умеет расширяться путём добавления новых дисков. Либо, просто, например, вы создали GPT на gmirror устройстве, но забыли загрузить класс geom_mirror. В этом случае размер провайдера увеличится, так как gmirror резервирует пространство под свои метаданные.

Теперь, собственно про восстановление. Всё что нужно сделать - правильно выбрать носитель, на котором восстанавливать GPT и выполнить команду:
# gpart recover ada0 В моём примере это ada0 . Почему я выделил слово "правильно "? Вернёмся к примеру, в котором GPT создана поверх gmirror. Так вот, если забыть загрузить gmirror, то GPT будет найдена на том диске, на котором создан gmirror. И соответсвенно, если выполнить gpart recover для этого диска, то все параметры заголовка GPT будут перерасчитаны, а значит изменится и значение last - границы последнего доступного сектора, а так же, в последний сектор диска будет записан заголовок резервной копии GPT, который уничтожит метаданные gmirror. Хорошо, если это именно то, чего вы хотели:)

Подитожив всё написанное выше, хочется ещё раз напомнить, что восстановление данных это ответственный процесс, нельзя делать его не обдумав. Это относится не только к теме данной заметки.