Windows PE (Русский)
Windows PE — это легковесная версия Windows, предназначенная для установки Windows Vista и более поздних версий, а также для обслуживания системы. Она запускается полностью в оперативной памяти и может быть загружена по сети. Эта страница описывает создание настроенного образа Windows PE и, опционально, публикацию его в сети с использованием только свободного программного обеспечения на компьютере с Arch Linux вместе с Microsoft Windows Automated Installation Kit (WAIK). WAIK может быть загружена бесплатно и требуется только для извлечения файла boot.wim
, который содержит исходную копию 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
.
Различные версии установочных образов Windows содержат различные версии Windows PE. Для соотнесения версий Windows и Windows PE обратитесь к Википедии.
Подготовка загрузочного 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-файлы.
/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 по сети.
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.