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
old-version/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
temp/
non-free/

3
old-version/README.md Executable file
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.

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

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
old-version/download-free.sh Executable file
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

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
old-version/free/ether.img Executable file

Binary file not shown.

BIN
old-version/free/floppy-grub4dos Executable file

Binary file not shown.

BIN
old-version/free/memtest86 Executable file

Binary file not shown.

BIN
old-version/free/memtest86+ Executable file

Binary file not shown.

BIN
old-version/free/plop.exe Executable file

Binary file not shown.

BIN
old-version/free/sbm.imz Executable file

Binary file not shown.

535
old-version/free/wimboot Normal file
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>

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

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

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

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 ---

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

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.

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
old-version/resources/ostnet.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

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
old-version/resources/splash.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

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>

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

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
old-version/runall.sh Executable file
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
old-version/settings.sh Executable file
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
old-version/todo.md Normal file
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