IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [679]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [356]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [169]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1339
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2016 » Май » 24 » Ручная установка Windows 7/8/8.1/10 в систему с загрузчиком GRUB2
    06:57
    Ручная установка Windows 7/8/8.1/10 в систему с загрузчиком GRUB2

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

     
    Наверняка почти у каждого пользователя ОС Linux и ОС Windows, а я имею в виду именно тех, у кого, в силу ряда причин, установлены обе системы, время от времени возникал вопрос: «А нельзя ли, черт возьми, придумать способ, с помощью которого можно было бы устанавливать эти системы в произвольном порядке? Без порчи настроек загрузчика?» Ведь если ставим сначала Windows а потом Linux всё хорошо — линуксовый загрузчик (например GRUB) обычно подхватывает bootmgr. Если ставить в обратном порядке то увы. Даже с использованием GPT + EFI. В случае с EFI нет опасности перезаписи MBR, зато таки есть один нюанс, который лично мне не нравится — установщик Windows в режиме EFI хоть и не перезаписывает сектора диска своим кодом, но зато переопределяет NVRAM, подсовывая туда путь к своему загрузчику. Так что функционал GBUB всё равно приходится восстанавливать. В настройках штатного установщика нет опций для кастомизации процесса установки загрузчика. А что если… не использовать стандартный установщик?! Ну, или почти не использовать…
     


    И такой способ есть. И основан он на технологии установки Windows, которую мы имеем в её дистрибутивах начиная с «семерки». Способ работает для случая Windows версий 7/8/8.1/10, как в случае с MBR + BIOS системы, так в случае с EFI + GPT. Установить систему можно как в раздел HDD, так и на VHD. При этом функционал установщика нужен нам в общем-то для запуска программы настройки BCD-хранилища конфигурации загрузчика. Вместо установочного диска можно использовать загрузочный носитель на основе WinPE. Если бы утилитам bcdedit.exe и BootICE была *nix альтернатива, весь процесс развертывания системы можно было бы вообще выполнить в среде Linux.


    Предположим у вас имеется компьютер, с установленным на HDD загрузчиком GRUB2 и свободным разделом, отформатированном в NTFS. Устанавливать будем Windows 7 Ultimate SP1. Для этого потребуются:
     
    1. Установочный диск с виндой
    2. Чистая флешка объемом >= 4 Gb
    3. Архиватор 7-zip соответствующей разрядности
    4. Утилита BootICE, желательна, но совершенно не обязательна, можно обойтись и bcdedit.exe, входящим в дистрибутив винды
     

    1. Создаем загрузочную флешку



    Дело в том, что семерка не хочет устанавливаться в EFI-режиме с DVD. Вот не хочет и всё. К тому же, на установочном носителе нам понадобятся дополнительные утилиты, которые туда надо поместить, а в случае с флешкой это несколько проще, чем в случае с DVD.

    Монтируем установочный образ с виндой, допустим он лежит у нас в /home/$USER/install с именем win7-setup.iso

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



    Вставляем флешку в USB-порт. Допустим, она получила имя устройства /dev/sdb. Выполним её разметку в формате MBR

    $ sudo fdisk /dev/sdb


    Создем на флешке один единственный раздел. После чего форматируем её в FAT
    $ sudo mkfs.vfat /dev/sdb1


    Копируем содержимое дистрибутива винды на флешку
    $ 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-загрузчик винды. Его придется выцарапать из дистрибутива. Это легко сделать с помощью архиватора 7-zip, который имеется в репозитории extra/p7zip. Все содержимое дистрибутива винды сжато в образ wim-формата находится на установочном DVD в файле source/install.wim. Обычно этот образ имеет следующую структуру



    В каталогах с именами в виде цифр 1-4 находятся разные редакции винды. Чтобы выбрать нужную надо посмотреть внутрь файла с именем [1].xml. Распакуем его в /tmp

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



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



    где нода EDITIONID указывает на редакцию. Параметр INDEX — как раз номер каталога, в котором валяется нужная редакция. Итак, мне нужна Ultimate, а это индекс 4. Соответсвенно выковыриваем загрузчик оттуда

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


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

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


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

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



    Туда же помещаем и bootice

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


    Уф, всё, отмонтируем флешку
    $ cd ~
    $ sudo umount /tmp/flash/



    Перезагружаемся. Если у вас система с EFI и съемные диски стоят в приоритете загрузки, то компьютер загрузится в установку винды автоматом. Если же появилось таки меню GRUB, ничего страшного, жмем «С» и в консоли набиваем команду exit. Вас вывалит в меню EFI, где выбираем загрузку с флешки. Если же ваша система с BIOS, то тут чуть сложнее, ибо мы не стали заморачиваться с настройкой MBR на флешке. Тогда в консоли GRUB даем команду ls — появится список всех дисков и разделов. Находим нашу флешку, она отобразится в виде (hdX, msdosY), где X, Y — номер диска и раздела соответственно. Теперь вбиваем в консоли команды

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



    Начнется загрузка установщика винды. Он то загрузится, но нам он и не нужен — мы всё будем делать руками. Чтобы стало понятно, что к чему, придется рассмотреть некоторую теорию
     

    2. О развертывании Windows из WIM-образа и капризном нраве Sysprep



    Начиная с семерки установка Windows заключается в следующих этапах
     
    1. Разметка диска в соответствии с архитектурой системы инициализации оборудования. Если BIOS — установщик размечает диск в MBR. При наличии активной EFI — разметка будет GPT.
    2. Распаковка образа install.wim в выбранный для установки раздел
    3. Установка загрузчика и перезагрузка
    4. Инициализация оборудования. Ребут
    5. Локализация, ввод ключа, окончание настройки системы


    Это стандартный путь. У нас же диск уже размечен. И нам не нужна автоматическая установка загрузчика — мы поставим его вручную. Разметка диска должна удовлетворять следующим требованиям
     
    • Если система с EFI на диске должен присутствовать FAT-раздел с типом 0xEF. Если у нас уже установлен линукс с EFI-загрузчиком, то таковой раздел уже имеется
    • Если система с BIOS, то раздел, в котором располагается загрузчик, а это наш NTFS-раздел должен быть активным. Это очень важно! Почему, будет объяснено ниже.


    Таким образом, перед распаковкой системы мы должны убедится в том, что перечисленные требования выполнены. После того, как мы распакуем все файл системы и установим загрузчик, система перезагрузиться. После перезагрузки запустится утилита Sysprep, среди прочего настраивающая оборудования и проверяющая конфигурацию системы. Так вот, если в режиме EFI Sysprep не найдет загрузчик и его конфигурацию в EFI-разделе по пути EFI/microsof/boot, а в системе с BIOS каталог \Boot и bootmgr будут лежать в неактивном разделе, то Sysprep завершится с ошибкой sysprep generalize error, а в лог, расположенный по адресу \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



    и никакие танцы с бубном нам уже не помогут. Винда требует, чтобы загручик лежал в загрузочном разделе и точка. В случае с BIOS просто делаем активным раздел NTFS в котором лежит винда и туда же кладем и загрузчик. Грузится будем всё равно с помощью GRUB, а ему все равно, какой раздел будет активным. В случае с EFI загрузчик придется положить рядом с GRUB в EFI-разделе.
     

    3. Распаковка системы



    Итак, определимся, куда мы хотим ставить винду. Можно поставить в 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



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

    X:\sources> diskpart
    DISKPART> list vol





    Видим, что флешка (объемом 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



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



    Если же мы хотим поставить систему на 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



    Получаем такую картину



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

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

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



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



    Правой кнопкой на этом файле вызываем контектстное меню и переходим по 7-zip -> Открыть архив. Появится содержимое образа.



    Лезем в папку 4 — там лежит Ultimate



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



    Указываем корень диска C: и жмем ОК.



    Ну и теперь, как говорится: «Откиньтесь на спинку кресла и...»
     

    4. Установка и настройка загрузчика



    Итак, после некоторого время ожидания распаковка окончена. И вот тут, вот в этом месте винда обчно делает бяку, а именно портит 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. В случае установки на раздел, его параметры задаются так



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



    Важно! Имя вторичного загрузчика для 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. Скрестим пальцы да вознесем молитвы тебе, о Великий и Ужасный Sysprep...!



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

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



    X, Y — соответственно диск и раздел, где лежит загрузчик. Это в случае EFI. В случае с BIOS делаем так

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



    X, Y — диск и раздел с NTFS. Там где распакована винда и лежит её загрузчик.

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



    Это работает Sysprep. На 57% моргнет экран — настраивается видяха. И если мы все сделали верно, то надпись «Применение параметров системы» повисит довольно долго, потом система сообщит, что установка будет продолжена после перезагрузки. Если мы где-то напортачили с установкой загрузчика — неправильный EFI раздел или неактивный NTFS, то тогда будет ошибка :( Но мы молодцы и у нас все получится, и после очередной перезагрузки мы увидим это



    а потом, наконец вот это



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

    6. Настраиваем GRUB



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

    menuentry 'Windows 7 Ultimate SP1 (EFI)' {

    set root=hdX,Y
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }



    в случае EFI. Или

    menuentry 'Windows 7 Ultimate SP1' {

    set root=hdX,Y
    ntldr /bootmgr
    }



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



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


     

    Заключение



    Упреждая гнев профессиональных win-админов, скажу сразу — я знаю о DISM. Именно информация об этой системе и привела меня к описанному решению. Цель была одна — выяснить сколько нужно возможностей собственно Windows для установки Windows.

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

    Если написать аналог bcdedit.exe под Linux, то установить Windows можно будет с линуксового Live-носителя.

     

    Дмитрий Притыкин @maisvendoo

     

    https://habrahabr.ru/post/301534/

    Категория: Linux и не только | Просмотров: 719 | Добавил: laptop | Рейтинг: 4.7/3
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    «  Май 2016  »
    ПнВтСрЧтПтСбВс
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024