Перейти к содержимому


- - - - -

Использование загрузчика windows 7/8 для linux

linux windows ntloader grub

  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 drinkermann

drinkermann
  • Мыслитель

  • Динозавр Форума
  • 1 621 сообщений
  • Пол:Мужчина

Отправлено 18.02.2013 - 22:40

Думаю многие сталкивались с установкой линукса поверх винды, а вот процесс обратный обычно вызывает множество вариантов. И ладно когда винда XP, там можно просто починить grub и дело в шляпе. С семеркой и выше все немного сложнее.
Итак задача:
Есть машина с linux, нужно вкорячить на нее win 7 при этом сохранить линуксовые данные и обойтись "малой кровью".
Как отделить раздел под винду тут рассматривать не буду(во всяком случае пока), допустим он у нас есть.
В отличие от XP семерка хочет чтобы ее раздел был активным и ее загрузчик сидел в MBR, а у нас там сидит grub\lilo.
Первое что нужно сделать это перенести загрузчик из MBR в первый блок раздела на котором у вас /boot.
Смотрим grub.conf\lilo.conf соответственно. Для примера у меня диск /dev/sda, а раздел с /boot в /dev/sda1
Как? Вспоминаем расчудесную утилитку dd
Шаг 1. Достаем MBR:
sudo dd if=/dev/sda of=/home/UserName/bootsect.bin bs=512 count=1
где /dev/sda - диск с MBR, /home/UserName ваша домашняя директория, bootsect.bin - произвольное имя файла, bs - размер блока в байтах, count - сколько блоков копировать.

Так в итоге у вас должен получиться файл на 512 байт, с содержимым отличным от пустой строки или 512 одинаковых символов. Его нужно сохранить куда-нибудь на съемный носитель, он еще понадобится.

Шаг 2: Правим конфиг lilo
Параметр boot=/dev/sda, меняем на /dev/sda1
Для grub2 можно сделать
sudo grub-install /dev/sda1
(я бы на всякий случай проверил бы что там он записал, так же dd if=/dev/sda1 of=/home/UserName/newbootsect.bin bs=512 count=1, и сравнил бы полученные образы)

Шаг 3:
Копируем загрузчик в начало расдела с /boot
sudo dd if=/home/UserName/bootsect.bin of=/dev/sda1 bs=512 count=1
На этом с линуксом закончили, переходим к винде.

Устанавливаем как обычно, не портим разделы с линуксом. MBR после этого перезапишется виндовым загрузчиком.
Дальше вызываем cmd.exe с правами администратора и начинается самое интересное:
Шаг 1: Кладем образ линуксового загрузчика.
Например в корень диска C:
Шаг 2: Создаем новую ссылку для загрузчика:
bcdedit /create /d “Linux” /application bootsector
В результате будет выведен идентификатор в стандартном для винды формате типа {abcd345345-345345-dfgdfg-1234567}, запоминаем его(копируем) фигурные скобки нужны, да.
Шаг 3: Указываем раздел для поиска загрузчика
bcdedit /set {идентификатор} device partition=c:
Шаг 4: Указываем путь до загрузчика.
(напоминаю у нас он в C:\bootsect.bin)
bcdedit /set {идентификатор} path \bootsect.bin
Ну и наконец ставим его в конец очереди и устанавливаем таймер на загрузку(10 сек)
bcdedit /displayorder {идентификатор} /addlast
bcdedit /timeout 10
ребутаемся и видим стандартное виндовое меню выбора ОС.

Написано под впечатлением от установки МСВС совместно с Windows 7. Надеюсь кому-нибудь пригодится.





Темы с аналогичным тегами linux, windows, ntloader, grub

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей