Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

в 7:58, , рубрики: grub2, linux, windows, windows 7

Введение

Ни для кого уже не секрет, что начиная с версии Windows 7 Ultimate, операционные системы от Майкрософт умеют загружаться будучи установленными на образ жесткого диска формата VHD. Однако, данная возможность «из коробки» доступна только пользователям этой самой Windows 7 Ultimate.

У меня же, убежденного пользователя Arch Linux, потребность в применении этой технологии возникла из-за необходимости иметь винду под рукой в дуалбуте и именно в реальном окружении. 90% процентов задач, для которых нужен Windows, разумеется решаются путем виртуализации, и мощности современного железа, и возможности виртуальных машин, позволяют даже в игры играть в виртуальной среде. Однако, возникла необходимость в использовании пакета «Универсальный механизм», который под вайном работает криво (допускаю и что руки у меня кривые)б а в виртуальной среде, понятное дело, безбожно теряет прыть. В общем понадобилась Windows, но таскать разделы на винте и менять его разметку страшно не хотелось ради установки одной программы под винду.

Решение нашлось в реализации загрузки из VHD-образа с использованием загрузчика Grub2, ставшего стандартом де-факто во многих популярных дистрибутивах Linux. Об этом собственно и пойдет речь.

1. Подготовка почвы

Для хранения образов нам таки потребуется NTFS-раздел, который может быть как первичным, так и логическим, и не обязательно активным. Его можно создать с помощью gparted, там же и отформатировав в NTFS. У меня на НDD была зарезервирована неразмеченная область для разного рода экспериментов с осями, её я и отдал под данный раздел

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

Далее делаем этот разле доступным для виртуальных машин VirtualBox

$ VBoxManage internalcommands createrawvmdk -filename ~/<Путь к файлу>/win7.vdmk -rawdisk /dev/<раздел>

то есть создаем виртуальный диск в виде файла-ссылки на раздел реального HDD. Этот диск подключаем к виртуальной машине с Windows 7 Ultimate — она пригодится нам для решения поставленной задачи

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

2. Создаем VHD-образ с системой

Теперь надо создать VHD-образ HDD. Его придется создавать средствами, предоставляемыми Windows 7 Ultimate, ибо диски, создаваемые тем же VirtualBox вызывают последующий вывал загружаемой винды в BSOD.

Загружаем вирутальную машину с виндой. Идем в панель Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером -> Управление дисками. С правой стороны окна имеется меню, где мы выбираем создание виртуального диска

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

после чего указываем путь к нему и задаем его параметры

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

Лучше всё же выбрать фиксированный размер образа — это будет работать быстрее.

Щелкаем ОК и пока идет процесс, выполним

3. Настройка загрузчика bootmgr

Сам загрузчик bootmgr и каталог с его конфигом boot банально копируем с установочного DVD Windows 7 в корень раздела NTFS, туда же, где размещается папка с VHD-дисками.

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

Удаляем файл bootbcd, ибо этот контейнер хранит конфигурацию с загрузочного DVD, и создаем новый контейнер. Для этого используем крохотную утилитку bootice. Запускаем её, выбираем вкладку “BCD edit”.

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

Далее жмем “Create new BCD”, выбираем путь по которому будет расположен файл конфигурации и создаем его с именем BCD. Далее выбираем этот файл и жмем “Easy mode” – запуск редактора в упрощенном режиме.

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

Файл конфигурации откроется в режиме редактирования, нажимаем кнопку “Add” и выбираем вариант “New VHD boot entry”. Редактор сосздаст шаблон загрузочной записи и нам остается лишь вписать путь к нашему образу.

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

Путь к VHD-файлу от корня раздела с образами прописываем в поле “File”. После этого жмем “Save current system” и выходим из программы.

Дожидаемся пока закончится процесс создания VHD-образа и покидаем виртуальную семерку.

4. Установка Windows 7 Ultimate на VHD-образ

Выполнена средствами VirtualBox. Для этого:

  • Смонтирован NTFS-раздел с образом в хост-системе Linux
  • Создана виртуальная машина, причем в качестве образа диска выбран созданный нами образ
  • Установлена винда, стандартно, без ухищрений

Однако, надо сказать вот о чем. Мы помним, что наша система инсталирована в ВМ, а поэтому некоторые устройства определены на этапе установки и система подсунула для них соотвествующие драйвера. При запуске на Вашем реальном компьютере с вероятностью в 99% получится BSOD. Это связано с тем, что VirtualBox эмулирует контролер IDE следующим образом

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

и этот драйвер, работая в загружаемой системе конфликтует с реально установленным на мат. плате контроллером, при попытке системы прочесть файл образа с диска. Решается просто – выбираем “Обновить драйвер”, говорим, что не надо искать а мы сами укажем нужный драйвер и выберем “Стандартный двухканальный контролер IDE”

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

После этого выключаем нашу виртуальную машину и делаем её «реальной»

5. Настройка загрузчика Grub2

В конфиг Grub2 необходимо добавить загрузочную запись такого вида

menuentry “Windows 7 Ultimate SP1″ {
   set root=’hd0,msdos5′
   ntldr /bootmgr
}

где (hd0,msdos5) — NTFS-раздел, где размещены VHD-образы.

После этого можно перезагружаться и пробовать…

Заключение

После загрузки устанавливаем драйвера на наше реальное железо и радуемся жизни:

Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate

Изображенное на скринах – это полноценная ОС, работающая на реальном железе. Но они – всего лишь файлы на Вашем жестком диске. Эти файл могут быть скопированы, удалены, перемещены, архивированы и прочее. К тому же, такой метод решает извечную проблему конфликта Windows vs Linux на одном HDD. Теперь они мирно уживаются друг с другом и не портят друг другу жизнь.

Автор:

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js