Сайт о телевидении

Сайт о телевидении

» » Как сохранить mbr жесткого usb диска. Сравнение двух технологий. Работа с носителями информации

Как сохранить mbr жесткого usb диска. Сравнение двух технологий. Работа с носителями информации

1. Загрузить компьютер, с загрузочного DVD диска, загрузочной дискеты или загрузочной флешки, (см. как создать загрузочную флешку / USB flash )

2. Запустить утилиту debug.exe. Debug.exe присутствует в любой DOS , Windows но она чувствительна к версии, т.е. если переписать на загрузочный диск Win98 debug.exe из XP она не запустится. (см. Загрузочная флэшка).

3. Загрузить компьютер запустить debug.exe .

Теперь вводим короткую программу.

A100

int13

jmp100

u100 102

r

Пояснения:

a, u, r - команды утилиты debug

? - выводит полный список команд.
a - позволяет вводить программу с адреса
u - показывает программу
r - показывает регистры процессора
AX,BX,CX,DX,SP,BP,SI,DI это регистры процессора.
DS,ES,SS,CS - сегментные регистры значения в них будут отличаться от тех что на картинке, но они будут одинаковые.

IP(Instruction Pointer) регистр команд, указывает на адрес XXXX:0100 , куда мы ввели команду INT13 .

INT 13 команда процессора, вызывает подпрограмму BIOS для работы с дисками. Параметры передаются через регистры.

Команда JMP100 возвращает указатель команд на адрес 100

Е сли запустить такой код на выполнение командой G компьютер зависнет в бесконечном цикле, но т.к. мы собираемся выполнять нашу программу в пошаговом режиме, команда безусловного перехода избавит нас от необходимости изменять значение в регистре IP после каждого вызова int13

Итак освоим чтение загрузочного сектора. Master Boot Record

Вводим команды

rax
201
rbx
200
rcx
1
rdx
80

r


нетрудно догадаться, что команда r< имя регистра> позволяет менять значение в регистре процессора.

Для вызова int13 смысл этих значений такой:
AX = 02 старший байт код операции 02= чтение (03 =запись)
01

младший байт количество секторов которое надо прочитать

BX =0200 адрес памяти куда считывать сектор
CX =0001 младшие биты задают номер сектора. Сектора нумеруются с 1
DX =00 старший байт номер головки, головки нумеруются с нуля
80 младший байт номер диска 01 для флоповода , 80,81 для жестких дисков и USB flash дисков, которые BIOS видит как жесткий диск.

Теперь вводим

после вызова INT13 важно проконтролировать последние две буквы регистра флагов CY-означает ошибку, при успешном выполнении должно быть NC. (На картинке CY, т.к. из под Windows нельзя прочитать MBR, а из под DOS нельзя создать скриншот)

Итак мы прочитали нулевой сектор в память по адресу 200.


Команда n задает имя файла. Команда w

записывает в файл данные из памяти по адресу. Количество байт задается сразу в двух регистрах BX:CX.

Чтобы загрузить файл в память используем команду L

. В регистре CX ,будет количество прочитанных байт. Чтобы просмотреть память по адресу (в нашем случае, там содержимое нулевого сектора) команда d


Рассмотрим варианты редактирования данных перед записью их обратно на диск.

f200 3bd 00 обнуляет загрузочную программу но оставляет информацию о разделах диска нетронутой.

Команда e

позволяет редактировать память.

Чтобы записать данные из памяти на диск вводим.

rax
301
rbx
200
rcx
1
rdx
80

r

p

Надо перезагрузить

Какая технология лучше для работы жесткого диска - MBR или GPT? Этим вопросом задаются компьютерные специалисты и пользователи ПК, которые устанавливают новый жесткий диск в системе. По сути, на смену старой технологии MBR пришла новая GPT и казалось бы, что ответ на вопрос «GPT или MBR что лучше?» очевиден. Но не стоит опережать события. Не всегда «новоиспеченное» во всем и сразу заменяет «хорошо отшлифованное старое».

Предыстория

Для хранения информации нужен носитель. В компьютерах для этих целей на протяжении нескольких десятков лет, да и по сей день, используется жесткий диск. Операционные системы (ОС) также записаны на этом носителе информации. Для того, чтобы ПК смог запустить ОС, сперва ему потребуется найти логический диск, на котором она находится.

Поиск осуществляется с помощью базовой системы ввода-вывода (basic input/output system, сокращенно BIOS), в этом ей помогает MBR.

Концепция MBR

MBR (Master Boot Record) в переводе на русский «Главная загрузочная запись» - это первый сектор (самые первые 512 байт участка памяти) носителя информации (будь то жесткий диск (HDD) или твердотельный накопитель (SSD)). Предназначен MBR для нескольких функций:

  1. Содержит код и данные (446 байт - начальный загрузчик) которые необходимы BIOS, для начала загрузки ОС.
  2. Содержит информацию о разделах жесткого диска (4 первичных раздела по 16 байт каждый). Эта информация называется таблица разделов (Partition Table).
  3. Стража (0xAA55, размер - 2 байта).

Процесс загрузки ОС

Загрузка операционной системы после включения компьютера - многоступенчатый процесс. Большинство ПК на сегодняшний день подготавливают свою аппаратную часть к работе с помощью прошивки BIOS. Во время старта BIOS инициализирует системные устройства, затем ищет загрузчик в MBR первого устройства хранения (HDD, SDD, DVD-R диск или USB-накопитель) или на первом разделе устройства (поэтому, для того чтобы выполнить загрузку с другого накопителя, нужно ).

Далее BIOS передает управление загрузчику, который считывает информацию из таблицы разделов и готовится загрузить ОС. Завершает процесс наш страж - специальная сигнатура 55h AАh, которая идентифицирует главную загрузочную запись (загрузка ОС началась). Сигнатура находится в самом конце первого сектора, в котором расположен MBR.

Недостатки

Технология MBR впервые была применена в 80-х годах еще в первых версиях DOS. По прошествии времени MBR была отшлифована и обкатана со всех сторон. Она считается простой и надежной. Но при росте вычислительных мощностей, выросла и потребность в больших объемах памяти носителей. С этим возникли сложности, так как технология MBR поддерживает работу накопителей объемом только до 2,2 ТБ. Также, MBR не может поддерживать более 4 основных разделов на одном диске.

Особенности

GPT расположен в начале жесткого диска, так же как и MBR, только не в первом, а во втором секторе. Первый сектор по прежнему остается зарезервированным для MBR, которая также может быть в дисках GPT. Это сделано в целях защиты и для того, чтобы была совместимость со старыми ОС. В целом структура GPT схожа с предшественницей, за исключением некоторых особенностей:

  1. GPT не ограничивает свой объем в одном секторе (512 байт).
  2. Для таблицы разделов в Windows резервируется 16 384 байт (если используется сектор в 512 байт, то по подсчетам доступно 32 сектора).
  3. GPT имеет функцию дублирования - оглавление и таблица разделов записаны в начале и в конце диска.
  4. Количество разделов не ограничено, но технически сейчас существует ограничение в 2 64 раздела из-за разрядности полей.
  5. Теоретически GPT позволяет создавать разделы диска (при размере сектора в 512 байт; если размер сектора больше, то и размер раздела больше) размером до 9,4 ЗБ (это 9,4×10 21 байт; чтобы лучше представлялось, размер раздела носителя информации мог бы иметь такой объем, как вмещают в себя 940 миллионов дисков по 10 ТБ каждый). Этот факт сметает на нет проблему ограничения носителей информации в 2,2 ТБ под управлением MBR.
  6. GPT позволяет назначить разделам уникальный 128-битный идентификатор (GUID), имена, атрибуты. Благодаря использования стандарта кодирования символов юникод, разделы могут быть названы на любом языке и сгруппированы по папкам.

Этапы загрузки ОС

Загрузка ОС происходит совсем не так, как в BIOS. UEFI не обращается для загрузки Windows к коду MBR, даже если он есть. Вместо этого используется специальный раздел на винчестере, который называется «EFI SYSTEM PARTITION». В нем располагаются файлы, которые необходимо запустить для загрузки.

Загрузочные файлы хранятся в директории /EFI/<ИМЯ ВЛАДЕЛЬЦА>/. Это значит, что UEFI имеет собственный мультизагрузчик, который позволяет в разы быстрей определять и загружать нужные приложения (в BIOS MBR для этого требовались сторонние программы). Процесс загрузки UEFI происходит следующим образом:

  1. Включение компьютера → проверка аппаратного обеспечения.
  2. Загружается прошивка UEFI.
  3. Прошивка загружает диспетчер загрузки, который определяет, с каких дисков и разделов будут загружены UEFI приложения.
  4. Прошивка запускает UEFI приложение с файловой системой FAT32 раздела UEFISYS, как это указано в загрузочной записи менеджера загрузки микропрограммы.

Недостатки

Недостатки у GPT имеются, и самый ощутимый из них - нет поддержки технологии в предшевствующих устройствах, использующих прошивку BIOS. ОС семейства Windows умеют различать и работать с GPT разделом, но не все могут с него загрузится. Приведу наглядный пример в таблице.

Операционная система Разрядность Чтение, запись
Windows 10 x32 + +
x64 + +
Windows 8 x32 + +
x64 + +
Windows 7 x32 + -
x64 + +
Windows Vista x32 + -
x64 + +
Windows XP Professional x32 - -
x64 + -

Также, среди недостатков GPT можно выделить:

  1. Невозможно назначить имя всему диску, как отдельным разделам (есть только свой GUID).
  2. Идет привязка раздела к его номеру в таблице (сторонние загрузчики ОС предпочитают использовать номер вместо имен и GUID).
  3. Дубликаты таблиц (Primary GPT Header и Secondary GPT Header) строго ограничены в количестве 2 штук и имеют зафиксированные позиции. В случае повреждения носителя и наличия ошибок, этого может быть недостаточно для восстановления данных.
  4. Эти 2 копии GPT (Primary и Secondary GPT Header) взаимодействуют друг с другом, но не позволяют удалить и перезаписать контрольную сумму в случае, если она в одной из копий не верна. Это значит, что не предусмотрена защита от на уровне GPT.

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

Сравнение двух технологий

Хоть и концепции MBR и GPT достаточно отличаются друг от друга, постараюсь сравнить их в общих чертах.

Также наглядно сравните загрузку ОС посредством старой и новой технологии.

Заключение

Прежде чем решить, что лучше GPT или MBR, поставьте перед собой следующие вопросы:

  1. Я буду использовать диск с нужным мне разделом для хранения данных или как системный для загрузки Windows?
  2. Если как системный, то какую Windows я буду использовать?
  3. На моем компьютере стоит прошивка BIOS или UEFI?
  4. Объем моего жесткого диска менее 2 ТБ?

Ответив на эти вопросы после прочтения статьи вы определитесь, какая технология лучше в данный момент именно для вас.

P.S. Материнские платы, что печатаются сейчас, оснащаются прошивкой UEFI. Если у вас такая, предпочтительно использовать разделы со стилем GPT (но опять таки, смотря какие цели вы преследуете). Со временем BIOS уйдет в прошлое и рано или поздно, но большинство компьютеризированных устройств будут работать с накопителями используя GPT.

Шаг 1. Сохранение MBR

1. В Acronis Disk Director щелкните правой кнопкой мыши диск, MBR-код которого

F2 , чтобы переключиться в режим

Shift , используйте

клавиши со стрелками, чтобы выбрать первые 445 байт сектора. Тем самым будет выбран

MBR-код и подпись диска.
Подсказка . Точное положение курсора отображается в поле Положение в строке состояния

(в правом нижнем углу окна).

4. Выберите пункт Записать в файл в меню Правка .
5. В окне Запись в файл выберите Обзор и укажите путь и имя файла.
6. Нажмите кнопку ОК , чтобы сохранить файл.

Шаг 2. Восстановление MBR

1. Создайте загрузочный носитель на основе WinPE чтобы иметь возможность восстановления

системы в случае ее сбоя. Загрузочный носитель создается с помощью мастера создания

загрузочных носителей Acronis в соответствии с инструкциями в разделе Как создать

загрузочный носитель.

2. Запустите машину с загрузочного носителя и откройте Acronis Disk Director.
3. Правой кнопкой мыши щелкните диск, MBR-код которого необходимо восстановить, и

выберите пункт Правка .

4. В Acronis Disk Editor нажмите клавишу F2 , чтобы переключиться в режим

шестнадцатеричного представления.

5. Установите курсор в самое начало первого байта сектора (абсолютного сектора 0 или 0000 в

шестнадцатеричном представлении) и нажмите Прочитать из файла .

6. В окне Чтение из файла выберите Обзор и укажите файл с MBR-кодом.
7. Нажмите кнопку ОК . Содержимое файла будет вставлено в сектор, начиная с текущего

положения курсора.

8. Нажмите сочетание клавиш Ctrl+S , чтобы сохранить изменения.
9. Перезагрузите машину.

Копирование MBR на другой диск

Данная операция применима к базовым дискам со схемой разделов MBR.

При перемещении системного тома с одного диска на другой необходимо скопировать

MBR-код диска на целевой диск, если он не содержит MBR или содержит другое

приложение-загрузчик.

Как скопировать MBR на другой диск

1. в Acronis Disk Director щелкните правой кнопкой мыши исходный диск, MBR-код которого

необходимо скопировать, и выберите Правка .

2. В Acronis Disk Editor нажмите клавишу F2 , чтобы переключиться в режим

шестнадцатеричного представления.

3. Установите курсор в самое начало первого байта сектора (абсолютного сектора 0 или 0000 в

шестнадцатеричном представлении). Затем, удерживая клавишу Shift , используйте

Copyright © Acronis International GmbH, 2002-2014

Одним из эффективных шагов по устранению неполадок связанную с загрузкой windows, является восстановление загрузочной записи Master Boot Record или MBR. Одна из распространенных причин, по которым MBR может быть повреждена, связана с заражением вредоносными программами. Неправильное завершение работы также может привести к повреждению загрузочной записи (MBR). Иногда проблемы бывают, когда Linux Grub установлен, и Windows не может его обнаружить. В некоторых случаях вы можете получить ошибку Bootmgr is Missing или BCD при включении компьютера. В таких случаях вы можете запустить восстановление MBR для устранения этих проблем.

Восстановление загрузчика Master Boot Record (MBR) в Windows 10

Нам нужно запустить командную строку (cmd) при загрузке системы windows, когда она не работает и не загружается на рабочий стол. Процесс одинаков для Windows 10/8/7. Прежде всего, нужен установочный DVD-диск или установочная флешка.

Шаг 1 . Нажмите F8 во время загрузки системы, чтобы войти в меню восстановления Windows. В более поздних версиях F8 не работает - можно создать или , чтобы запустить меню дополнительных параметров.

Шаг 2 . Нажмите "Поиск и устранение неисправностей ".

Шаг 3 . Выберите "Дополнительные параметры ".


Шаг 4 . Нажмите на "Командная строка ".


Шаг 5 . Теперь воспользуемся инструментом Bootrec.exe . Введите командную строку следующие команды одну за другой:

bootrec /RebuildBcd

bootrec /fixMbr

В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд - ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.

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

# dd if=/dev/urandom of=/dev/null bs=100M count=5

Параметры:

  • if: указывает на источник, т.е. на то, откуда копируем. Указывается файл, который может быть как обычным файлом, так и файлом устройства.
  • of: указывает на файл назначения. То же самое, писать можем как в обычный файл, так и напрямую в устройство.
  • bs: количество байт, которые будут записаны за раз. Можно представлять этот аргумент как размер куска данные, которые будут записаны или прочитаны, а количество кусков регулируется уже следующим параметром.
  • count: как раз то число, которое указывает: сколько кусочков будет скопировано.
Таким образом, описанная команда читает 5*100 мегабайт из устройства /dev/urandom в устройство /dev/null. Придавая этой команде смысловую нагрузку получается, что система сгенерирует 500 мегабайт случайных значений и запишет их в null устройство. Конечно, единственное, что сделает эта команда: нагрузит процессор на несколько секунд. Рассмотрим примеры из практики:

Создание образа диска:

# dd if=/dev/cdrom of=image.iso

Команда будет считывать из устройства данные и записывать в файл до тех пор, пока не достигнет окончания устройства. Если диск битый, можно попробовать его прочитать, игнорируя ошибки чтения:

# dd if=/dev/cdrom of=image.iso conv=noerror

Параметр «conv» позволяет подключать несколько фильтров, применимых к потоку данных. Фильтр «noerror» как раз отключает остановку работы программы, когда наткнется на ошибку чтения. Таким образом, некоторые данные с диска все же можно будет прочитать. Точно таким образом я спас данные со своей флешки Corsair, которую погнули: подобрал подходящее положение, когда контакт есть, и сделал дамп файловой системы.
Подключить, кстати, такие образы можно при помощи команды mount с ключем "-o loop":

# mount -o loop image.iso /mnt/image

Если что-то не получается, процесс разбивается на 2 уровня:

# losetup -e /dev/loop0 image.iso

Если и так не работает, значит файловая система образа полетела.

Работа с носителями информации

Очень простое, хоть и не оптимальное решение клонирования жесткого диска:

# dd if=/dev/sda of=/dev/sdb bs=4096

Все то же побайтовой копирование с размером буфера 4 Кб. Минус способа в том, что при любой заполненности разделов копироваться будут все биты, что не выгодно при копировании разделов с маленькой заполненностью. Чтобы уменьшить время копирования при манипуляции с большими объемами данных, можно просто перенести MBR на новый носитель (я ниже опишу как), перечитать таблицу разделов ядра (при помощи того же fdisk), создать файловые системы и просто скопировать файлы (не забыв сохранить права доступа к файлам).

Как вариант, можно даже по расписанию делать бекап раздела по сети. Разрулив ключи ssh будет работать такая схема:

# dd if=/dev/DEVICE | ssh user@host «dd of=/home/user/DEVICE.img».

Когда-то читал исследование, согласно которому очень большая доля жестких дисков на барахолке подвергается восстановлению данных без привлечения чего-то специализированного, и содержит конфиденциальную информацию. Чтобы на носителе ничего нельзя было восстановить - можно забить его нулями:

# dd if=/dev/zero of=/dev/DEVICE

Думаю, понятно на что нужно заменить DEVICE. После проведения лекций по Linux, я очень тщательно стал следить за тем, что пишу.
Проверить можно тем же dd, но преобразовав данные в hex:

# dd if=/dev/sda | hexdump -C

Должны посыпаться нули.

Операции с MBR

MBR расположена в первых 512 байтах жесткого диска, и состоит из таблицы разделов, загрузчика и пары доп. байт. Иногда, ее приходится бекапить, восстанавливать и т.д. Бекап выполняется так:

# dd if=/dev/sda of=mbr.img bs=512 count=1

Восстановить можно проще:

# dd if=mbr.img of=/dev/sda

Причины этих махинаций с MBR могут быть разные, однако хочу рассказать одну особенность, взятую из опыта: после восстановления давней копии MBR, где один из разделов был ext3, а позже стал FAT и использовался Windows, раздел перестал видиться виндой. Причина - ID раздела, который хранится в MBR. Если UNIX монтирует файловые системы согласно суперблоку, то винды ориентируются на ID разделов из MBR. Поэтому всегда нужно проверять ID разделов при помощи fdisk, особенно если на компьютере есть винды.

Генерация файлов

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

# dd if=/dev/zero of=image.crypted bs=1M count=1000

Создался файл размером почти в гигабайт. Теперь нужно сделать этот файл блочным устройством и, при этом, пропустить его через механизм шифрования ядра linux. Я выберу алгоритм blowfish. Подгрузка модулей:

# modprobe cryptoloop
# modprobe blowfish

Ассоциация образа с блочным устройством со включенным шифрованием:

# losetup -e blowfish /dev/loop0 image.crypted

Команда запросит ввести пароль, который и будет ключем к образу. Если ключ введен не правильно, система не смонтируется. Можно будет заново создать данные в образе, используя новый ключ, но к старым данным доступа не будет.
Создаем файловую систему и монтируем:

# mkfs.ext2 /dev/loop0
# mount /dev/loop0 /mnt/image

Образ готов к записи данных. После завершения работы с ним, нужно не забыть его отмонтировать и отключить от блочного loop устройства:

# umount /dev/loop0
# losetup -d /dev/loop0

Теперь шифрованный образ готов.

Основные идеи я расписал, однако множество задач, которые можно решить при помощи маленькой программки, имя которой состоит из двух букв, намного шире. Программа «dd» - яркий пример того, что IT"шники называют «UNIX way»: одна программа - часть механизма, выполняет исключительно свою задачу, и выполняет ее хорошо. В руках человека, который знает свое дело, которому свойственен не стандартный подход к решению задачи, такие маленькие программки помогут быстро и эффективно решать комплексные задачи, которые, на первый взгляд, должны решать крупные специализированные пакеты.