Восстановление mbr после linux

Как восстановить загрузчик Windows в главной загрузочной записи (MBR) из Ubuntu

Оригинал: How to Fix Windows MBR from Ubuntu
Автор: Matthew Muller
Дата публикации: 21 августа 2018 года
Перевод: А. Кривошей
Дата перевода: март 2019 г.

Если вы пытались настроить двойную загрузку Windows с Linux, то вы, вероятно, столкнулись с некоторыми изменениями, которые могут вами не приветствоваться. При установке Linux в такой среде загрузчик GRUB перезаписывает загрузчик Windows в основной загрузочной записи (MBR).

Это также верно в обратном направлении: если вы сначала установили Linux, а затем решили установить Windows, загрузчик Windows перезапишет GRUB, и вы обнаружите, что невозможно загрузить вашу систему Linux. Или, возможно, вы решили, что Linux не для вас, и хотите полностью удалить его, оставив только Windows.

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

Примечание. В качестве дополнительной информации, который затронет многих пользователей, похоже, что Windows 10 Anniversary Update перезаписывает загрузчик как само собой разумеющееся.

Требования

Первым шагом будет скачивание и создание вашего Linux live CD или USB. Ubuntu — безусловно, самый простой и доступный дистрибутив, хотя для наших целей могут использоваться большинство дистрибутивов Linux. Используя другой компьютер, перейдите на веб-сайт Ubuntu и загрузите версию, подходящую для вашей архитектуры. Если вы сомневаетесь, возьмите 32-битную версию, так как она будет загружаться на любой машине.

Следуйте этому руководству , чтобы создать Linux live USB в Windows.

Загрузка в Ubuntu live USB

Создав свой live-носитель, необходимо загрузить компьютер с вашего носителя с Ubuntu и выбрать в загрузочном меню пункт «Try Ubuntu without installing». Если это не удается, убедитесь, что в BIOS отключена secure boot, иначе ваша система никогда не загрузится с диска Linux.

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

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

Безусловно, самый простой способ восстановить MBR — использовать небольшую утилиту под названием «boot-repair», а не работать непосредственно в терминале.

Способ первый: утилита Boot Repair

Во-первых, вам нужно добавить репозиторий. Введите:

После установки найдите приложение в меню «Приложения» и кликните, чтобы запустить.

После запуска утилиты выберите тип восстановления. Для большинства случаев это будет рекомендуемое восстановление.

Когда утилита завершит работу, вы сможете загрузить свою систему и выбрать либо Windows, либо Linux из меню GRUB. Запуск утилиты также позволит вам изменить или изучить некоторые другие опции, если вам требуется более сложное восстановление загрузки. Кликнув «Restore MBR», вы сможете использовать вкладку MBR.

Если вы застряли, у Ubuntu есть руководство на их сайте.

Метод второй: Syslinux

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

Откройте терминал, как и раньше, и введите:

По завершении установки введите следующую команду, не забывая изменить имя диска «sda» на свое:

Кроме того, вы можете восстановить MBR, введя:

Читайте также:  Графический интерфейс windows панель задач

Метод третий: LILO

Загрузитесь с live CD или USB, и в терминале введите:

где «/dev/sda» — это имя вашего диска. Это должно исправить вашу MBR.

Заключение

Если вы используете двойную загрузку Windows и Linux, очень легко перезаписать MBR. Описанные выше действия должны помочь вам восстановить MBR.

Источник

Восстановление загрузочной записи

Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Содержание

Немного теории [ править ]

DOS Partition Table [ править ]

Загрузчик ОС может находиться как в Master Boot Record (MBR), так и в boot record раздела. Если загрузчик находится в BR раздела, этот раздел должен быть помечен как активный, а в MBR должен находиться стандартный загрузчик, который находит активный раздел и запускает следующий загрузчик оттуда.

GPT [ править ]

надо описать отличия от DOS PT и, возможно, упомянуть отличия BIOS от UEFI, где команда fixmbr неприменима

Рекомендуемые средства [ править ]

Действия, описанные в разделе «Восстановление загрузки при повреждении MBR», можно сделать из любой ОС любыми имеющимися там средствами. Для действий, описанных в разделе «Подготовка к восстановлению основного загрузчика» и далее требуется любой LiveCD с Linux, соответствующий по архитектуре установленной на восстанавливаемой системе (но x86_64 может быть применён для i586). Во многих образах ALT Linux присутствует возможность загрузиться в режиме восстановления (rescue). Как правило, в этих образах присутствуют две полезные утилиты — fixmbr и mount-system . Кроме того, существует специализированный LiveCD ALT Linux Rescue.

Восстановление загрузки при повреждении MBR [ править ]

Если основной загрузчик располагался в BR и не был повреждён, а проблема только с MBR и/или сбиты настройки активного раздела, исправить это можно с помощью fixmbr или lilo. Если же повреждён основной загрузчик, можно переходить сразу к пункту «Восстановление основного загрузчика».

с помощью fixmbr [ править ]

Можно попробовать воспользоваться утилитой fixmbr из rescue-режима:

без параметров. В большинстве случаев этого достаточно — программа найдёт первый раздел, содержащий загрузчик, сделает его активным и восстановит MBR.

с помощью lilo [ править ]

Можно также воспользоваться lilo. Это не только загрузчик, но и утилита для манипулирования MBR и активными разделами. Допустим, мы знаем, что у нас загрузчик (не обязательно LILO) находится на разделе 2.

Восстанавливаем стандартный загрузчик в MBR (можно выбрать mbr или ext, последний допускает загрузку с логических разделов):

Убираем все метки активных разделов (если единственная метка переехала или если меток стало больше одной):

Делаем активным раздел 2:

Восстановление основного загрузчика [ править ]

Основной загрузчик чаще всего бывает повреждён на компьютерах с несколькими операционными системами, если он расположен в MBR. Это связано с тем, что некоторые ОС переписывают содержимое MBR при установке, что делает невозможным загрузку других ОС. Следует понимать, что возврат старого загрузчика, в свою очередь, может сделать недоступной установку той самой «другой ОС». Иной способ повредить загрузчик — передвинуть разделы. Например, lilo грузит ядро и initrd, ориентируясь на абсолютное расположение файлов на носителе, заданное посекторно при установке загрузчика.

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

Подготовка chroot [ править ]

Загрузитесь с установочного диска ALT Linux в режиме «Rescue». После загрузки мы получаем терминал с командной оболочкой от имени суперпользователя root.

В автоматическом режиме [ править ]

Воспользуйтесь утилитой mount-system, находящейся, как и fixmbr, в rescue-образе. Как и fixmbr, она запускается без параметров. В случае успешного выполнения достаточно будет выполнить chroot в указанную точку монтирования (для первой обнаруженной системы это может быть /mnt/system1 ). В противном случае потребуется сделать то же самое в ручном режиме.

Читайте также:  Установка второго жесткого диска linux

В ручном режиме [ править ]

Ручная подготовка chroot состоит из следующих этапов:

  • Уточняем информацию о том, на каком устройстве находится корневой раздел. Для этого можно воспользоваться утилитой fdisk (или своей памятью, или заранее заготовленными записями). Если будет обнаружено несколько разделов c Linux, возможно, придётся проверять их подряд. Для определённости будем считать, что корневой раздел находится на /dev/sda1
  • Монтируем корневой раздел с жёсткого диска к файловой системе RescueCD:
  • Убеждаемся, что смонтировали действительно тот раздел
  • Монтируем виртуальные ФС (потребуются для установки загрузчика либо иных задач по прямой работе с диском):
  • Выполняем chroot в собранную ФС:
  • Если есть отдельный раздел с /boot , монтируем его в точку /boot
  • Вместо предыдущего пункта можно использовать

это смонтирует все ФС, которые описаны в /etc/fstab , включая отдельный /boot

Восстановление [ править ]

lilo [ править ]

Восстановление lilo, как правило, сводится к запуску команды lilo без параметров (иногда требуется предварительная правка файла /etc/lilo.conf ):

grub [ править ]

После того как проведены подготовительные действия и сделан сhroot, необходимо перегенерировать конфиг grub:

после чего, если используется обычный BIOS-режим, следует заново установить GRUB в MBR:

если же используется EFI-режим, может потребоваться восстановить загрузчик в ESP-разделе (EFI System Partition), который монтируется в /boot/efi :

Загрузчик grub обладает очень широкими возможностями. Вероятно, нелишним будет почитать про него предварительно.

Замечания [ править ]

Если изменилась таблица разделов [ править ]

Если проблемы с загрузчиком — результат перемещения/объединения разделов, то до непосредственного восстановления загрузчика потребуется скорректировать настройки загрузчика. Кроме этого, надо будет поправить /etc/fstab (для него порядок исправления неважен).

Пример для LILO (для GRUB смотреть в его описании).

Предположим, у вас был раздел sda3 с Windows, а стал раздел 1. В /etc/lilo.conf надо заменить

И соответственно убрать/поправить в /etc/fstab строчку вида

Если у Вас в конфигурации загрузчика и в fstab используются UUID, то для изменённых разделов, новые UUID можно посмотреть командой blkid . Не забудьте про параметр ядра resume, где указывается раздел swap.

Если нужны изменения в initrd [ править ]

Непосредственно к восстановлению загрузочной записи это не относится, но может иметь отношение к процессу загрузки при замене контроллера HDD или иных проблемах, требующих изменений в initrd. В ALT Linux, начиная с дистрибутивов, основанных на ветках p5/5.1, используется утилита make-initrd. Вам следует узнать, какое ядро установлено по умолчанию (смотреть в конфигурации загрузчика), и пересобрать соответствующий initrd до выполнения пункта «Восстановление загрузчика». В большинстве случаев будет достаточно простого запуска make-initrd с указанием версии ядра, так как состав модулей будет определён автоматически исходя из загруженных на данный момент. Если это не поможет, придётся изучить make-initrd более подробно.

В примере видны наборы модулей для четырёх ядер. Допустим, по-умолчанию используется 3.16.6-un-def-alt1. Команда на пересборку будет выглядеть так:

В случае Lilo надо обновить конфигурацию загрузчика (просто запустить lilo), так как Lilo обращается к информации в initrd минуя файловую систему и должен знать о расположении данных на HDD, а при пересоздании файла его расположение практически всегда меняется.

Источник

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

0. Intro.

Ситуация следующая. Есть винт на 160Гб. На нем 2 раздела — 40Гб и 120Гб. С целью установки убунты как второй системы была произведена разбивка 120Гб -> 100+10+2+8.

Далее, с целью отката изменений, были объединены диски (10, 2 и 8) обратно в один 20Гб и отформатирован в NTFS. В нагрузку к этому, были проведены операции с MBR, результатом которой явилась ее смерть.

Итоги

1. При загрузке системы выводится сообщение MBR helper not found;
2. fdisk показывает один большой 160Гб диск.

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

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

1.1. Parted magic

Данный LiveCD\USB дистрибутив, размером в 100Мб несет в себе огромную кучу софта, для работы с дисками. От разбивки, до восстановления.
Из них всех, нам нужны будут gpart, testdisk, fdisk и ms-sys.

Читайте также:  Сколько длится поиск обновлений windows
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)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
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 установлена и можно перезагружаться.

Источник

Оцените статью