Skip to content

Commit 928fcf6

Browse files
committed
Windows Guide edits
1 parent 85b8202 commit 928fcf6

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

_posts/2025-04-14-Cobbler-v3.3.7-Windows-Deployment-Guide.md

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ Starting where the [Beginner's guide](/blog/2024/Cobbler-v3.3.6-Beginners-Guide/
2020

2121
### Caveats
2222

23-
1. **IMPORTANT:** There was a frequent issue on PXE clients using VirtualBox UEFI firmware. For this reason, it is recommended to run both Cobbler server and PXE client as either bare metal systems or [VMWare Workstation/Fusion](https://blogs.vmware.com/workstation/2024/05/vmware-workstation-pro-now-available-free-for-personal-use.html) or [HyperV](https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-overview) VMs for UEFI installations.
23+
1. **IMPORTANT:** There was a frequent issue on PXE clients using VirtualBox EFI firmware. For this reason, it is recommended to run both Cobbler server and PXE client as either bare metal systems or [VMWare Workstation/Fusion](https://blogs.vmware.com/workstation/2024/05/vmware-workstation-pro-now-available-free-for-personal-use.html) or [HyperV](https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-overview) VMs for UEFI installations.
2424

25-
- You may experience different results depending on your Windows or VirtualBox version and settings; more info in the **Tips & Troubleshooting** section below
25+
- You may experience different results depending on your hardware and Windows or VirtualBox versions and settings; more info in the **Tips & Troubleshooting** section below
2626

2727
1. This guide assumes you have already acquired the Windows 10 and 11 64-bit ISO installation files by using the [Windows 10](https://www.microsoft.com/en-us/software-download/windows10) and [Windows 11](https://www.microsoft.com/en-us/software-download/windows11) Media Creation Tool
2828

@@ -135,15 +135,15 @@ mount -o ro,loop ~/Downloads/Win10_22H2_English_x64.iso /mnt/Windows10
135135
cobbler import --name Win10 --path /mnt/Windows10
136136
```
137137

138-
**Optional:** *If* the PXE client will use legacy-BIOS firmware *(MBR partition scheme)* instead of UEFI, toggle `uefi` to `false` in the Cobbler Profile autoinstallation metadata:
138+
**Optional:** *If* the PXE client will use legacy-BIOS firmware instead of UEFI, toggle `uefi` to `false` in the Cobbler Profile autoinstallation metadata:
139139

140140
```shell
141141
cobbler profile edit --name Win10-x86_64 --autoinstall-meta 'uefi'='false' --in-place
142142
```
143143

144144
> More info in Cobbler's [official docs](https://cobbler.readthedocs.io/en/v3.3.7/user-guide/wingen.html).
145145
146-
Finally, create a new Cobbler System to PXE boot and automatically install Windows 10 Pro, replacing the *"aa:bb:cc:dd:ee:ff"* with the MAC address of your PXE client, being sure not to use a duplicate MAC or IP addresse of any other Cobbler System, then sync up Cobbler.
146+
Finally, create a new Cobbler System to PXE boot and automatically install Windows 10 Pro, replacing the *"aa:bb:cc:dd:ee:ff"* with the MAC address of your PXE client, being sure not to use a duplicate MAC addresse of any other Cobbler System, then sync up Cobbler.
147147

148148
```shell
149149
cobbler system add --name Win10 --profile Win10-x86_64 --mac-address "aa:bb:cc:dd:ee:ff" --netboot-enabled true --enable-ipxe true
@@ -156,9 +156,7 @@ The **PXE Client** VM can now be powered on, and should automatically boot to PX
156156

157157
## Windows 11 PXE Deployment
158158

159-
First use the following commands to edit the `startnet.template` file in order to bypass Windows 11 hardware requirements for the PXE client.
160-
161-
- note that `unix2dos` will properly terminate the lines of text individually.
159+
**Optional:** *If* installing Windows 11 on unsupported hardware, use the following commands to edit the `startnet.template` file in order to bypass hardware requirements for the PXE client.
162160

163161
```shell
164162
CMD1=$(echo 'reg add HKLM\\SYSTEM\\Setup\\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1 /f' | unix2dos)
@@ -192,17 +190,15 @@ The **PXE Client** VM can now be powered on, and should automatically boot to PX
192190

193191
- Cobbler has 3 main templates for Windows distro management, all located in `/etc/cobbler/windows` directory, instead of the usual `/var/lib/cobbler/templates` and `/var/lib/cobbler/scripts` directories
194192

195-
- `startnet.template`: archived/compressed into the WindPE Windows image (loaded from PXE) in order to start Windows `setup.exe` with the associated Answerfile
193+
- `startnet.template`: Generates "startnet.cmd" which gets archived/compressed into the WinPE Windows image (loaded from PXE) in order to start `setup.exe` on the PXE client with the associated Answerfile
196194

197-
- `answerfile.template`: Answerfile with **profile** attributes to be retrieved over SMB for unattended installations.
195+
- `answerfile.template`: Generates "autounattended.xml" answerfile with **profile** attributes to be retrieved over SMB by PXE clients for unattended installations.
198196

199-
- `post_ins_cmd.template`: Used in the Answerfile to retrieve the `autoinstall` file (post-install script) defined for the **profile**
197+
- `post_ins_cmd.template`: Generates "post_install.cmd" which is used in the Answerfile to retrieve the `autoinstall` file (post-install script) defined for the **profile**
200198

201199
- By default, the autoinstall file (post-install script) `/var/lib/cobbler/templates/win.ks` has no effect.
202200

203-
- The above templates are generated based on the automatic installation metadata for **profiles** which define the parameters for the boot options, answerfile, and post-install script *(as well as toggle UEFI partitioning mode in answerfiles and change PXE clients to download boot files over TFTP instead of HTTP)*
204-
205-
- The `autoinstall-meta` parameters can be configured at the `cobbler system` (or `profile`) level and given unique names to generate different files for use by diffrent profiles or systems, but neither the `answerfile.template` or `post_inst_cmd.template` files are system-level aware, they only consist of **profile-level** settings.
201+
- The `autoinstall-meta` parameters *(used to specify the boot files as well as above answerfile and post_install templates, as well as set firmware/partitioning mode and download method)* can be configured at the `cobbler system` (or `profile`) level and given unique names to generate different files for use by diffrent profiles or systems, but neither the `answerfile.template` or `post_inst_cmd.template` files are system-level aware, they only consist of **profile-level** settings.
206202

207203
- There is no way to provide the Windows Answerfile in boot/kernel parameters like many linux distros
208204

@@ -214,7 +210,7 @@ The **PXE Client** VM can now be powered on, and should automatically boot to PX
214210

215211
1. **VirtualBox Issues**
216212

217-
- Specifially, the `ipxe-x86_64.efi` bootloader would fail to "initialize devices" and even though using the `ipxe-snponly-x86_64.efi` bootloader instead would load properly, the PXE client VM would *usually* just hang when downloading on of the WinPE files (i.e. `wimboot`, `boot.sdi`, `bootmgr.exe`, `bcd`, `winpe.wim`)
213+
- Specifially, the `ipxe-x86_64.efi` bootloader would fail to "initialize devices" and even though using the `ipxe-snponly-x86_64.efi` bootloader would load properly, the PXE client VM would *usually* just hang when downloading one of the WinPE files (i.e. `wimboot`, `boot.sdi`, `bootmgr.exe`, `bcd`, `winpe.wim`)
218214

219215
- Tried several troubleshooting steps and could not get a consistent fix:
220216

@@ -226,11 +222,13 @@ The **PXE Client** VM can now be powered on, and should automatically boot to PX
226222

227223
- Tried installing the appropriate VirtualBox Extensions for my version of VB.
228224

229-
- Disabled Memory Isolation in Windows Security on VirtualBox Host.
225+
- Disabled Memory Isolation in Windows Security (and other security options) on VirtualBox Host.
230226

231227
- Tried with and without "Virtual Machine Platform" and "Windows Hypervisor Platform" Windows Features installed/enabled.
228+
229+
- Tried compiling latest and previous versions of ipxe.efi (snp, intel, realtek, etc...) bootloader from source
232230
233-
- Found no relevant entries/errors in VirtualBox VM logs and nothing abnormal in Cobbler server logs (HTTP, TFTP, DHCP).
231+
- Found no relevant entries/errors in VirtualBox VM logs *(debug logs enabled)* or Windows Event Viewer and nothing abnormal in Cobbler server logs (HTTP, TFTP, DHCP).
234232

235233
- A live Windows 10 installation can be easily converted from MBR (legacy-BIOS) to GPT (UEFI) via powershell commands, which can be used as a workaround for compatibility with VirtualBox UEFI firmware
236234

@@ -243,7 +241,7 @@ The **PXE Client** VM can now be powered on, and should automatically boot to PX
243241

244242
- After reading through the manpage (`man smb.conf`) and trying several different configurations the problem persisted
245243

246-
- Make the following edit to the `startnet.template` file to account for this occasional unresponsiveness/lag from the SMB server when booting into setup by first probing the SMB share until it responds.
244+
- Make the following edit to the `startnet.template` file to account for this occasional unresponsiveness/lag from the SMB server by first enumerating the SMB share until it responds.
247245

248246
```shell
249247
CMD=$(echo 'dir \$distros_dir || GOTO wno20' | unix2dos)

0 commit comments

Comments
 (0)