Ручная Установка Windows 7/8/8.1/10 В Системе С Загрузчиком Grub2.

Наверняка практически у каждого пользователя ОС Linux и ОС Windows, а я имею в виду именно тех, у кого по ряду причин установлены обе системы, время от времени возникал вопрос: «Нельзя ли, блин, придумать с помощью какого способа кто мог устанавливать эти системы в любом порядке? Не повреждая настройки загрузчика? Ведь если мы сначала ставим Windows, а потом Linux, то все нормально — загрузчик Linux (например GRUB) обычно подхватывает bootmgr. Если поставить в обратном порядке, то увы.

Даже используя GPT + EFI. В случае с EFI опасности перезаписи MBR нет, но есть один нюанс, который лично мне не нравится - хотя установщик Windows в режиме EFI не затирает сектора диска своим кодом, он переопределяет NVRAM, вставляя путь к его загрузчику там.

Так что функциональность GBUB еще предстоит восстановить.

В настройках стандартного установщика нет возможностей настройки процесса установки загрузчика.

А что, если.

вы не используете стандартный установщик?! Ну или почти не использовать.



Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

И есть такой способ.

И в его основе лежит технология установки Windows, которая есть у нас в ее дистрибутивах начиная с «семерки».

Способ работает для версий Windows 7/8/8.1/10, как в случае систем MBR+BIOS, так и в случае EFI+GPT. Установить систему можно как в раздел HDD, так и на VHD. В этом случае нам обычно нужен функционал установщика для запуска программы настройки BCD-хранилища конфигурации загрузчика.

Вместо установочного диска можно использовать загрузочный носитель на базе WinPE. Если бы существовала альтернатива *nix утилитам bcdedit.exe и BootICE, весь процесс развертывания системы можно было бы выполнить в среде Linux. Предположим, у вас есть компьютер с установленным на жестком диске загрузчиком GRUB2 и свободным разделом, отформатированным в NTFS. Мы установим Windows 7 Ultimate SP1. Для этого вам понадобится:

  1. Установочный диск с Windows
  2. Пустая флешка емкостью > = 4 Гб
  3. Архиватор 7-молния соответствующая разрядность
  4. Утилита BootICE желательна, но вовсе не обязательна; можно обойтись bcdedit.exe, входящим в дистрибутив Windows
1. Создайте загрузочную флешку.

Дело в том, что семерка не хочет устанавливаться в режиме EFI с DVD. Это все, чего он не хочет. Кроме того, на установочном носителе нам потребуются дополнительные утилиты, которые нужно туда поместить, причем в случае с флешкой это несколько проще, чем в случае с DVD. Монтируем установочный образ с виндой, допустим он у нас /home/$USER/установить С именем win7-setup.iso

$ mkdir ~/iso $ sudo mount -t udf ~/install/win7-setup.iso ~/iso

Вставьте флешку в USB-порт. Допустим, она получила имя устройства /dev/СДБ .

Давайте разметим это в формате MBR.

$ sudo fdisk /dev/sdb

Давайте создадим один единственный раздел на флешке.

Потом форматируем в FAT

$ sudo mkfs.vfat /dev/sdb1

Копирование содержимого дистрибутива Windows на флэшку

$ mkdir /tmp/flash $ sudo mount /dev/sdb1 /tmp/flash -o uid=1000,gid=100,fmask=113,dmask=002 $ cp -rv ~/iso/* /tmp/flash/

Давайте скопируем конфиги загрузчика EFI на более высокий уровень.



$ cp -rv ~/tmp/flash/efi/microsoft/* ~/tmp/flash/efi/

Теперь нам нужен загрузчик EFI Windows. Его придется удалить из раздачи.

Это легко сделать с помощью архиватора 7-zip, который доступен в репозитории.

экстра/p7zip .

Все содержимое дистрибутива Windows сжимается в образ формата wim, расположенный на установочном DVD в файле источник/install.wim .

Обычно это изображение имеет следующую структуру

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Каталоги с названиями в виде цифр 1-4 содержат разные редакции Windows. Чтобы выбрать тот, который вам нужен, вам нужно заглянуть внутрь файла с именем [1].

xml. Давайте распакуем его в /tmp

$ cd /tmp $ 7z e ~/iso/sources/install.wim \[1\].

xml

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

Каждая редакция Windows описывается структурой типа

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

где находится узел ИДЕНТИФИКАТОР ИЗДАНИЯ указывает редактор.

Параметр ИНДЕКС - просто каталожный номер, в котором завалялось нужное издание.

Итак, мне нужен Ultimate, а это индекс 4. Соответственно выбираем оттуда загрузчик

$ 7z e ~/iso/sources/install.wim 4/Windows/Boot/EFI/bootmgfw.efi

Ок, теперь перенесем полученный файл на флэшку

$ mv bootmgfwm.efi /tmp/flash/efi/boot/bootx64.efi

Хорошо, теперь у нас есть загрузочная флешка для установки Windows. Теперь добавим в него необходимые для установки утилиты — Windows-версию архиватора 7-zip и утилиту BootICE. Скачайте архиватор с официального сайта и распакуйте его на флешку в директорию utils.

$ mkdir -p /tmp/flash/utils/7-Zip/ $ cd /tmp/flash/utils/7-Zip/ $ 7z x ~/downloads/7z1602-x64.exe

Туда же мы положили ботинок

$ cp ~/install/BOOTICEx64.exe /tmp/flash/utils

Уф, все, давайте монтировать флешку.



$ cd ~ $ sudo umount /tmp/flash/

Давайте перезагрузимся.

Если у вас система с EFI и съемные диски являются приоритетом загрузки, то компьютер автоматически загрузится в установку Windows. Если появилось меню GRUB, все в порядке, нажмите «C» и введите в консоли команду выхода.

Вас кинет в меню EFI, где выбираем загрузку с флешки.

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

Затем в консоли GRUB вводим команду ls — появится список всех дисков и разделов.

Находим нашу флешку, она будет отображаться в виде (hdX, msdosY), где X, Y — номера диска и раздела соответственно.

Теперь вводим команды в консоль

grub> set root=hdX,Y grub> ntldr /bootmgr grub> boot

Установщик Windows начнет загрузку.

Он загрузится, но нам это не нужно — сделаем все вручную.

Чтобы было понятно, что к чему, нам придется рассмотреть некоторую теорию.

2. О развертывании Windows из WIM-образа и капризности Sysprep Начиная с Windows 7, установка Windows состоит из следующих шагов.

  1. Разбиение диска на разделы в соответствии с архитектурой системы инициализации оборудования.

    Если это BIOS, то установщик разметит диск в MBR. Если EFI активен, разметка будет GPT.

  2. Распаковка образа install.wim в выбранный для установки раздел
  3. Установка загрузчика и перезагрузка
  4. Инициализация оборудования.

    Перезагрузить

  5. Локализация, ввод ключа, завершение настройки системы
Это стандартный способ.

Наш диск уже размечен.

И автоматическая установка загрузчика нам не нужна – мы установим его вручную.

Разметка диска должна соответствовать следующим требованиям

  • Если система с EFI, на диске должен быть раздел FAT с типом 0xEF. Если у нас уже установлен Linux с загрузчиком EFI, то такой раздел уже существует.
  • Если система с биосом, то раздел, в котором находится загрузчик, и есть наш NTFS-раздел должен быть активным .

    Это очень важно! Почему будет объяснено ниже.

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

После того, как мы распакуем все системные файлы и установим загрузчик, система перезагрузится.

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

Итак, если в режиме EFI Sysprep не находит загрузчик и его конфигурацию в разделе EFI по пути EFI/microsof/boot, а в системе с BIOS каталог \Boot и bootmgr находится в неактивном разделе, то Sysprep завершится неудачно.

с ошибкой sysprep генерализовать ошибку, и в журнале, расположенном в \Windows\Panther\sysperr.log, будет выдано что-то похожее на

2015-03-11 16:55:42, Error [0x0e00b3] TOOL Sysprep_Specialize_Bcd: There was an error opening the system store. Status=[0xC0000098] 2015-03-11 16:55:42, Error [0x0f0082] SYSPRP LaunchDll:Failure occurred while executing 'c:\Windows\System32\spbcd.dll,Sysprep_Specialize_Bcd', returned error code 1006 2015-03-11 16:55:42, Error [0x060435] IBS Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0x3ee

и никакие танцы с бубном нам не помогут. Windows требует, чтобы загрузчик находился в загрузочном разделе.

В случае с биосом мы просто делаем активным раздел NTFS, в котором находится Windows, и помещаем туда же загрузчик.

Мы по-прежнему будем загружаться с помощью GRUB, и ему не важно, какой раздел будет активным.

В случае EFI загрузчик необходимо разместить рядом с GRUB в разделе EFI. 3. Распаковка системы Итак, давайте определимся, куда мы хотим установить Windows. Вы можете поместить его в раздел NTFS или на VHD-диск.

Это именно то, как вы этого хотите.

Я покажу процесс на примере виртуальной машины EFI, имеющей следующую разметку.



The protective MBR's 0xEE partition is oversized! Auto-repairing. Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): p Disk /dev/loop1: 104857600 sectors, 50.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 0D217C93-6699-435A-9BBB-61DFAA6F30B7 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 104857566 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 206847 100.0 MiB EF00 EFI system partition 2 206848 104855551 49.9 GiB 0700 Basic data partition

На этом диске нет Linux, на EFI-разделе установлен только GRUB. Если ставим систему напрямую в NTFS-раздел, то загружаемся с флешки, ждем запуска программы установки и нажимаем Shift+F10 для вызова консоли.

Запустите утилиту diskpart и посмотрите список смонтированных томов.



X:\sources> diskpart DISKPART> list vol



Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Видим, что флешка (8 ГБ) подключена как диск C:, а установочный раздел вообще не монтируется.

Беспорядок.

Давай сделаем это

DISKPART> sel vol 3 DISKPART> remove DISKPART> assign letter=E DISKPART> sel vol 1 DISKPART> assign letter=C DISKPART> list vol DISKPART> sel vol 2 DISKPART> assign letter=F

Теперь такой порядок, диск, на который мы будем устанавливать Windows, стал диском C:, флешка стала диском E:, а раздел EFI стал диском F:

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Если мы хотим установить систему на VHD, то делаем так

DISKPART> sel vol 3 DISKPART> remove DISKPART> assign letter=E DISKPART> sel vol 1 DISKPART> assign letter=G DISKPART> exit

Для заказа создайте каталог с изображениями

X:\sources> md G:\vhd X:\sources> diskpart

Создаем виртуальный диск, создаем на нем раздел GPT и раздел NTFS и монтируем на C:

DISKPART> create vdisk file="G:\vhd\win7.vhd" maximum=25600 type=fixed DISKPART> attach vdisk DISKPART> clean DISKPART> convert gpt DISKPART> create part primary DISKPART> format fs=ntfs quick DISKPART> assign letter=C

Подключите раздел EFI к F:

DISKPART> sel vol 2 DISKPART> assign letter=F

Мы получаем эту картину

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Очень важно! Убедитесь, что раздел EFI отформатирован в FAT, а не FAT32. В противном случае Sysprep не простит нам этой ошибки.

Если на вашем компьютере уже стоит Linux, то настройки будут правильными.

Теперь распакуйте дистрибутив на диск C:

X:\sources> E: E:\> utils\7-Zip\7zFM.exe

Откроется графический интерфейс архиватора 7-zip. В нем откройте каталог E:\sources, найдите там файл install.wim

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Щелкните правой кнопкой мыши по этому файлу, чтобы вызвать контекстное меню, и перейдите в 7-zip -> Открыть архив.

Появится содержимое изображения.



Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Заходим в папку 4 - там Ultimate

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Выделяем все Ctrl+A и нажимаем кнопку «Извлечь».

Появится окно с просьбой указать путь распаковки.



Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Укажите корень диска C: и нажмите «ОК».



Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Ну а теперь, как говорится: «Откиньтесь назад и…» 4. Установка и настройка загрузчика Итак, после некоторого ожидания, распаковка закончена.

И вот в этом месте Windows обычно делает что-то плохое, а именно портит MBR или перенастраивает NVRAM. Но мы ей этого сделать не дадим — установим загрузчик вручную.

В случае EFI перейдите в раздел EFI, смонтированный в F:, создайте необходимые пути и скопируйте файлы загрузчика.



E:\> F: F:\> mkdir EFI\microsoft\boot F:\> xcopy C:\Windows\Boot\EFI\* F:\EFI\microsoft\boot /s /e F:\> mkdir EFI\microsoft\boot\Fonts F:\> xcopy C:\Windows\Boot\Fonts\* F:\EFI\microsoft\boot\Fonts\ /s /e F:\> copy C:\Windows\System32\config\BCD-Template F:\EFI\microsoft\boot\BCD

Отлично, загрузчик скопирован.

Теперь давайте настроим это

F:\> E:\utils\BOOTICEx64.exe

Откройте файл F:\EFI\Microsoft\Boot\BCD. При установке на раздел его параметры задаются следующим образом

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Если мы устанавливали систему на VHD, то настройки будут такие

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Важный! Имя вторичного загрузчика для системы EFI winload.efi , для системы BIOS - winload.exe .

Если мы устанавливаем систему BIOS, установка загрузчика будет выглядеть так

F:\> mkdir C:\Boot F:\> xcopy C:\Windows\Boot\PCAT\* C:\Boot /s /e F:\> mkdir C:\Boot\Fonts F:\> xcopy C:\Windows\Boot\Fonts\* C:\Boot\Fonts /s /e F:\> copy C:\Boot\bootmgr C:\bootmgr F:\> copy C:\Windows\System32\config\BCD-Template C:\Boot\BCD

Важный! Раздел, смонтированный на C: (где находится загрузчик), должен быть активен! Убедитесь в этом перед перезагрузкой! Настройку выполняем точно так же с помощью BootICE. Ну, кажется, это все.

Закройте все окна и перейдите к перезагрузке.

Флешку можно вынуть из компьютера.

5. Скрестим пальцы и вознесем молитвы к тебе, о Великий и Ужасный Сиспреп.

! Мы еще не настроили GRUB как пункт меню для Windows. Как только появится меню GRUB, нажмите «C».

В консоли набираем

grub> set root=hdX,Y grub> chainloader /EFI/Microsoft/Boot/bootmgfw.efi grub> boot

X, Y — соответственно диск и раздел, где находится загрузчик.

Это касается EFI. В случае с биосом делаем так

grub> set root=hdX,Y grub> ntldr /bootmgr grub> boot

X, Y — диск и раздел с NTFS. Где распакована Windows и находится ее загрузчик.

В режиме EFI вместо логотипа Windows я увидел черный экран, так как не нашел в раздаче библиотеки bootres.dll, которую следует поместить в папку EFI\Mictosoft\Boot\Resources. В случае с биосом все в порядке — знакомый логотип «семерки».

И тогда в обоих случаях мы увидим это

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Сиспреп работает. Экран моргает на 57% - идет настройка видеосистемы.

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

Если мы где-то накосячили с установкой загрузчика - неправильный раздел EFI или неактивный NTFS, то будет ошибка :( Но мы молодцы и у нас все получится, и после следующей перезагрузки мы это увидим

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

и наконец это

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

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

6. Настройка GRUB Мы заметили это каждый раз, когда загружаем систему из консоли GRUB вручную.

Это очень хорошо — значит ни MBR, ни NVRAM не были перезаписаны коварным Microsoft. Пришло время загрузить Arch и добавить новый пункт в меню GRUB.

menuentry 'Windows 7 Ultimate SP1 (EFI)' { set root=hdX,Y chainloader /EFI/Microsoft/Boot/bootmgfw.efi }

в случае ЭФИ.

Или

menuentry 'Windows 7 Ultimate SP1' { set root=hdX,Y ntldr /bootmgr }

в случае с биосом.

Применяем настройки GRUB и перезагружаемся и видим систему в пункте меню загрузки

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

после выбора которого у нас загружается Windows

Ручная установка Windows 7/8/8.1/10 в системе с загрузчиком GRUB2.

Заключение Предвидя гнев профессиональных победителей-администраторов, скажу сразу - я знаю о ДИСМ .

Именно информация об этой системе привела меня к описанному решению.

Цель была только одна — узнать, сколько возможностей самой Windows необходимо для установки Windows. Оказалось, что для установки Windows ее среда нужна только для одного — настройки BCD-хранилища.

Все.

Остальное можно сделать из среды любой другой операционной системы.

Если написать аналог bcdedit.exe для Linux, то можно будет установить Windows с носителя Linux Live. Теги: #Системное администрирование #BIOS #efi #GPT #mbr #grub2 #VHD #Установка Windows без повреждения GRUB #установка Windows без повреждения mbr #установка Windows без повреждения nvram #bootmgr

Вместе с данным постом часто просматривают: