complete start over...

This commit is contained in:
root
2023-04-15 00:23:32 +02:00
parent ce15b23cbd
commit 052c402829
33 changed files with 0 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
temp/
non-free/
+3
View File
@@ -0,0 +1,3 @@
# PXE Boot-Server
This Project aims to provide a set of scripts to build a modular PXE TFTP Server and is under heavy construction.
+34
View File
@@ -0,0 +1,34 @@
#!/bin/sh
# Load Global Settings
. ./settings.sh
# create directories
mkdir -p ${TFTP}
mkdir -p ${TFTP}/pxelinux.cfg
# copy Files from the Resource-Dir to the correct places:
cp ./resources/lighttpd.conf /etc/lighttpd/lighttpd.conf
cp ./resources/exports /etc/exports
if ! [ -e ${TFTP}/pxelinux.cfg/default ]; then
cp ./resources/default-minimal ${TFTP}/pxelinux.cfg/default
fi
cp ./resources/splash.png ${TFTP}/
cp -a /usr/lib/syslinux/modules/bios ${TFTP}/
# Link needed Files from installed Debian Packages to the TFTP-Root:
ln /usr/lib/PXELINUX/pxelinux.0 ${TFTP}/
ln /boot/ipxe.lkrn ${TFTP}/
ln /usr/lib/syslinux/memdisk ${TFTP}/
ln ${TFTP}/bios/ldlinux.c32 ${TFTP}/
ln ${TFTP}/pxelinux.cfg/default ${TFTP}/default -s
# set file access
chown ${USERID}:${GROUPID} . -R
chmod a+rw . -R
chown ${USERID}:${GROUPID} ${TFTP} -R
chmod a+rwx ${TFTP} -R
# restart services
systemctl restart tftpd-hpa lighttpd nfs-kernel-server
+51
View File
@@ -0,0 +1,51 @@
#!/bin/sh
. ./settings.sh
# Download & Install Debian Packages
apt update
apt install -y samba genisoimage wimtools cabextract
# configure Packages
cp ./resources/smb.conf /etc/samba/
# setup dirs:
mkdir -p ./non-free/windows
mkdir -p ./temp/waik
# restart services
systemctl restart smbd
# Download Windows Stuff:
WAIKURL="https://download.microsoft.com/download/8/E/9/8E9BBC64-E6F8-457C-9B8D-F6C9A16E6D6A/KB3AIK_EN.iso"
FILENAME="./temp/KB3AIK_EN.iso"
if ! [ -e $FILENAME ]; then
wget -nc -O $FILENAME $WAIKURL
fi
if [ -e $FILENAME ]; then
7z x -aos -o./temp/waik $FILENAME
fi
# parse winpestart.bat
cat ./resources/winpestart.bat | sed -e "s/__NFSSERVERIP__/${NFSSERVERIP}/g" > ./temp/winpestart.bat
# Create winpe.iso
if [ -e ./non-free/windows/winpe.iso ]; then
rm ./non-free/windows/winpe.iso
fi
if [ -e ./temp/waik/WinPE.cab ]; then
mkwinpeimg --iso --arch=amd64 --waik-dir=./temp/waik --start-script=./temp/winpestart.bat ./non-free/windows/winpe.iso
#mkwinpeimg --iso --arch=amd64 --waik-dir=./temp/waik ./non-free/windows/winpe.iso
fi
# download Deployment Toolkit
DLURL="https://download.microsoft.com/download/3/3/9/339BE62D-B4B8-4956-B58D-73C4685FC492/MicrosoftDeploymentToolkit_x64.msi"
FILENAME="./non-free/windows/MicrosoftDeploymentToolkit_x64.msi"
if ! [ -e $FILENAME ]; then
wget -nc -O $FILENAME $DLURL
fi
# copy files to tftp server
cp -av ./non-free/windows ${TFTP}/non-free/
+96
View File
@@ -0,0 +1,96 @@
#!/bin/sh
. ./settings.sh
WGET="-nv -nc"
Z7="-aos"
if ! [ -e ./temp ]; then
mkdir -p ./temp
fi
echo "--- FreeDOS -- ---------------------------------------------------------------------"
echo "------------------------------------------------------------------------------------"
CZURL="https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.3/official/FD13-LiveCD.zip"
FILENAME=fdfullcd.zip
if ! [ -e ./temp/$FILENAME ]; then
echo "Downloading FreeDOS..."
wget $WGET -O ./temp/$FILENAME $CZURL
fi
if [ -e ./temp/$FILENAME ]; then
echo "Preparing FreeDOS..."
7z x $Z7 -o${TFTP}/free ./temp/${FILENAME}
fi
echo "--- Clonezilla ---------------------------------------------------------------------"
echo "------------------------------------------------------------------------------------"
CZURL="https://sourceforge.net/projects/clonezilla/files/clonezilla_live_stable/3.0.3-22/clonezilla-live-3.0.3-22-amd64.iso/download"
FILENAME=clonezilla-64bit.iso
if ! [ -e ./temp/$FILENAME ]; then
echo "Downloading Clonezilla..."
wget $WGET -O ./temp/$FILENAME $CZURL
fi
if [ -e ./temp/$FILENAME ]; then
echo "Preparing Clonezilla..."
mkdir -p ${TFTP}/free/cz
7z x $Z7 -o${TFTP}/free/cz ./temp/${FILENAME}
fi
echo "--- Rescuezilla --------------------------------------------------------------------"
echo "------------------------------------------------------------------------------------"
RZURL="https://github.com/rescuezilla/rescuezilla/releases/download/2.4.2/rescuezilla-2.4.2-64bit.jammy.iso"
FILENAME=rescuezilla-64bit.iso
if ! [ -e ./temp/$FILENAME ]; then
echo "Downloading Rescuezilla..."
wget $WGET -O ./temp/$FILENAME $RZURL
fi
if [ -e ./temp/$FILENAME ]; then
echo "Preparing Rescuezilla..."
mkdir -p ${TFTP}/free/rz
7z x $Z7 -o${TFTP}/free/rz ./temp/${FILENAME}
fi
echo "--- Knoppix V9.1 ------------------------------------------------------------------"
echo "------------------------------------------------------------------------------------"
KNX9URL="http://ftp.uni-kl.de/pub/linux/knoppix-dvd/KNOPPIX_V9.1DVD-2021-01-25-DE.iso"
FILENAME=KNOPPIX_V9.1DVD.iso
if ! [ -e ./temp/$FILENAME ]; then
echo "Downloading Knoppix..."
wget $WGET -O ./temp/$FILENAME $KNX9URL
fi
if [ -e ./temp/$FILENAME ]; then
echo "Preparing Knoppix..."
mkdir -p ${TFTP}/free/knx
7z x $Z7 -o${TFTP}/free/knx ./temp/${FILENAME}
cp ./resources/knx-miniroot.gz ${TFTP}/free/knx/boot/isolinux/miniroot.gz
fi
echo "--- Debian Installer ---------------------------------------------------------------"
echo "------------------------------------------------------------------------------------"
DISTS="bullseye bookworm"
ARCHS="amd64 i386"
for DIST in $DISTS;
do
for ARCH in ${ARCHS};
do
DEBURL="https://deb.debian.org/debian/dists/${DIST}/main/installer-${ARCH}/current/images/netboot/netboot.tar.gz"
FILENAME="netboot-${DIST}-${ARCH}.tar.gz"
if ! [ -e ./temp/${FILENAME} ]; then
echo "Downloading Debian installer ${DIST}/${ARCH}..."
wget $WGET -O ./temp/${FILENAME} $DEBURL
fi
if [ -e ./temp/${FILENAME} ]; then
echo "Create directory in ${TFTP}/free/deb-${DIST}..."
mkdir -p ${TFTP}/free/deb-${DIST}
echo "Unpacking files..."
tar xfzC ./temp/${FILENAME} ${TFTP}/free/deb-${DIST}
fi
done
done
./configure-debian-system.sh
+6
View File
@@ -0,0 +1,6 @@
#!/bin/sh
. ./settings.sh
# copy local non-free directory to the tftp server:
cp -av ./non-free ${TFTP}/
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+535
View File
@@ -0,0 +1,535 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
iPXE - open source boot firmware [wimboot]
</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="wimboot"/>
<link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="iPXE - open source boot firmware"/>
<link rel="start" href="/"/>
<link rel="contents" href="/wimboot?do=index" title="Sitemap"/>
<link rel="manifest" href="/lib/exe/manifest.php"/>
<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/feed.php"/>
<link rel="alternate" type="application/rss+xml" title="Current namespace" href="/feed.php?mode=list&amp;ns="/>
<link rel="alternate" type="text/html" title="Plain HTML" href="/_export/xhtml/wimboot"/>
<link rel="alternate" type="text/plain" title="Wiki Markup" href="/_export/raw/wimboot"/>
<link rel="canonical" href="https://ipxe.org/wimboot"/>
<link rel="stylesheet" type="text/css" href="/lib/exe/css.php?t=doogiestpl&amp;tseed=c353b386e7712527745f967265a28687"/>
<!--[if gte IE 9]><!-->
<script type="text/javascript">/*<![CDATA[*/var NS='';var JSINFO = {"id":"wimboot","namespace":"","ACT":"show","useHeadingNavigation":0,"useHeadingContent":0};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="/lib/exe/jquery.php?tseed=23f888679b4f1dc26eef34902aca964f"></script>
<script type="text/javascript" charset="utf-8" src="/lib/exe/js.php?t=doogiestpl&amp;tseed=c353b386e7712527745f967265a28687"></script>
<!--<![endif]-->
<link rel="shortcut icon" href="/lib/tpl/doogiestpl/images/favicon.ico" />
<link rel="apple-touch-icon" href="/lib/tpl/doogiestpl/images/apple-touch-icon.png" />
</head>
<body>
<div class="dokuwiki ">
<!-- login state -->
<div class="user">
</div>
<!-- breadcrumbs -->
<div class="clearer"></div>
<div class="stylehead">
<div class="header">
<div class="logo">
<a href="/start" name="dokuwiki__top" id="dokuwiki__top" accesskey="h" title="[ALT+H]">iPXE - open source boot firmware</a> </div>
<div class="tools">
<div class="pagename">
<!-- mcb30 - removed backlinks and replaced with logo -->
<a href="/start" name="dokuwiki__logo" id="dokuwiki__logo"><img src="/_media/logos/ipxe-small.png" width="159" height="105" alt="iPXE logo" /></a> </div>
</div>
<div class="clearer"></div>
<div class="tabnav" id="tab__nav">
<ul>
<li class="level1"><div class="li"> <a href="/start" class="wikilink1" title="start">Home</a></div>
</li>
<li class="level1"><div class="li"> <span class="curid"><a href="/download" class="wikilink1" title="download">Download</a></span></div>
</li>
<li class="level1"><div class="li"> <a href="/pics" class="wikilink1" title="pics">Screenshots</a></div>
</li>
<li class="level1"><div class="li"> <a href="/docs" class="wikilink1" title="docs">Documentation</a></div>
</li>
<li class="level1"><div class="li"> <a href="/faq" class="wikilink1" title="faq">FAQ</a></div>
</li>
<li class="level1"><div class="li"> <a href="/contact" class="wikilink1" title="contact">Contact</a></div>
</li>
</ul>
</div>
<div class="clearer"></div>
</div>
</div>
<div class="page">
<!-- ......... wikipage start ......... -->
<!-- TOC START -->
<div id="dw__toc" class="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#advantages">Advantages</a></div></li>
<li class="level1"><div class="li"><a href="#download">Download</a></div></li>
<li class="level1"><div class="li"><a href="#getting_started">Getting started</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#extract_the_windows_boot_files">Extract the Windows boot files</a></div></li>
<li class="level2"><div class="li"><a href="#download_wimboot">Download wimboot</a></div></li>
<li class="level2"><div class="li"><a href="#create_the_ipxe_script">Create the iPXE script</a></div></li>
<li class="level2"><div class="li"><a href="#boot">Boot</a></div></li>
<li class="level2"><div class="li"><a href="#next_steps">Next steps</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#licence">Licence</a></div></li>
<li class="level1"><div class="li"><a href="#sponsors">Sponsors</a></div></li>
<li class="level1"><div class="li"><a href="#advanced_topics">Advanced topics</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#multi-image_wim_files">Multi-image WIM files</a></div></li>
<li class="level2"><div class="li"><a href="#injected_files">Injected files</a></div></li>
<li class="level2"><div class="li"><a href="#custom_boot_manager">Custom boot manager</a></div></li>
<li class="level2"><div class="li"><a href="#disabling_automatic_bcd_modifications">Disabling automatic BCD modifications</a></div></li>
<li class="level2"><div class="li"><a href="#disabling_debug_messages">Disabling debug messages</a></div></li>
<li class="level2"><div class="li"><a href="#displaying_graphical_boot_messages">Displaying graphical boot messages</a></div></li>
<li class="level2"><div class="li"><a href="#disabling_paging">Disabling paging</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#internals">Internals</a></div></li>
<li class="level1"><div class="li"><a href="#troubleshooting">Troubleshooting</a></div></li>
</ul>
</div>
</div>
<!-- TOC END -->
<h1 id="wimboot">wimboot</h1>
<div class="level1">
<p>
<code>wimboot</code> is a boot loader for Windows Imaging Format (<code>.wim</code>) files. It enables you to boot into a <a href="https://en.wikipedia.org/wiki/Windows_Preinstallation_Environment" class="urlextern" title="https://en.wikipedia.org/wiki/Windows_Preinstallation_Environment">Windows PE (WinPE)</a> deployment or recovery environment.
</p>
<p>
You can use <code>wimboot</code> with <a href="/start" class="wikilink1" title="start">iPXE</a> to <a href="/howto/winpe" class="wikilink1" title="howto:winpe">boot Windows PE via HTTP</a>. With a Gigabit Ethernet network, a typical WinPE image should download in just a few seconds.
</p>
</div>
<h2 id="advantages">Advantages</h2>
<div class="level2">
<p>
<a href="/_detail/clipart/lightbulb.png?id=wimboot" class="media" title="clipart:lightbulb.png"><img src="/_media/clipart/lightbulb.png?w=180&amp;h=200&amp;tok=8cacff" class="mediaright" title="A light bulb" alt="A light bulb" width="180" height="200" /></a>
</p>
</div>
<h5 id="speed">Speed</h5>
<div class="level5">
<p>
<code>wimboot</code> can download images at the full speed supported by your network, since it can use <abbr title="Hyper Text Transfer Protocol">HTTP</abbr> rather than TFTP.
</p>
</div>
<h5 id="efficiency">Efficiency</h5>
<div class="level5">
<p>
<code>wimboot</code> allows Windows to reuse the memory that was used to hold the RAM disk image; there is no wasted memory.
</p>
</div>
<h5 id="ease_of_use">Ease of use</h5>
<div class="level5">
<p>
<code>wimboot</code> works directly with <code>.wim</code> image files; there is no need to wrap your <code>.wim</code> into an <abbr title="International Organization for Standardization">ISO</abbr> or FAT filesystem image.
</p>
</div>
<h5 id="biosuefi_compatibility">BIOS/UEFI compatibility</h5>
<div class="level5">
<p>
<code>wimboot</code> allows you to use a single configuration and set of files to boot under both BIOS and UEFI environments.
</p>
</div>
<h2 id="download">Download</h2>
<div class="level2">
<p>
You can download the latest version of the <code>wimboot</code> binary from <a href="https://github.com/ipxe/wimboot/releases/latest/download/wimboot" class="urlextern" title="https://github.com/ipxe/wimboot/releases/latest/download/wimboot">https://github.com/ipxe/wimboot/releases/latest/download/wimboot</a>. This is a hybrid binary that will work on both BIOS and 64-bit UEFI systems (including UEFI systems with Secure Boot enabled).
</p>
<p>
You can also download alternative binaries (e.g. for 32-bit UEFI systems) from <a href="https://github.com/ipxe/wimboot/releases/latest" class="urlextern" title="https://github.com/ipxe/wimboot/releases/latest">https://github.com/ipxe/wimboot/releases/latest</a>.
</p>
<p>
Older versions are available from <a href="https://github.com/ipxe/wimboot/releases" class="urlextern" title="https://github.com/ipxe/wimboot/releases">https://github.com/ipxe/wimboot/releases</a>.
</p>
<p>
The source code is maintained in a <code>git</code> repository at <a href="https://github.com/ipxe/wimboot" class="urlextern" title="https://github.com/ipxe/wimboot">https://github.com/ipxe/wimboot</a>.
</p>
</div>
<h2 id="getting_started">Getting started</h2>
<div class="level2">
<p>
If you have a Windows installation DVD-ROM (Vista, Server 2008, or more recent), and a web server (such as Apache or <abbr title="Internet Information Services">IIS</abbr>), then you have everything you need to start using <code>wimboot</code>.
</p>
</div>
<h3 id="extract_the_windows_boot_files">Extract the Windows boot files</h3>
<div class="level3">
<p>
<a href="/_detail/clipart/cdrom.jpeg?id=wimboot" class="media" title="clipart:cdrom.jpeg"><img src="/_media/clipart/cdrom.jpeg?w=150&amp;h=150&amp;tok=2b33e2" class="mediaright" title="A CD-ROM" alt="A CD-ROM" width="150" height="150" /></a>
</p>
<p>
Copy the contents of the Windows installation DVD-ROM to a directory on your web server (e.g. <code>/var/www/win7</code> for Apache, or <code>C:\inetpub\wwwroot\win7</code> for <abbr title="Internet Information Services">IIS</abbr>).
</p>
<p>
If you do not have enough disk space to copy the entire contents of the DVD-ROM, then you may copy only the following files:
</p>
<pre class="code"> /boot/bcd
/boot/boot.sdi
/sources/boot.wim</pre>
</div>
<h3 id="download_wimboot">Download wimboot</h3>
<div class="level3">
<p>
Download the <a href="https://github.com/ipxe/wimboot/releases/latest/download/wimboot" class="urlextern" title="https://github.com/ipxe/wimboot/releases/latest/download/wimboot">latest version of wimboot</a> and save it to the same directory on your web server.
</p>
</div>
<h3 id="create_the_ipxe_script">Create the iPXE script</h3>
<div class="level3">
<p>
Create a text file <code>boot.ipxe</code> in the same directory on your web server, containing:
</p>
<pre class="code"> #!ipxe
kernel wimboot
initrd boot/bcd BCD
initrd boot/boot.sdi boot.sdi
initrd sources/boot.wim boot.wim
boot</pre>
</div>
<h3 id="boot">Boot</h3>
<div class="level3">
<p>
Boot using <a href="/start" class="wikilink1" title="start">iPXE</a> from the <abbr title="Uniform Resource Locator">URL</abbr> of your iPXE script, e.g. <code>http://my.web.server/win7/boot.ipxe</code>. You should see iPXE download your Windows boot files via <abbr title="Hyper Text Transfer Protocol">HTTP</abbr> and boot into the Windows installer:
</p>
<p>
<a href="/_detail/screenshots/wimboot.png?id=wimboot" class="media" title="screenshots:wimboot.png"><img src="/_media/screenshots/wimboot.png?w=600&amp;h=334&amp;tok=484325" class="mediacenter" title="wimboot booting Windows 7" alt="wimboot booting Windows 7" width="600" height="334" /></a>
</p>
<p>
<a href="/_detail/screenshots/win7_installer.png?id=wimboot" class="media" title="screenshots:win7_installer.png"><img src="/_media/screenshots/win7_installer.png?w=600&amp;h=450&amp;tok=d70835" class="mediacenter" title="Windows 7 installer booted via wimboot" alt="Windows 7 installer booted via wimboot" width="600" height="450" /></a>
</p>
</div>
<h3 id="next_steps">Next steps</h3>
<div class="level3">
<p>
You can use <code>wimboot</code> to boot any bootable <code>.wim</code> image. See the <a href="/howto/winpe" class="wikilink1" title="howto:winpe">Windows PE tutorial</a> for information on how to create and customise your own <code>.wim</code> images.
</p>
</div>
<h2 id="licence">Licence</h2>
<div class="level2">
<p>
<code>wimboot</code> is free, open-source software licensed under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html" class="urlextern" title="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU GPL</a>.
</p>
</div>
<h2 id="sponsors">Sponsors</h2>
<div class="level2">
<p>
Portions of the <code>wimboot</code> development have been sponsored by:
</p>
<p>
<a href="https://jumptrading.com" class="media" title="https://jumptrading.com"><img src="/_media/logos/jump.png?w=165&amp;h=37&amp;tok=b2c235" class="mediacenter" title="Jump Trading" alt="Jump Trading" width="165" height="37" /></a>
</p>
<p>
<a href="https://2pintsoftware.com" class="media" title="https://2pintsoftware.com"><img src="/_media/logos/2pint.png?w=106&amp;h=33&amp;tok=b919c8" class="mediacenter" title="2Pint Software" alt="2Pint Software" width="106" height="33" /></a>
</p>
<p>
<a href="https://digitalintelligence.com" class="media" title="https://digitalintelligence.com"><img src="/_media/logos/digitalintelligence.png?w=150&amp;h=28&amp;tok=42b260" class="mediacenter" title="Digital Intelligence" alt="Digital Intelligence" width="150" height="28" /></a>
</p>
</div>
<h2 id="advanced_topics">Advanced topics</h2>
<div class="level2">
<p>
<a href="/_detail/clipart/books.png?id=wimboot" class="media" title="clipart:books.png"><img src="/_media/clipart/books.png?w=180&amp;h=180&amp;tok=bcf6a6" class="mediaright" title="Some books" alt="Some books" width="180" height="180" /></a>
</p>
</div>
<h3 id="multi-image_wim_files">Multi-image WIM files</h3>
<div class="level3">
<p>
A WIM file can contain multiple bootable images. You can use the <code>index=&lt;N&gt;</code> command-line option to select the image to be booted. For example:
</p>
<pre class="code"> kernel wimboot index=2</pre>
</div>
<h3 id="injected_files">Injected files</h3>
<div class="level3">
<p>
You can provide additional files to <code>wimboot</code>. These files will appear within the <code>X:\Windows\System32</code> directory. For example:
</p>
<pre class="code"> kernel wimboot
initrd winpeshl.ini winpeshl.ini
initrd startup.bat startup.bat
initrd boot/bcd BCD
initrd boot/boot.sdi boot.sdi
initrd sources/boot.wim boot.wim
boot</pre>
<p>
You can use this to control the boot process after Windows PE has started. For example, you can use a <a href="/howto/winpe#adding_a_startup_batch_file" class="wikilink1" title="howto:winpe">startup batch file</a> to automatically start the Windows installer from a network share.
</p>
<p>
You can disable this behaviour by using the <code>rawwim</code> command-line option. For example:
</p>
<pre class="code"> kernel wimboot rawwim</pre>
</div>
<h3 id="custom_boot_manager">Custom boot manager</h3>
<div class="level3">
<p>
<code>wimboot</code> will attempt to extract an appropriate boot manager (such as <code>bootmgr</code>, <code>bootmgr.exe</code> or <code>bootmgfw.efi</code>) from the WIM file.
</p>
<p>
You can disable this behaviour by explicitly providing an appropriate set of boot manager binaries. For example:
</p>
<pre class="code"> kernel wimboot
initrd bootmgr bootmgr
initrd efi/boot/bootx64.efi bootx64.efi</pre>
</div>
<h3 id="disabling_automatic_bcd_modifications">Disabling automatic BCD modifications</h3>
<div class="level3">
<p>
<code>wimboot</code> will automatically patch standard BIOS-compatible boot configuration data (BCD) files to allow them to be used on UEFI systems, by changing all occurrences of the string “<code>.exe</code>” to “<code>.efi</code>”.
</p>
<p>
You can disable this behaviour by using the <code>rawbcd</code> command-line option. For example:
</p>
<pre class="code"> kernel wimboot rawbcd</pre>
</div>
<h3 id="disabling_debug_messages">Disabling debug messages</h3>
<div class="level3">
<p>
<code>wimboot</code> will display some debug messages by default, to assist in diagnosing problems that may occur during booting.
</p>
<p>
You can disable these debug messages by using the <code>quiet</code> command-line option. For example:
</p>
<pre class="code"> kernel wimboot quiet</pre>
</div>
<h3 id="displaying_graphical_boot_messages">Displaying graphical boot messages</h3>
<div class="level3">
<p>
<code>wimboot</code> will force the Windows boot manager to display error messages in text mode. It does this to work around a bug in some versions of the Windows boot manager, which would otherwise fail to display error messages unless suitable font files are provided.
</p>
<p>
You can disable this behaviour by using the <code>gui</code> command-line option and by providing all of the required font files. For example:
</p>
<pre class="code"> kernel wimboot gui
initrd boot/fonts/segmono_boot.ttf segmono_boot.ttf
initrd boot/fonts/segoe_slboot.ttf segoe_slboot.ttf
initrd boot/fonts/segoen_slboot.ttf segoen_slboot.ttf
initrd boot/fonts/wgl4_boot.ttf wgl4_boot.ttf</pre>
</div>
<h3 id="disabling_paging">Disabling paging</h3>
<div class="level3">
<p>
<code>wimboot</code> will automatically use paging to relocate the data files above 4GB if possible, to allow for the use of large <code>.wim</code> files on BIOS systems.
</p>
<p>
You can disable this behaviour by using the <code>linear</code> command-line option. For example:
</p>
<pre class="code"> kernel wimboot linear</pre>
</div>
<h2 id="internals">Internals</h2>
<div class="level2">
<p>
For more detailed information about the internal workings of wimboot, see the <a href="/appnote/wimboot_architecture" class="wikilink1" title="appnote:wimboot_architecture">wimboot architecture guide</a>.
</p>
</div>
<h2 id="troubleshooting">Troubleshooting</h2>
<div class="level2">
<p>
Try adding the commands <code><a href="/cmd/imgstat" class="wikilink1" title="cmd:imgstat">imgstat</a></code> and <code><a href="/cmd/prompt" class="wikilink1" title="cmd:prompt">prompt</a></code> to your iPXE script, to allow you to check that all of the files have loaded correctly. For example:
</p>
<pre class="code"> #!ipxe
kernel wimboot
initrd boot/bcd BCD
initrd boot/boot.sdi boot.sdi
initrd sources/boot.wim boot.wim
imgstat
prompt
boot</pre>
<p>
Check that only the expected files are present in the list. You may need to use the <code><a href="/cmd/imgfree" class="wikilink1" title="cmd:imgfree">imgfree</a></code> command to discard any unwanted files.
</p>
<p>
You can also try adding the <code>pause</code> command-line option for <code>wimboot</code>. For example:
</p>
<pre class="code"> kernel wimboot pause</pre>
<p>
This will instruct <code>wimboot</code> to wait for a keypress before booting Windows, to give you a further opportunity to observe any messages that may be displayed.
</p>
<p>
If you are unable to resolve your problem, then you can <a href="/contact" class="wikilink1" title="contact">contact</a> the iPXE developers and other iPXE users.
</p>
</div>
<!-- ......... wikipage stop ......... -->
</div>
<div class="clearer"></div>
<!-- footer -->
<div class="stylefoot">
<div class="bar" id="bar__bottom">
<!-- page metadata -->
<div class="meta">
<div class="doc">
<bdi>wimboot.txt</bdi> · Last modified: 2021/04/30 11:01 by <bdi>mcb30</bdi> </div>
</div>
<!-- page actions -->
<div class="bar-left" id="bar__bottomleft">
<form class="button btn_login" method="get" action="/wimboot"><div class="no"><input type="hidden" name="do" value="login" /><input type="hidden" name="sectok" value="" /><button type="submit" title="Log In">Log In</button></div></form> </div>
<!-- search form -->
<div class="bar-right" id="bar__bottomright">
<div class="searchbox">
<form action="/start" method="get" role="search" class="search doku_form" id="dw__search" accept-charset="utf-8"><input type="hidden" name="do" value="search" /><input type="hidden" name="id" value="wimboot" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Search" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Search">Search</button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> </div>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="footerinc">
<a href="/feed.php" title="Recent changes RSS feed"><img src="/lib/tpl/doogiestpl/images/button-rss.png" width="80" height="15" alt="Recent changes RSS feed" /></a>
<a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="license"><img src="/lib/images/license/button/cc-by-sa.png" alt="CC Attribution-Share Alike 4.0 International" /></a>
<a href="https://dokuwiki.org/" title="Driven by DokuWiki"><img src="/lib/tpl/doogiestpl/images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a>
</div>
<!-- mcb30 - added CC attribution footer -->
<div class="dokuwiki">
<div class="meta">
<div class="doc">
All uses of this content must include an attribution to the iPXE
project and the URL https://ipxe.org
</div>
<div class="doc">
References to "iPXE" may not be altered or removed.
</div>
</div>
</div>
<div class="no">
<img src="/lib/exe/indexer.php?id=wimboot&amp;1681392702" width="2" height="1" alt="" /></div>
</body>
</html>
+11
View File
@@ -0,0 +1,11 @@
#!/bin/sh
. ./settings.sh
echo "Generating PXE Menu..."
cat ./resources/default-full | \
sed -e "s/__NFSSERVERIP__/${NFSSERVERIP}/g" \
-e "s/__MENUTITLE__/${MENUTUTLE}/g" \
-e "s/__MENUBACKGROUND__/${MENUBACKGROUND}/g" > ${TFTP}/pxelinux.cfg/default
./configure-debian-system.sh
+11
View File
@@ -0,0 +1,11 @@
#!/bin/sh
. ./settings.sh
echo "Generating PXE Menu..."
cat ./resources/default-minimal | \
sed -e "s/__NFSSERVERIP__/${NFSSERVERIP}/g" \
-e "s/__MENUTITLE__/${MENUTUTLE}/g" \
-e "s/__MENUBACKGROUND__/${MENUBACKGROUND}/g" > ${TFTP}/pxelinux.cfg/default
./configure-debian-system.sh
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
apt install -y git tftpd-hpa nfs-kernel-server lighttpd ipxe pxelinux syslinux syslinux-common sudo p7zip p7zip-full
Binary file not shown.

After

Width:  |  Height:  |  Size: 407 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

+212
View File
@@ -0,0 +1,212 @@
rootprompt 0
path bios/
default bios/vesamenu.c32
TIMEOUT 300
MENU TITLE __MENUTITLE__
MENU BACKGROUND __MENUBACKGROUND__
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
LABEL disk0
localboot 0
MENU LABEL Starte von lokaler Platte (Default)
label -
MENU LABEL Live-Systeme: --------------------------
MENU DISABLE
LABEL knx
MENU LABEL * Knoppix 9.1 Live, Grafisch, 32Bit
KERNEL free/knx/boot/isolinux/linux
APPEND nfsdir=__NFSSERVERIP__:/srv/tftp/free/knx nodhcp lang=de ramdisk_size=100000 init=/sbin/init apm=power-off nomce loglevel=1 initrd=free/knx/boot/isolinux/miniroot.gz libata.force=noncq tz=europe/Berlin hpsa.hpsa_allow_any=1 BOOT_IMAGE=knoppix
MENU BEGIN
MENU LABEL * Weitere Optionen...
LABEL knx
MENU LABEL * Knoppix 9.1 Live, Textmodus, 32Bit
KERNEL free/knx/boot/isolinux/linux
APPEND nfsdir=__NFSSERVERIP__:/srv/tftp/free/knx nodhcp lang=de ramdisk_size=100000 init=/sbin/init apm=power-off nomce loglevel=1 initrd=free/knx/boot/isolinux/miniroot.gz libata.force=noncq tz=Europe/Berlin hpsa.hpsa_allow_any=1 BOOT_IMAGE=knoppix 2
LABEL slitazfull
MENU LABEL * Slitaz Linux Live, Grafisch
linux slitaz/boot/bzImage
APPEND initrd=slitaz/boot/rootfs4.gz,slitaz/boot/rootfs3.gz,slitaz/boot/rootfs2.gz,slitaz/boot/rootfs1.gz root=/dev/null video=-32 autologin kbd lang=de_DE kmap=de-latin1 tz=Europe/Berlin
LABEL slitazcore
MENU LABEL * Slitaz Linux Live, minimal
linux slitaz/boot/bzImage
APPEND initrd=slitaz/boot/rootfs4.gz root=/dev/null video=-32 autologin kbd lang=de_DE kmap=de-latin1 tz=Europe/Berlin
LABEL slitazf
MENU LABEL * Slitaz Linux Floppyimage
kernel memdisk
append initrd=img/floppy-grub4dos
LABEL zurueck...
MENU EXIT
MENU END
label -
MENU LABEL Backup & Restore: ----------------------
MENU DISABLE
LABEL rescue
MENU LABEL * Rescuezilla Live
kernel free/rz/casper/vmlinuz
APPEND initrd=free/rz/casper/initrd.lz netboot=nfs root=/dev/nfs ramdisk_size=1500000 ip=dhcp nfsroot=__NFSSERVERIP__:/srv/tftp/free/rz/ boot=casper locale=de_DE keyboard-configuration/layoutcode=de bootkbd=de console-setup/layoutcode=de quiet
MENU BEGIN
MENU LABEL * Weitere Optionen...
LABEL rescue2
MENU LABEL * Rescuezilla Live Fail-Safe
kernel free/rz/casper/vmlinuz
APPEND initrd=free/rz/casper/initrd.lz netboot=nfs root=/dev/nfs ramdisk_size=1500000 ip=dhcp nfsroot=__NFSSERVERIP__:/srv/tftp/free/rz/ boot=casper locale=de_DE keyboard-configuration/layoutcode=de bootkbd=de console-setup/layoutcode=de xforcevesa nomodeset vga=791 quiet
LABEL cz
MENU LABEL * Clonezilla Live (Ramdisk)
KERNEL free/cz/live/vmlinuz
APPEND initrd=free/cz/live/initrd.img boot=live username=user union=overlay config components noswap edd=on nomodeset nodmraid locales=de_DE.UTF-8 keyboard-layouts=de-latin-1 ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=tftp://__NFSSERVERIP__/free/cz/live/filesystem.squashfs quiet
LABEL acr18
MENU LABEL * Acronis True Image Home 2018
LINUX memdisk
INITRD non-free/acronis/acronis2018.iso
APPEND iso raw
LABEL acr14
MENU LABEL * Acronis True Image Home 2014
LINUX memdisk
INITRD non-free/acronis/acronis2014.iso
APPEND iso raw
LABEL acr11
MENU LABEL * Acronis True Image Home 2011
LINUX memdisk
INITRD non-free/acronis/acronis2011.iso
APPEND iso raw
LABEL acr10
MENU LABEL * Acronis True Image 2010
LINUX memdisk
INITRD non-free/acronis/acronis2010.iso
APPEND iso raw
LABEL acr09
MENU LABEL * Acronis True Image 2009
LINUX memdisk
INITRD non-free/acronis/acronis2009.iso
APPEND iso raw
LABEL zurueck...
MENU EXIT
MENU END
label -
MENU LABEL Installer: ------------------------------
MENU DISABLE
MENU BEGIN
MENU LABEL * Linux Installer...
LABEL deb12
MENU LABEL * Debian 12 Installer 64Bit Textmodus
CONFIG free/deb-bookworm/debian-installer/amd64/pxelinux.cfg/default
APPEND free/deb-bookworm/
LABEL deb12
MENU LABEL * Debian 12 Installer 32Bit Textmodus
CONFIG free/deb-bookworm/debian-installer/i386/pxelinux.cfg/default
APPEND free/deb-bookworm/
LABEL deb11
MENU LABEL * Debian 11 Installer 64Bit Textmodus
CONFIG free/deb-bullseye/debian-installer/amd64/pxelinux.cfg/default
APPEND free/deb-bullseye/
LABEL deb11
MENU LABEL * Debian 11 Installer 32Bit Textmodus
CONFIG free/deb-bullseye/debian-installer/i386/pxelinux.cfg/default
APPEND free/deb-bullseye/
LABEL zurueck...
MENU EXIT
MENU END
MENU BEGIN
MENU LABEL * Windows Installer...
LABEL win10
MENU LABEL * Windows 10
KERNEL memdisk
INITRD non-free/windows/winpe.iso
APPEND iso raw
LABEL win10
MENU LABEL * Windows 10 iPXE Test
KERNEL ipxe.lkrn
APPEND dhcp && chain non-free/wimboot.ipxe
LABEL zurueck...
MENU EXIT
MENU END
label -
MENU LABEL Boot- & System-Tools: --------------------
MENU DISABLE
LABEL hdt
MENU LABEL * Hardware Erkennung
COM32 bios/hdt.c32
LABEL memtestpl
MENU LABEL * Memtest86+
kernel free/memtest86+
MENU BEGIN
MENU LABEL * Weitere Optionen...
label sbm
MENU LABEL * Smart Boot Manager
kernel memdisk
append initrd=free/sbm.imz
LABEL plop
MENU LABEL * PloP Boot Manager
kernel free/plop.exe
LABEL ipxe
MENU LABEL * iPXE Shell
KERNEL ipxe.lkrn dhcp && shell
LABEL memtest
MENU LABEL * Memtest86
kernel free/memtest86
LABEL fdos
MENU LABEL * iPXE FreeDOS Live-CD
KERNEL ipxe.lkrn dhcp && sanboot http://__NFSSERVERIP__/free/FD13LIVE.iso
LABEL fdos
MENU LABEL * FreeDOS Bootdisk
KERNEL memdisk
APPEND initrd=free/FD13BOOT.img
label win98
MENU LABEL * Windows 98 Bootdisk (DOS 7)
kernel memdisk
append initrd=non-free/win98.img
label ether
MENU LABEL * Etherboot
kernel memdisk
append initrd=free/ether.img
LABEL zurueck...
MENU EXIT
MENU END
# interessante optionen...
# rescuezilla: APPEND initrd=rescue/initrd.lz boot=live noswap fetch=tftp://__NFSSERVERIP__:/rescue/filesystem.squashfs toram ---
+30
View File
@@ -0,0 +1,30 @@
rootprompt 0
path bios
default bios/vesamenu.c32
TIMEOUT 300
MENU TITLE PXE __MENUTITLE__
MENU BACKGROUND __MENUBACKGROUND__
LABEL disk0
localboot 0
MENU LABEL Boot from first Harddisk
LABEL -
MENU LABEL --------------------------
LABEL ipxe
MENU LABEL * iPXE Shell
KERNEL ipxe.lkrn dhcp && shell
LABEL demo
MENU LABEL * iPXE Demonstration
KERNEL ipxe.lkrn dhcp && chain http://boot.ipxe.org/demo/boot.php
LABEL fdos
MENU LABEL * iPXE FreeDOS over HTTP and Internet
KERNEL ipxe.lkrn dhcp && sanboot http://boot.ipxe.org/freedos/fdfullcd.iso
LABEL fdos
MENU LABEL * iPXE FreeDOS over HTTP Local Server
KERNEL ipxe.lkrn dhcp && sanboot http://__NFSSERVERIP__/free/FD13LIVE.iso
+11
View File
@@ -0,0 +1,11 @@
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/srv/tftp *(ro,nohide,no_root_squash,no_subtree_check,insecure)
Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.
+55
View File
@@ -0,0 +1,55 @@
server.modules = (
"mod_indexfile",
"mod_access",
"mod_alias",
"mod_redirect",
)
server.document-root = "/srv/tftp"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
dir-listing.activate = "enable"
# features
#https://redmine.lighttpd.net/projects/lighttpd/wiki/Server_feature-flagsDetails
server.feature-flags += ("server.h2proto" => "enable")
server.feature-flags += ("server.h2c" => "enable")
server.feature-flags += ("server.graceful-shutdown-timeout" => 5)
#server.feature-flags += ("server.graceful-restart-bg" => "enable")
# strict parsing and normalization of URL for consistency and security
# https://redmine.lighttpd.net/projects/lighttpd/wiki/Server_http-parseoptsDetails
# (might need to explicitly set "url-path-2f-decode" = "disable"
# if a specific application is encoding URLs inside url-path)
server.http-parseopts = (
"header-strict" => "enable",# default
"host-strict" => "enable",# default
"host-normalize" => "enable",# default
"url-normalize-unreserved"=> "enable",# recommended highly
"url-normalize-required" => "enable",# recommended
"url-ctrls-reject" => "enable",# recommended
"url-path-2f-decode" => "enable",# recommended highly (unless breaks app)
#"url-path-2f-reject" => "enable",
"url-path-dotseg-remove" => "enable",# recommended highly (unless breaks app)
#"url-path-dotseg-reject" => "enable",
#"url-query-20-plus" => "enable",# consistency in query string
)
index-file.names = ( "index.php", "index.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.conf.pl"
include "/etc/lighttpd/conf-enabled/*.conf"
#server.compat-module-load = "disable"
server.modules += (
"mod_dirlisting",
"mod_staticfile",
)
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

+16
View File
@@ -0,0 +1,16 @@
[global]
workgroup = PXE
map to guest = bad user
usershare allow guests = yes
[tftp]
browsable = true
read only = yes
guest ok = yes
path = /srv/tftp
[windows]
browsable = true
read only = yes
guest ok = yes
path = /srv/tftp/non-free/windows
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+14
View File
@@ -0,0 +1,14 @@
# create new
# if you set some devices, add <target>-</target> and set the same way with follows
# naming rule : [ iqn.(year)-(month).(reverse of domain name):(any name you like) ]
<target iqn.1975-11.tld.ostrach:win10dvd>
# provided devicce as a iSCSI target
backing-store /root/pxe-bootserver/temp/Windows10_21H2_2021-11-18.iso
# iSCSI Initiator's IQN you allow to connect
#initiator-name iqn.2021-08.world.srv:node01.initiator01
# authentication info ( set anyone you like for "username", "password" )
#incominguser username password
</target>
+11
View File
@@ -0,0 +1,11 @@
#!ipxe
prompt --key 0x02 --timeout 2000 Press Ctrl-B for the iPXE command line... && shell ||
set keep-san 1
sanhook http://192.168.75.3/non-free/windows
kernel free/wimboot
initrd boot/bcd BCD
initrd boot/boot.sdi boot.sdi
initrd http://192.168.75.3/non-free/windows/sources/boot.wim boot.wim
boot
+14
View File
@@ -0,0 +1,14 @@
@echo off
echo Init Network...
wpeinit
echo Mount CIFS-Share with Windows 10 DVD...
net use z: \\__NFSSERVERIP__\windows
z:
echo Start Windows Setup...
setup.exe
pause
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh
. ./settings.sh
# 1. install needed debian packages:
./install-debian-packages.sh
# 2. configure debian system
./configure-debian-system.sh
# 3. configure full system menu
./generate-full-menu.sh
#./generate-minimal-menu.sh
# 4. download free stuff (knoppix...)
./download-free.sh
# 5. download windows stuff
./configure-windows-pxeboot.sh
# 6. rerun some settings...
./configure-debian-system.sh
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
TFTP=/srv/tftp
NFSSERVERIP=192.168.75.3
MENUTUTLE="Sample Title Text"
MENUBACKGROUND="splash.png"
USERID=technik
GROUPID=technik
+27
View File
@@ -0,0 +1,27 @@
# To Do...
* Modular pxelinux menu:
* split menu in parts: Knoppix, Rescuezilla, Acronis, etc.
* use settings.sh as configuration file, e.g. MENU_KNOPPIX=YES or MENU_NON-FREE=NO
* create template files in ./resources: menu-knoppix.cfg, menu-rescuezilla.cfg
* use INCLUDE command if possible https://wiki.syslinux.org/wiki/index.php?title=Menu#INCLUDE
* read settings.sh and parse templates to fill in variables
* iSCSI Target:
* apt install tgt
* zless /usr/share/doc/tgt/README.iscsi.gz
* tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2020-11.tld.ostrach:target1
* tgtadm --lld iscsi --op show --mode target
* tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/hdc1
* tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
* https://www.server-world.info/en/note?os=Debian_11&p=iscsi&f=2
* http://etherboot.org/wiki/sanboot
* https://ipxe.org/howto/winpe
1. install tgt
2. parse settings.sh and create tgt config files to:
3. a Windows 10 DVD target (.iso under /srv/tftp/non-free/windows10.iso)
Remeber: Check if a iSCSI Tape-Target could be used to trick a Tape Backup Software to use HardDisks as Tapes