Windows PE (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
Windows PE
. Дата последней синхронизации: 09 мая 2022. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
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
.
Вариант В
с уменьшенным дистрибутивом:
Hiren's BootCD
включает в себя Windows PE, весящий примерно вдвое меньше (~2.8GB) полного образа Windows 10. Это полнофункциональная среда, включающая в себя Internet Explorer, который может быть полезен для поиска справки по командам
bcdedit
или
bootrec
для восстановления загрузчика Windows.
Важно
Удостоверьтесь, что вы выбрали правильную целевую архитектуру: либо 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
Вариант В
: в качестве источника выступает образ Hiren's BootCD:
Hiren's BootCD уже является загрузочным и нуждается лишь в записи на USB-накопитель.
dd bs=4M if=./HBCD_PE_x64.iso of=/dev/sdX status=progress && sync
Удостоверьтесь, что USB-накопитель использует таблицу разделов GPT как описано ниже.
Подготовка загрузочной флешки 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 и вы готовы к загрузке.
Через сеть
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