4

У меня есть система HP, которая поставляется с установленной Vista, а также скрытый раздел восстановления. Впоследствии я обновился до Win7(32 бит) Ultimate, а оттуда до Win7 Pro. Теперь жесткий диск выходит из строя. Мне удалось использовать partimage для захвата раздела восстановления (без ошибок), прежде чем я положил его на лед в рамках подготовки к восстановлению раздела Win7 на основе морозильной камеры.

На другом диске я создал 3 основных раздела и один расширенный раздел:

  1. Раздел восстановления (NTFS)
  2. Win7 раздел (NTFS)
  3. Ubuntu root (ext4)
  4. Ubuntu swap (ext4) (логический раздел)

Затем я установил Ubuntu 10.4 и разрешил grub2 установить MBR. Затем я использовал partimage, чтобы заполнить раздел восстановления образом, который я снял с неисправного диска. Теперь, прежде чем я попытаюсь восстановить раздел Win7, я хочу убедиться, что могу получить доступ к существующему разделу восстановления. И я не могу. Я вижу файлы, но не могу их загрузить. Grub видит это как раздел Windows и выводит его в меню. Но когда я пытаюсь загрузиться, я просто смотрю на пустой экран с мигающим курсором. Я попытался обойти grub, используя gparted, чтобы сделать раздел восстановления активным и загрузиться непосредственно с него вместо grub, но я все еще загружаюсь в grub.

Итак, на этом фоне позвольте мне задать свои вопросы.

  1. Насколько я понимаю, стандартный код MBR IBM/WIndows ищет в таблице разделов первый первичный раздел с установленным флагом active/ boottable, а затем передает управление коду, найденному в начале этого раздела, или "загрузке раздела". запись "(PBR). Затем PBR находит NTLDR/ BOOTMGR/ grub/ etc и загружает его. Правильно ли мое понимание?
  2. Где в процессе загрузки обрабатывается ключ прерывания (f11 в случае HP) для загрузки в раздел восстановления? MBR? PBR? Менеджер загрузки / загрузчик?
  3. Когда grub пишет MBR, он также использует оставшуюся дорожку 0, и код MBR выполняет этот код перед тем, как перейти к загрузке остальной части кода grub в любой раздел, в который он загружен (в моем случае, раздел 3). В этом смысле он игнорирует активный / загрузочный флаг в таблице разделов. Правильно ли я понял это?

Я явно упускаю некоторые части здесь, потому что я не могу загрузить раздел восстановления для загрузки. Я бы подумал, что личинка "chainloader" (почему +1?) Команда просто исполняет код PBR. Если это правда, то что-то в моем разделе восстановления скрыто.

3 ответа3

3

В системах с таким разделом восстановления обычно активный раздел является разделом восстановления. Раздел восстановления отображает сообщение "Нажмите F11" и, если не нажимается, переходит к основному разделу ОС.

MBR по существу тупой; все, что он делает - это выбирает один из разделов и перенаправляет их в VBR этого раздела.

Если вам нужна двойная загрузка linux/windows, то раздел восстановления должен будет пересылать в раздел GRUB, который затем разрешит опции и перенаправит в Windows, если Windows будет выбрана.

Я бы не стал тратить время на раздел восстановления - вы можете получить все драйверы там с веб-сайта HP, и если у вас уже есть 7 на коробке, я думаю, что мы оба можем согласиться с желанием вернуться к Vista, маловероятно.

Итак, на ваши конкретные вопросы.

  1. Да, ваше понимание верно
  2. Ответил выше
  3. Не уверен, что конкретно GRUB делает при установке в MBR. Насколько я понимаю, это не совсем применило бизнес-логику, но я могу ошибаться.

Надеюсь, это поможет :)

0

Вопрос 3: Да, Grub помещает часть себя в трек 0. Лично я никогда не помещаю grub в mbr, я всегда использую "обычный" mbr и устанавливаю grub в основной раздел.

Будет ли проблема связана с использованием части диска, которая не помечена как используемая. Я считаю, что дисковый разделитель в Windows Vista и 7 ведет себя не так, как в предыдущей версии, но я не знаю, использует ли он запасные части дорожки 0.

Я недавно слышал о людях, имеющих проблемы, потому что пробная версия программы (Adobe что-то?) пишет в эту область диска, перезаписывая часть grub (я полагаю, чтобы люди не могли переустанавливать пробную версию снова и снова). (Послушайте недавний эпизод подкаста Ubuntu UK, чтобы узнать подробности). Я считаю, что если вы пишете в области, которые вам не принадлежат, вы не можете жаловаться на то, что другие люди делают то же самое.

Бит mbr из gbr записывает адрес физического диска следующего этапа в свой собственный код и вообще не замечает разделы, активные или нет.

0

MBR (1 сектор, 512 байт) содержит загрузочный код и таблицу разделов. Код MBR "по умолчанию" находит активный первичный раздел и загружает его по цепочке. (На языке GRUB +1 означает первый сектор, загрузочный сектор этого раздела.)

Когда вы устанавливаете GRUB в MBR, он заменяет код MBR по умолчанию (конечно, сохраняя таблицу разделов) и вместо этого загружает оставшуюся часть образа ядра GRUB, который установлен в "промежутке MBR" - предположительно неиспользуемой части Первая "дорожка", которая идет после сектора MBR. Если вы устанавливаете GRUB в раздел, он устанавливает его как загрузочный сектор; цепочка кодов MBR по умолчанию загружает этот загрузочный сектор GRUB.

Вот почему вы всегда используете GRUB - для этого был изменен код в MBR. Вы можете восстановить код MBR по умолчанию с некоторыми изменениями fixmbr .

Но в лучшем случае это только подтвердит, что ваш образ раздела восстановления хорош, и что вы можете получить к нему доступ через обычную MBR. На самом деле, если вы докажете, что ваш образ раздела восстановления плохой, возможно, именно поэтому он не работал через GRUB, и если бы он был хорошим, он бы работал. Так что может быть лучше, если вы сможете сделать хорошую копию.

Возможно, раздел восстановления не загрузится через GRUB по какой-то причудливой причине. Возможно, в оригинальной заводской MBR был какой-то особый соус, который был предпосылкой для раздела восстановления. У меня есть отказ от систем, в которых они были, поэтому я не могу предложить много понимания.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .