Boot from iso

Материал из support.qbpro.ru

Creating a bootable Windows PE ISO

Download the Windows Automated Installation Kit (WAIK) from Microsoft's website. 
Warning: The entire download, KB3AIK_EN.iso, is 1.7GB.
Tip: It may be possible to use httpfs to avoid downloading the entire file. Only around 118MB of it is actually needed.
Make sure you have the fuse, cdrkit, and cabextract packages installed. 
Install wimlib from the Arch User Repository. 
Mount the WAIK ISO. 
# mkdir /media/waik
# mount KB3AIK_EN.iso /media/waik

Use the mkwinpeimg script provided with wimlib to create a bootable Windows PE ISO winpe.iso. See the man page for mkwinpeimg for more information.

$ mkwinpeimg --iso --waik-dir=/media/waik winpe.iso

Unmount the WAIK ISO.

# umount /media/waik

Booting Windows PE

After creating a bootable ISO of Windows PE (winpe.iso) as described in the previous section, you may want to boot Windows PE in the following ways:

In virtual machine 

Run a virtual machine with winpe.iso attached as a CD-ROM. Be sure to give it adequate memory, definitely more than the size of the ISO, since Windows PE runs from memory. For example:

$ qemu -boot d -m 256 -cdrom svmicro.iso
From CD 

Simply burn winpe.iso onto a CD, and you can boot from it. Again: beware that if you do this on your Arch Linux machine, you are placing Microsoft's closed source operating system in control of your computer.

From Network 

Windows PE can be booted from the network using PXELINUX and its MEMDISK module. Install syslinux and tftp-hpa. Copy needed PXELINUX files to the TFTP server root directory.

# cp /usr/lib/syslinux/{pxelinux.0,menu.c32,memdisk} /var/tftpboot

Put winpe.iso in the TFTP server root directory.

  1. mv winpe.iso /var/tftpboot

Create a configuration file for PXELINUX similar to the following:

/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

Start the TFTP server.

  1. rc.d start tftpd

Configure your DHCP server (such as Dhcpd or Dnsmasq) to point to pxelinux.0 as the boot file, with the Linux server's IP address. Beware: if your DHCP server is on a router, it may not be possible to do this without installing custom firmware.

After completing the above steps, you should be able to boot Windows PE from the network. Warning: With the given PXELINUX configuration file, Windows PE will start by default after 5 seconds.

Network boot performance 

TFTP is not designed to be used to transfer large files, such as winpe.iso, which may be 118MB or more. Performance may be improved by using the

gpxelinux.0 
bootloader instead of pxelinux.0 and loading 
winpe.iso using HTTP rather than TFTP. 

Customizing Windows PE

The mkwinpeimg script provided with wimlib supports making modifications to Windows PE using the --start-script or --overlay options. See the manual page for mkwinpeimg for more information.

You may want to do this to add additional Windows applications that you want to run in Windows PE, or to add any additional drivers that Windows PE needs (drivers can be loaded using the drvload command within Windows PE).