Ручная установка 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-носителя.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 43
    • 0
      Если ставить на vhd, то образ должен лежать на разделе с NTFS?
    • +4
      Спасибо за статью, один вопрос только: восстановление GRUB разве не меньшее количество манипуляций и времени займет?
      • +1
        Слишком много телодвижений… не проще ли поставить 7/8/8.1/10 а потом восстановить загрузчик через livecd?
        • +10
          Проще. Может быть приведенный выше материал и походит на троллейбус из буханки хлеба, однако принципиальным в моментом в нем является рассмотрение алгоритма работы инсталлятора ОС данного семейства, что несомненно представляет интерес, хотя бы с теоретической точки зрения
        • 0
          Кроме бухов из-за привязки ко всяким sbis, клиент-банку, и т.д. особо и не нужно ведро. А версии выше win7 вообще не понятно зачем люди устанавливают.
          И надо признать winXP ведет себя под VirtualBox лучше чем в чистом железе. И когда попадаются всякие узкие устройства российского попила бюджета помогает именно virtualbox.
          • 0
            Кроме бухов из-за привязки ко всяким sbis, клиент-банку, и т.д. особо и не нужно ведро.

            Вы имели ввиду вин? "Ведро" это андроид вроде как.
            Photoshop, AutoCAD, Matlab, Chessbase, да тот же Office или Visual Studio. Да у всех этих программ есть опенсорсные аналоги, но не всегда они имеют нужный функционал и ими удобно пользоваться. Так что от дуалбута уже который год уйти не получается никак. А еще игры, с которыми буквально пару лет назад на всём, кроме Windows было никак.


            А версии выше win7 вообще не понятно зачем люди устанавливают.

            А зачем мне ставить старую версию, когда меня новая устраивает?

            • 0
              Matlab есть нативный под linux и mac. То же самое касается Maple и Mathematica.

              Так что от дуалбута уже который год уйти не получается никак

              Тут согласен. Мне например, приходится иногда использовать совсем уж специфическое ПО
              • 0

                Да в том то и дело, что совсем специфичного и не надо. Любая профессиональная деятельность, не связанная с IT, обычно требует софт который существует только под Win, в лучшем случае — Mac, а опенсорсные аналоги по функционалу не дотягивают.

          • 0

            А какая информация о железе вообще нужна утилитам BOOTICE / bcdedit? Можно ли их запустить на виртуалке, а потом переписать нужные файлы на реальный диск? Или запустить на виртуалке, но дать доступ к реальному диску? Можно ли их запустить под Wine или под ReactOS?

            • 0
              Навскидку BootICE запускается под wine, но при попытке открытия BCD пишет

              Ответ на вопрос почему может дать отладка

              bcdedit дает ответ аналогичный
              [maisvendoo@arch-host bcdedit]$ wine bcdedit /enum all /store 'Z:\home\maisvendoo\ntfs_part\Boot\BCD' 
              fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
              The boot configuration data store could not be opened.
              Файл не является файлом реестра.
              
              • 0
                Или запустить на виртуалке, но дать доступ к реальному диску?

                Так работает, если ставить на VHD под виртуалкой. Я именно так и делал.

                А вот в случае с использованием Sysprep может и не получится
              • 0
                Можно ли их запустить на виртуалке, а потом переписать нужные файлы на реальный диск?

                Вряд ли, на скриншоте виден OS GUID, который будет отличен на реальном железе.
                • 0
                  Неоспоримый плюс статьи в том, что загрузочную флешку можно создать из Linux, что часто вызывает много вопросов и делают это обычно из под самой Windows с помощью windows usb/dvd download tool. Оказалось, там никакой магии и всё вполне выполнимо руками.
                  • 0
                    загрузочную флешку можно создать из Linux

                    Для EFI — да, простым копированием файлов. В случае же с MBR все несколько сложнее
                    • 0
                      Но выполнимо? Можете вкратце пояснить, как это сделать?
                      • 0
                        Надо поставить GRUB на флешку и написать в конфиге
                        set root=hdX,Y
                        ntldr /bootmgr

                        GRUB умеет грузить винду не через chainloader, а напрямую, изображая из себя загрузчик
                        Впрочем, в статье это есть.
                        • 0
                          Я как-то задумался о распаковке install.wim и забыл про очевидный, более простой путь. Спасибо.
                        • 0
                          Надо поставить GRUB на флешку и написать в конфиге


                          Да c GRUB проще всего. Вот инструкция

                          1. Присваиваем разделу на флешке метку

                          $ sudo fatlabel /dev/sdb1 SETUP
                          


                          2. Монтируем её и устанавливаем GRUB

                          $ sudo mount /dev/sdb1 /tmp/flash -o uid=1000,gid=100
                          $ mkdir /tmp/flash/grub
                          $ sudo grub-install --target=i386-pc --boot-directory=/tmp/flash /dev/sdb
                          


                          3. Конфигурируем GRUB, причем корень лучше установить по метке тома

                          /tmp/flash/grub/grub/grub.cfg
                          menuentry 'Windows 7 Setup' {

                          search --label SETUP --set root
                          ntldr /bootmgr
                          }


                          Всё, втыкаем, в биосе выставляем приоритет загрузки и вперед
                          • 0
                            Да, чтобы не появлялось меню GRUB, ставим в начале конфига

                            set timeout=0
                      • 0
                        Меня больше всего настораживает распаковка WIM через 7-zip. Как это переживут ACL, потоки NTFS, симлинки и хардлинки?
                        • +2
                          я через gimagex распаковывал всегда. бегло погуглив, нашел такую штуку — WIMLIB: IMAGEX / DISM ALTERNATIVE TO MANIPULATE WIM FILES IN LINUX. Заинтересовало, нужно потестить.
                          • 0
                            Весьма ценно. В AUR есть пакет

                            Опробовал, работает. Информация о wim

                            [maisvendoo@arch-host win7-efi]$ wimlib-imagex info ~/iso/sources/install.wim
                            


                            Вывод команды
                            WIM Information:
                            — Path: /home/maisvendoo/iso/sources/install.wim
                            GUID: 0xd2cd8e1cb9c7144483bad0dac385534d
                            Version: 68864
                            Image Count: 4
                            Compression: LZX
                            Chunk Size: 32768 bytes
                            Part Number: 1/1
                            Boot Index: 0
                            Size: 2850077531 bytes
                            Attributes: Integrity info, Relative path junction

                            Available Images:
                            — Index: 1
                            Name: Windows 7 HOMEBASIC
                            Description: Windows 7 HOMEBASIC
                            Display Name: Windows 7 Домашняя базовая
                            Display Description: Windows 7 Домашняя базовая
                            Directory Count: 13976
                            File Count: 66508
                            Total Bytes: 11529408728
                            Hard Link Bytes: 4376878446
                            Creation Time: Вс ноя 21 04:39:25 2010 UTC
                            Last Modification Time: Вс ноя 21 13:14:41 2010 UTC
                            Architecture: x86_64
                            Product Name: Microsoft® Windows® Operating System
                            Edition ID: HomeBasic
                            Installation Type: Client
                            HAL: acpiapic
                            Product Type: WinNT
                            Product Suite: Terminal Server
                            Languages: ru-RU
                            Default Language: ru-RU
                            System Root: WINDOWS
                            Major Version: 6
                            Minor Version: 1
                            Build: 7601
                            Service Pack Build: 17514
                            Service Pack Level: 1
                            Flags: HomeBasic
                            WIMBoot compatible: no

                            Index: 2
                            Name: Windows 7 HOMEPREMIUM
                            Description: Windows 7 HOMEPREMIUM
                            Display Name: Windows 7 Домашняя расширенная
                            Display Description: Windows 7 Домашняя расширенная
                            Directory Count: 14226
                            File Count: 67569
                            Total Bytes: 12042784908
                            Hard Link Bytes: 4792628161
                            Creation Time: Вс ноя 21 04:39:25 2010 UTC
                            Last Modification Time: Вс ноя 21 13:15:42 2010 UTC
                            Architecture: x86_64
                            Product Name: Microsoft® Windows® Operating System
                            Edition ID: HomePremium
                            Installation Type: Client
                            HAL: acpiapic
                            Product Type: WinNT
                            Product Suite: Terminal Server
                            Languages: ru-RU
                            Default Language: ru-RU
                            System Root: WINDOWS
                            Major Version: 6
                            Minor Version: 1
                            Build: 7601
                            Service Pack Build: 17514
                            Service Pack Level: 1
                            Flags: HomePremium
                            WIMBoot compatible: no

                            Index: 3
                            Name: Windows 7 PROFESSIONAL
                            Description: Windows 7 PROFESSIONAL
                            Display Name: Windows 7 Профессиональная
                            Display Description: Windows 7 Профессиональная
                            Directory Count: 14314
                            File Count: 68104
                            Total Bytes: 11945156754
                            Hard Link Bytes: 4667733545
                            Creation Time: Вс ноя 21 04:39:25 2010 UTC
                            Last Modification Time: Вс ноя 21 13:16:43 2010 UTC
                            Architecture: x86_64
                            Product Name: Microsoft® Windows® Operating System
                            Edition ID: Professional
                            Installation Type: Client
                            HAL: acpiapic
                            Product Type: WinNT
                            Product Suite: Terminal Server
                            Languages: ru-RU
                            Default Language: ru-RU
                            System Root: WINDOWS
                            Major Version: 6
                            Minor Version: 1
                            Build: 7601
                            Service Pack Build: 17514
                            Service Pack Level: 1
                            Flags: Professional
                            WIMBoot compatible: no

                            Index: 4
                            Name: Windows 7 ULTIMATE
                            Description: Windows 7 ULTIMATE
                            Display Name: Windows 7 Максимальная
                            Display Description: Windows 7 Максимальная
                            Directory Count: 14350
                            File Count: 68286
                            Total Bytes: 12107983977
                            Hard Link Bytes: 4828481537
                            Creation Time: Вс ноя 21 04:39:25 2010 UTC
                            Last Modification Time: Вс ноя 21 13:17:22 2010 UTC
                            Architecture: x86_64
                            Product Name: Microsoft® Windows® Operating System
                            Edition ID: Ultimate
                            Installation Type: Client
                            HAL: acpiapic
                            Product Type: WinNT
                            Product Suite: Terminal Server
                            Languages: ru-RU
                            Default Language: ru-RU
                            System Root: WINDOWS
                            Major Version: 6
                            Minor Version: 1
                            Build: 7601
                            Service Pack Build: 17514
                            Service Pack Level: 1
                            Flags: Ultimate
                            WIMBoot compatible: no



                            [maisvendoo@arch-host win7-efi]$ mkdir /tmp/wim
                            [maisvendoo@arch-host win7-efi]$ wimlib-imagex mount ~/iso/sources/install.wim 4 /tmp/wim
                            [maisvendoo@arch-host win7-efi]$ ls /tmp/wim -l
                            итого 0
                            lrwxrwxrwx 1 maisvendoo users 0 июл 14  2009 'Documents and Settings' -> /tmp/wim/Users
                            drwxrwxrwx 1 maisvendoo users 0 июл 14  2009 PerfLogs
                            drwxrwxrwx 1 maisvendoo users 0 июл 14  2009 ProgramData
                            drwxrwxrwx 1 maisvendoo users 0 ноя 21  2010 'Program Files'
                            drwxrwxrwx 1 maisvendoo users 0 июл 14  2009 'Program Files (x86)'
                            drwxrwxrwx 1 maisvendoo users 0 ноя 21  2010 '$Recycle.Bin'
                            drwxrwxrwx 1 maisvendoo users 0 ноя 21  2010 Users
                            drwxrwxrwx 1 maisvendoo users 0 ноя 21  2010 Windows
                            
                            • +1
                              Если вы уже используете командную строку инсталлятора, то wim-образ обычно распаковывается
                              Dism /apply-image /imagefile:install.wim /index:1 /ApplyDir:C:\

                              Загрузчик устанавливается после распаковки
                              c:\Windows\System32\bcdboot C:\Windows /l ru-RU /s F: /F UEFI
                              • 0
                                Загрузчик устанавливается после распаковки

                                Вы неверно меня поняли. Мне как не нужна установка загрузчика средствами инсталлятора.

                                Про DSIM я в курсе
                                • 0
                                  Я кстати так и делал — распаковывал install.wim в C:\newwin под установочным диском через консоль по Shift+F10, а потом грузился с линуксового Live-CD, монтировал том через ntfs-3g и переносил все содержимое в c:\oldwin, а c:\newwin — в корень C:. Атрибуты сохранялись, винда грузилась.
                            • 0
                              Есть ещё wimlib.net
                              Оно вроде корректно поддерживает всё вышеперечисленное.
                              • 0
                                Да, выше уже упоминали о ней
                                • 0
                                  Вроде, должен нормально распаковывать, по крайней мере, интеграция с ntfs-3g заявлена. А сам ntfs-3g поддерживает все атрибуты ntfs, даже сжатие (но нужен ключик для монтирования). Вот здесь есть архив tools.zip, а в нем файлики ntfscp.sh и ntfscp2.sh — ими можно скопировать винду с одного тома на другой со всеми атрибутами. Только осторожнее со вторым файлом — ключи rsync в нем удаляют в целевой папке все файлы, которых нет на исходном томе.
                              • 0
                                Как-то всё слишком сложно. Есть ведь способ проще. EasyBCD.
                                • +2
                                  Есть. Равно как есть Visual BCD, BootICE и прочие редакторы конфигурации bootmgr. Как это помогает против затирания MBR и перезаписи NVRAM штатным инсталлятором win?
                                • –2
                                  Поставил grub4dos настроил и забыл.
                                  • 0
                                    grub4dos не работает с GPT, насколько мне известно
                                    • 0
                                      Загрузочная флешка прикрасно работает в режиме uefi.
                                    • +2
                                      И опять таки — как grub4dos решает проблему с перезаписью MBR?
                                      • 0
                                        Поставил grub4dos настроил меню загрузки какое хочешь и все работает.
                                        С любого диска.
                                        Зачем бороться с BCD, но и там можно все настроить.
                                        У меня грузится Windows 10,Windows 7, Opensuse, flashcd и т.д.
                                        • 0
                                          Поставил grub4dos настроил меню загрузки какое хочешь и все работает.


                                          Ещё раз — grub4dos не работает с разметкой GPT необходимой для запуска Windows на платах с EFI. Как не настраивай. Не верите, смотрите исходники

                                          И ещё раз повторю свой вопрос — как grub4dos позволит избежать перезаписи MBR, происходящей при штатной установке Windows?
                                          • 0
                                            Загрузочная флешка прикрасно работает в режиме uefi.

                                            Не надо путать загрузочную флешку с установленной на HDD системой
                                      • –3
                                        А у меня нет UEFI, и GPT тоже нет. Зато прекрасно работает Win7 + Linux в дуалбуте через Grub2.
                                      • +1
                                        Кстати, если говорить о Windows 10, то ее инсталлятор при разметке диска создает еще и раздел восстановления.

                                        Это тоже несложно сделать вручную. Нужно просто создать еще один раздел (500 Мб, NTFS), на нем создать папку Recovery\WindowsRE\, скопировать туда WinRE.wim (он находится в install.wim в папке Windows\System32\Recovery\) и зарегистрировать при помощи команды вида: C:\Windows\System32\Reagentc /setreimage /path R:\Recovery\WindowsRE /target C:\Windows.

                                        В результате получим работающий Push-button reset. Впрочем, это конечно опционально.
                                        • 0
                                          Спасибо за статью, познавательно.
                                          Может кто-то и напишет аналог bcdedit, ведь драйвера ntfs-3g же написали кому было нужно.

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