Установка Window7(64Bit) на GPT диск, на материнках с EFI, без USB/DVD

    Сразу нужно уточнить, что речь пойдёт про установку Win рядом с linux дистрибутивом. То есть на компьютере должен стоять grub-efi.
    Установка возможна только 64 битной Windows системы.

    Так как у нас EFI плата, значит есть хотя бы один ФАТ32 раздел на диске.
    Так же нам нужно создать раздел, куда мы распакуем образ Win.

    /dev/sda1 — EFI раздел
    /dev/sda3 — Раздел куда мы распакуем образ, Фат32 минимум 5гб(ну или сколько весит ваш образ)

    Копируем образ на диск

    Далее подготовительное полотенце:
    sudo mkdir /mnt/cdrom
    sudo mkdir /mnt/isoExtr
    sudo mount -o loop ~/ISO/win7_sp1_64.iso /mnt/cdrom/
    sudo mount /dev/sda3 /mnt/isoExtr/
    cd /mnt/cdrom/
    #Копируем образ на раздел
    sudo cp -Rv ./* ../isoExtr/
    cd /tmp
    sudo umount /mnt/cdrom
    


    Распакуем EFI загрузчик Win

    Для этого нам понадобится 7z архиватор, загрузчик хранится в файле sources/install.wim (Windows/Boot/EFI/bootmgfw.efi)
    sudo apt-get install p7zip-full
    cd /tmp
    7z x /mnt/isoExtr/sources/install.wim Windows/Boot/EFI/bootmgfw.efi
    

    Скопируем загрузчик в efi нашего распакованного образа
    sudo cp /tmp/Windows/Boot/EFI/bootmgfw.efi /mnt/isoExtr/efi/microsoft/boot/
    


    Узнаем UUID дисков

    ls -l /dev/disk/by-uuid/ 
    

    В моём случае это:
    lrwxrwxrwx 1 root root 10 Nov 28 22:29 A18B-57CD -> ../../sda1
    lrwxrwxrwx 1 root root 10 Nov 28 22:29 CAA9-A38B -> ../../sda3


    Создадим меню в Grub

    Добавить в конец /etc/grub.d/40_custom
    sudo nano /etc/grub.d/40_custom
    


    menuentry «Microsoft Windows Start» --class windows --class os {
    insmod usbms
    insmod part_gpt
    insmod part_msdos
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root A18B-57CD # < — CHANGE THIS TO YOUR UUID
    chainloader (${root})/efi/microsoft/BOOT/bootmgfw.efi
    }

    menuentry «Microsoft Windows x86_64 UEFI-GPT Setup» --class windows --class os {
    insmod usbms
    insmod part_gpt
    insmod part_msdos
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root CAA9-A38B # < — CHANGE THIS TO YOUR UUID
    chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
    }


    sudo chmod +x /etc/grub.d/40_custom
    sudo update-grub
    cd ~
    sudo umount /mnt/isoExtr
    


    Установка Windows

    Перезагружаемся
    sudo reboot
    


    Выбираем в грабе «Microsoft Windows x86_64 UEFI-GPT Setup».
    Ставим винду на нужный раздел, в процессе установки она попросит перегрузиться.
    Видимо, в этот момент она прописывает свой загрузчик(/efi/microsoft/BOOT/bootmgfw.efi) в EFI раздел, при этом не нарушает работу grub-efi
    В грабе выбираем «Microsoft Windows Start», система доустановится.
    Установка завершена.
    Далее, когда вам понадобится винда, выбираете в грабе пункт «Microsoft Windows Start».

    Один из недостатков этого метода в том, что нужно разворачивать образ на диск, хотя было бы проще создать новый образ, в котором был бы нужный нам загрузчик, но все мои попытки сделать это не удались.
    Достоинством является то, что загрузчик не нужно чинить после установки винды.
    П.С.: Если кто-то знает как запустить в grub efi загрузчик из iso, я буду очень благодарен за предоставленную информацию, так как я не смог запустить EFI загрузчик из любых образов linux.
    П.С.2: Мне удалось поставить Win7(64bit) дома на живом компе, правда, у меня было два физических диска. В VirtualBox я не смог повторить, так как падал EFI загрузчик винды, выдавал мифические «BlXmiInitialize failed 0xc000009a». Буду рад если кто-то повторит на живой машине, так как еще раз проходить ад-установки винды я не хочу.
    • +2
    • 55,4k
    • 2
    Поделиться публикацией

    Похожие публикации

    Комментарии 2

      +1
      >Если кто-то знает как запустить в grub efi загрузчик из iso
      (U)EFI Shell запустить и посмотреть, видит ли он CD-ROM как диск. Если не видит — то никак (нет поддержки CDFS со стороны EFI). Если видит — то взять и запустить EFI\BOOT\BOOTX764.EFI или как оно там называется.
        +1
        >> Мне удалось поставить Win7(64bit) дома на живом компе, правда, у меня было два физических диска.
        Ну а мне «удалось» с флешки… В чем изюминка поста? Все многократно обсуждалось в Сети. Вы бы добавили информации побольше о всяких нюансах, что-ли — был бы подробный FAQ на русском.

        Кстати, коли Вы используете EFI, то совсем необязательно было в GRUB вносить лишний раздел с инсталлятором Windows. Можно было бы зарегистрировать его в EFI через efibootmgr. Это если при перезагрузке само не обнаружится.

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

        Самое читаемое