Windows PE (Русский) - ArchWiki

# Windows PE (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Windows PE. Дата последней синхронизации: 29 мая 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Windows PE — это легковесная версия Windows, предназначенная для установки Windows Vista и более поздних версий, а также для обслуживания системы. Она запускается полностью в оперативной памяти и может быть загружена по сети. Эта страница описывает создание настроенного образа Windows PE и, опционально, публикацию его в сети с использованием только свободного программного обеспечения на компьютере с Arch Linux вместе с Microsoft Windows Automated Installation Kit (WAIK). WAIK может быть загружена бесплатно и требуется только для извлечения файла `boot.wim`, который содержит исходную копию Windows PE вместе с некоторыми загрузочными файлами.

Важно: Загружая Windows Automated Installation Kit, вы попадаете под ограничения лицензии, которая не позволяет, среди прочего, использовать Windows PE как операционную систему общего назначения.

## Варианты использования

Обычно, образ Windows PE может быть создан только с использованием Windows Automated Installation Kit (WAIK) на компьютере с Windows. Тем не менее, существует возможность создания и модифицирования образов Windows PE используя компьютер с (Arch) Linux, и, опционально, публикации его в сети для загрузки с помощью PXE. Компьютер с Windows не требуется. Вы можете сделать это если:

- вам необходимо установить Windows по сети или загрузить Windows PE по сети для системного администрирования используя Arch Linux-сервер. Это может быть связано с тем, что у вас нет Windows-сервера, или вы предпочитаете использовать сервер на Linux по причине более высокой безопасности и настраиваемости, или вы уже используете сервер на Linux для других целей.
- вам необходимо запустить Windows-окружение для запуска программы для Win32, у вас нет доступа к компьютеру с Windows, и вы не желаете использовать Wine или программа работает некорректно с Wine.

## Создание загрузочного образа Windows PE

Установите wimlib.

### Настройка образа Windows PE

Для загрузки в командную строку создайте стартовый скрипт, который может быть включён в загрузочный образ следующим образом:

    start.cmd

    cmd.exe
    pause

Скрипт `mkwinpeimg` поддерживает внесение дальнейших модификаций в Windows PE при использовании опции `--overlay`. Смотрите страницу руководства для `mkwinpeimg` чтобы получить больше информации. При желании вы можете добавить Windows-приложения, хоторые хотите запускать в Windows PE или добавить дополнительные драйвера которые необходимы Windows PE (драйвера могут быть загружены при помощи команды `drvload` в Windows PE).

### Получение Windows ISO или WAIK-образа

`mkwinpeimg` позволяет создать загрузочный Windows PE ISO из нескольких источников. Для начала необходимо получить один из вариантов:

- Вариант А для Windows 7 и более поздних: установочный Windows ISO / образ диска. Он может быть загружен бесплатно на сайте Microsoft: Windows 10 ISO. Это наиболее простой вариант.
- Вариант Б: образ Windows Automated Installation Kit (WAIK). Вплоть до Windows Vista/7 он может быть получен как самостоятельный дистрибутив WAIK от Microsoft. Начиная с Windows 8 WAIK был переименован в WADK и распространяется через `adksetup.exe`.

Важно: Удостоверьтесь, что вы выбрали правильную целевую архитектуру: либо x86 (32-bit), либо x64 (64-bit). Совместимость программ для 32-bit на Windows x64 в основном хорошая, но ваш опыт использования может отличаться.

Различные версии установочных образов Windows содержат различные версии Windows PE. Для соотнесения версий Windows и Windows PE обратитесь к Википедии.

Совет: Возможно использовать httpfs, чтобы избежать загрузки всего образа. Windows PE занимает примерно 118MB от него.

### Подготовка загрузочного ISO Windows PE

Как только вы получили установочный образ Windows или образ WAIK/WADK, необходимо примонтировать его. Предполагая, что образ называется `winimg.iso`:

    # mkdir /media/winimg
    # mount winimg.iso /media/winimg

Используйте скрипт `mkwinpeimg`, поставляемый с wimlib для создания загрузочного Windows PE ISO `winpe.iso`, вместе со стартовыми скриптами из предыдущей секции:

Вариант А: в качестве источника выступает установочный образ Windows:

    $ mkwinpeimg --iso --windows-dir=/media/winimg --start-script=start.cmd winpe.iso

Вариант Б: в качестве источника выступает образ WAIK/WADK:

    $ mkwinpeimg --iso --waik-dir=/media/winimg --start-script=start.cmd winpe.iso

Смотрите mkwinpeimg(1) для дополнительной информации, включающей опцию `--overlay` для копирования файлов в образ.

Демонтируйте исходный ISO:

    # umount /media/winimg

### Подготовка загрузочной флешки Windows PE для систем с UEFI

К сожалению, в версии 1.13.1-1 wimlib, `mkwinpeimg` не может создавать загрузочные UEFI-системы. Но мы легко можем создать такую UEFI-систему: установочный ISO Windows 10 уже содержит необходимые загрузочные UEFI-файлы.

Важно: Удостоверьтесь, что вы выбрали соответствующую архитектуру вашего ISO-образа Windows. Это руководство было протестировано только с x64, т.е. он загружается с использованием `/efi/boot/bootx64.efi`. Неизвестно, будет ли UEFI-система загружать образ Windows x86. Пожалуйста, обновите это руководство, если можете протестировать.

На USB-носителе создайте таблицу разметки GPT, включающую единственный раздел FAT32 с типом "EFI System". Это может быть выполнено в интерактивном режиме с `cfdisk` или через fdisk:

    # fdisk /dev/sdX
    (fdisk) g  # Создать новую таблицу разделов GPT
    (fdisk) n  # Создать новый раздел, оставив все параметры по умолчанию
    (fdisk) t  # Сменить тип раздела
    (fdisk) 1  # Тип 1 это "EFI System Partition"
    (fdisk) w  # Сохранить и выйти

Затем отформатируйте раздел в FAT32:

    # mkfs.vfat /dev/sdX1

Примонтируйте файл `winpe.iso`, созданный `mkwinpeimg`, примонтируйте свой USB-носитель и скопируйте на него данные:

    # mkdir /media/{winpe,usb}
    # mount winpe.iso /media/winpe
    # mount /dev/sdX1 /media/usb
    # cp -r /media/winpe/* /media/usb/

Наконец, примонтируйте оригинальный Windows ISO и скопируйте загрузочные файлы в `efi`:

    # mount winimg.iso /media/winimg
    # cp -r /media/winimg/efi /media/usb/

Вы можете отмонтировать все ISO и USB-носитель, который теперь готов к загрузке.

Это правда: нет нужды в магии syslinux или grub. Прошивка UEFI должна обнаружить раздел FAT и загрузить `/efi/boot/bootx64.efi`, предоставленный Windows для загрузки с USB-носителя.

## Загрузка Windows PE

После создания загрузочного ISO Windows PE (`winpe.iso`), как описано в предыдущей секции, вы можете пожелать загрузить Windows PE следующими способами:

### В виртуальной машине

Запустите виртуальную машину с `winpe.iso` подключённом как CD-ROM. Удостоверьтесь, что выделили достаточно оперативной памяти — определённо больше, чем размер ISO — поскольку Windows PE запускается из оперативной памяти. Смотрите Category:Hypervisors для списка доступного ПО для виртуализации.

### С USB-носителя

Если у вас есть подготовленный согласно руководству выше USB-носитель для UEFI-систем, должна просто произойти загрузка. Может потребоваться некоторое время на загрузку (от десяти да двадцати секунд в среднем, в зависимости от вашего USB-носителя) так как загрузчик копирует некоторые/все данные в оперативную память.

### С компакт-диска

Просто запишите `winpe.iso` на CD и вы готовы к загрузке.

### Через сеть

This article or section is a candidate for merging with PXE.

Notes: The PXE article already describes most of this stuff, no need for duplication. Also rc.d? Just make sure that configuration file is not lost if it's necessary for windows. Besides that everything is dupe. (Discuss in Talk:Windows PE)

Windows PE может быть загружена по сети с использованием PXELINUX и его модуля MEMDISK на BIOS-системах. Для UEFI-систем можно воспользоваться wimboot и iPXE.

Установите syslinux и tftp-hpa.

Скопируйте необходимые файлы PXELINUX в корневой каталог TFTP-сервера.

    # rsync -aq /usr/lib/syslinux/bios/ /var/tftpboot/

Поместите `winpe.iso` в корневой каталог TFTP-сервера.

    # mv winpe.iso /var/tftpboot

Создайте файл конфигурации для PXELINUX подобный следующему:

    /var/tftpboot/pxelinux.cfg/default

    UI         menu.c32
    MENU TITLE Network Boot
    TIMEOUT    50

    LABEL      winpe
    MENU LABEL Boot Windows PE from network
    KERNEL     /memdisk
    INITRD     winpe.iso
    APPEND     iso raw

    LABEL      localboot
    MENU LABEL Boot from local disk
    LOCALBOOT  0

Запустите TFTP-сервер.

Настройте ваш DHCP-сервер (такой как Dhcpd или Dnsmasq) так, чтобы он указывал на `pxelinux.0` как на загрузочный файл с IP-адресом Linux-сервера. Будьте внимательны: если ваш DHCP-сервер находится на роутере, это может быть невозможным без установки кастомной прошивки.

После завершения предыдущих шагов, вы можете загрузить Windows PE по сети.

Примечание: С приведённым фалом конфигурации PXELINUX Windows PE будет запускаться по умолчанию через пять секунд.
Совет: TFTP не рассчитан на передачу больших файлов, таких как `winpe.iso`, объём которого может быть более 118MB и загружаться около тридцати секунд. Скорость может быть повышена при помощи загрузчика `gpxelinux.0` вместо `pxelinux.0` и получением `winpe.iso` по HTTP, а не по TFTP.

## Установка Windows через Windows PE

После загрузки в Windows PE вы можете установить Windows с установочного носителя.

Установочным носителем может быть общий сетевой ресурс (Samba). Смотрите Samba для настройки Samba-сервера на другом устройстве в LAN. Для того, чтобы предоставить общий доступ у установочному образу `/media/winimg`, добавьте следующее определение к `/etc/samba/smb.conf`:

    /etc/samba/smb.conf

    [REMINST]
    browsable = true
    read only = no
    guest ok = yes
    path = /media/winimg

После загрузки в окружение командной строки Windows PE запустите следующую команду для инициализации сетевого интерфейса, получения IP Samba-сервера (при условии, что Windows PE загружается через PXE с устройства на котором запущены DHCP, TFTP и Samba-сервер, IP сервера будет соответствовать IP шлюза), монтирования общего ресурса и запуска графического установщика:

     > wpeinit
     > ipconfig
     > net use I: \\IP.ADDRESS.OF.SAMBA.SERVER\REMINST
     > I:\setup.exe

## Решение проблем

### System error 58 has occurred. The specified server cannot perform the requested operation

Если при использовании команды `net use` вы получили следующую ошибку:

    System error 58 has occurred.

    The specified server cannot perform the requested operation.

1. Удостоверьтесь, что вы случайно не отмонтировали каталог `/media/winimg`.

2. Добавьте `map to guest` в `/etc/samba/smb.conf`. Добавьте следующее в начало файла:

    /etc/samba/smb.conf

    [global]
    map to guest = Bad User
    ...

3. Перезапустите `smbd.service`.

4. Укажите любой логин/пароль для команды `net use`:

    net use I: \\IP.ADDRESS.OF.SAMBA.SERVER\REMINST /user:user pass

Это происходит потому, что Windows 10 подключается к анонимным общедоступным ресурсам, проверяя имя пользователя и пароль для проверки возможности входа в систему, и, если оно получено, то разрешает анонимное соединение. По-видимому, часть, скрывающая это от пользователя, не вошла в сборку PE.

## См. также

- Microsoft's documentation for Windows PE
- Another article about making Windows PE images on Linux
- A guide with scripts for unattended installation of Windows 7 from Linux using Windows PE
- Windows 10 PE Unable to map network drive anonymously

Category:

- System administration (Русский)

Hidden category:

- Pages or sections flagged with Template:Merge