From 6079a53c8aaeeedbf4b53f642473d0f67600016c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Sun, 19 Oct 2025 00:24:46 +0200 Subject: [PATCH] Fix windows menu and add vdi menu --- .gitignore | 2 ++ config/menus/vdi.ipxe | 33 +++++++++++++++++++++++++++++++++ config/menus/windows.ipxe | 4 +++- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 config/menus/vdi.ipxe diff --git a/.gitignore b/.gitignore index abec798..bac0708 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ assets/win-pe/configs/*.xml !/config/menus/ !/config/menus/windows.ipxe !/config/menus/menu.ipxe + +!/config/menus/vdi.ipxe diff --git a/config/menus/vdi.ipxe b/config/menus/vdi.ipxe new file mode 100644 index 0000000..30a916f --- /dev/null +++ b/config/menus/vdi.ipxe @@ -0,0 +1,33 @@ +#!ipxe + +# VDI +# Mostly copied from alpinelinux.ipxe +# Requires thinclient.apkovl.tar.gz to be setup and placed in /assets +# https://www.apalrd.net/posts/2022/alpine_vdiclient/ + +set alpine_version v3.22 +set os_arch ${arch} +set cmdline modules=loop,squashfs quiet + +isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}::::${dns} + +set server http://${next-server} +set apkovl ${server}/thinclient.apkovl.tar.gz + +set base-url ${alpinelinux_mirror} +set dir ${alpinelinux_base_dir}/${alpine_version}/releases/${os_arch}/netboot + +set vmlinuz ${base-url}/${dir}/vmlinuz-lts + +set initramfs ${base-url}/${dir}/initramfs-lts +set modloop ${base-url}/${dir}/modloop-lts + +set repo ${alpinelinux_mirror}/${alpinelinux_base_dir}/${alpine_version}/main + +imgfree +kernel ${vmlinuz} ${ipparam} ${cmdline} alpine_repo=${repo} modloop=${modloop} apkovl=${apkovl} initrd=initrd.magic +initrd ${initramfs} +echo +echo MD5sums: +md5sum vmlinuz-lts initramfs-lts +boot diff --git a/config/menus/windows.ipxe b/config/menus/windows.ipxe index 092d71e..f7528f3 100644 --- a/config/menus/windows.ipxe +++ b/config/menus/windows.ipxe @@ -5,6 +5,7 @@ set win_arch x64 set win_size small +set win_base_url http://${next-server}/win-pe goto ${menu} || :windows @@ -15,7 +16,7 @@ item --gap Installers item win_install ${space} Load ${os} Installer... item --gap Options: item arch_set ${space} Architecture [ ${win_arch} ] -imtem size_set ${space} Preinstalled software package [ ${win_size} ] +item size_set ${space} Preinstalled software package [ ${win_size} ] item url_set ${space} Base URL [ ${win_base_url} ] choose win_version || goto windows_exit goto ${win_version} @@ -26,6 +27,7 @@ goto windows :size_set iseq ${win_size} small && set win_size large || set win_size small +goto windows :url_set echo Set the HTTP URL of an extracted Windows ISO without the trailing slash: