Просмотр исходного кода

Merge pull request #998 from netbootxyz/development

Release 2.0.48-RC
Antony Messerli 3 лет назад
Родитель
Сommit
dd88fcc4b9

+ 10 - 0
CHANGELOG.md

@@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
 
 ## [Unreleased]
 
+## [2.0.48]
+#### Added
+- Support for Harvester
+- Support for Tails
+- Support for Kali 32-bit net installer
+- Support for hrmpf
+- Support for Gentoo 32-bit and arm64 installers
+- Added EFI support for OpenBSD using sanboot
+- Adds additional options for arm64 iPXE binary downloads
+
 ## [2.0.47] - 2021-08-30
 #### Fixes
 - Corrects an issue with loading 32-bit linux menu on 64-bit platforms (https://github.com/netbootxyz/netboot.xyz/issues/978)

+ 12 - 6
README.md

@@ -36,7 +36,9 @@
 
 | Type | Bootloader | Description |
 |------|------------|-------------|
-|DHCP-snp| [netboot.xyz-arm64.efi](https://boot.netboot.xyz/ipxe/netboot.xyz-arm64.efi)| EFI w/ Simple Network Protocol, attempts to boot all net devices|
+|DHCP| [netboot.xyz-arm64.efi](https://boot.netboot.xyz/ipxe/netboot.xyz-arm64.efi)| DHCP boot image file, uses built-in iPXE NIC drivers|
+|DHCP-snp| [netboot.xyz-arm64-snp.efi](https://boot.netboot.xyz/ipxe/netboot.xyz-arm64-snp.efi)| EFI w/ Simple Network Protocol, attempts to boot all net devices|
+|DHCP-snponly| [netboot.xyz-arm64-snponly.efi](https://boot.netboot.xyz/ipxe/netboot.xyz-arm64-snponly.efi)| EFI w/ Simple Network Protocol, only boots from device chained from|
 
 #### Raspberry Pi iPXE Bootloaders
 
@@ -51,15 +53,15 @@ SHA256 checksums are generated during each build of iPXE and are located [here](
 
 [netboot.xyz](http://www.netboot.xyz) is a convenient place to boot into any type of operating system or utility disk without the need of having to go spend time retrieving the ISO just to run it.  [iPXE](http://ipxe.org/) is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags.
 
-If you already have iPXE up and running on the network, you can hit netboot.xyz at anytime by typing:
+If you already have iPXE up and running on the network, you can hit netboot.xyz at anytime by typing for Legacy (PCBIOS) mode:
 
-    chain --autofree https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn
+    chain --autofree http://boot.netboot.xyz/ipxe/netboot.xyz.lkrn
 
-or when in EFI mode:
+or when in UEFI mode:
 
-    chain --autofree https://boot.netboot.xyz/ipxe/netboot.xyz.efi
+    chain --autofree http://boot.netboot.xyz/ipxe/netboot.xyz.efi
 
-This will load the appropriate netboot.xyz kernel with all of the proper options enabled.
+You can also load using HTTPS, but by default builds of iPXE do not have HTTPS support compiled in. This will load the appropriate netboot.xyz kernel with all of the proper options enabled.
 
 ### Documentation
 
@@ -136,6 +138,8 @@ In addition to being able to host netboot.xyz locally, you can also create your
 | FreeBSD | https://freebsd.org | Yes, disk image | No |
 | FreeDOS | http://www.freedos.org | ISO - Memdisk| No |
 | Gentoo | https://gentoo.org | Yes | Yes |
+| Harvester | https://harvesterhci.io | Yes | No |
+| hrmpf | https://github.com/leahneukirchen/hrmpf/ | No | Yes |
 | IPFire | https://www.ipfire.org | Yes | No |
 | Kali Linux | https://www.kali.org | Yes | Yes |
 | KDE Neon | https://neon.kde.org | No | Yes |
@@ -168,6 +172,7 @@ In addition to being able to host netboot.xyz locally, you can also create your
 | Slackware | https://www.slackware.com | Yes | No |
 | SmartOS | https://www.joyent.com/smartos | Yes | No |
 | SparkyLinux | https://sparkylinux.org/ | No | Yes |
+| Tails | https://tails.boum.org/ | No | Yes |
 | Talos | https://www.talos.dev/ | Yes | No |
 | Tiny Core Linux | https://tinycorelinux.net | Yes | Yes |
 | Ubuntu | https://www.ubuntu.com | Yes | Yes |
@@ -193,6 +198,7 @@ In addition to being able to host netboot.xyz locally, you can also create your
 | Grml | http://grml.org | LiveCD |
 | Kaspersky Rescue Disk | https://support.kaspersky.com/viruses/krd18 | LiveCD |
 | Memtest | http://www.memtest.org/ | Kernel |
+| MemTest86 Free | https://www.memtest86.com | USB Img |
 | Redo Rescue | http://redorescue.com/ | LiveCD |
 | Rescatux | https://www.supergrubdisk.org/rescatux/ | LiveCD |
 | Rescuezilla | https://rescuezilla.com/ | LiveCD |

+ 68 - 25
endpoints.yml

@@ -183,13 +183,13 @@ endpoints:
     flavor: XFCE
     kernel: manjaro-18.1.0-gui-kernel
   kali-xfce-squash:
-    path: /debian-squash/releases/download/2021.2-4237c18c/
+    path: /debian-squash/releases/download/2021.3-023bb8a5/
     files:
     - filesystem.squashfs
     - initrd
     - vmlinuz
     os: kali
-    version: rolling
+    version: '2021.3'
     flavor: xfce
     kernel: kali-xfce-squash
   pop-19.10-default-squash:
@@ -414,7 +414,7 @@ endpoints:
     flavor: stable
     kernel: clonezilla-debian-stable
   clonezilla-debian-testing:
-    path: /debian-squash/releases/download/2.7.3-19-002d59cc/
+    path: /debian-squash/releases/download/2.8.0-6-002d59cc/
     files:
     - filesystem.squashfs
     - initrd
@@ -434,7 +434,7 @@ endpoints:
     flavor: stable
     kernel: clonezilla-ubuntu-stable
   clonezilla-ubuntu-testing:
-    path: /ubuntu-squash/releases/download/20210817-hirsute-18e78f5f/
+    path: /ubuntu-squash/releases/download/20210907-hirsute-18e78f5f/
     files:
     - filesystem.squashfs
     - initrd
@@ -670,7 +670,7 @@ endpoints:
     os: blackarch
     version: current
   bluestar:
-    path: /asset-mirror/releases/download/5.13.10-2021.08.13-a3024eea/
+    path: /asset-mirror/releases/download/5.14.2-2021.09.12-a3024eea/
     files:
     - initrd
     - vmlinuz
@@ -693,14 +693,6 @@ endpoints:
     - airootfs.sfs
     os: zeninstall
     version: current
-  gentoo:
-    path: /asset-mirror/releases/download/20210822T170550Z-21ec62e4/
-    files:
-    - image.squashfs
-    - initrd
-    - vmlinuz
-    os: gentoo
-    version: autobuilds
   lxle:
     path: /ubuntu-squash/releases/download/18.04.3-83291c4b/
     files:
@@ -747,7 +739,7 @@ endpoints:
     flavor: xfce
     kernel: manjaro-xfce-current
   manjaro-gnome-current:
-    path: /manjaro-squash/releases/download/21.1.0-210817-linux513-cd9dc50d/
+    path: /manjaro-squash/releases/download/21.1.2-210904-linux513-8034501d/
     files:
     - livefs.sfs
     - rootfs.sfs
@@ -780,7 +772,7 @@ endpoints:
     os: fatdog
     version: current
   raizo:
-    path: /debian-squash/releases/download/v12.21.07.17i-0aa6f3c9/
+    path: /debian-squash/releases/download/v12.21.09.05i-0aa6f3c9/
     files:
     - filesystem.squashfs
     - initrd
@@ -957,13 +949,13 @@ endpoints:
     os: kodachi
     version: '7'
   linux-lite-5-squash:
-    path: /ubuntu-squash/releases/download/5.4-a096cd9b/
+    path: /ubuntu-squash/releases/download/5.6-75cb937c/
     files:
     - filesystem.squashfs
     - initrd
     - vmlinuz
     os: lite
-    version: '5'
+    version: 5.6
     kernel: linux-lite-5-squash
   fedora-33-gnome:
     path: /fedora-assets/releases/download/1.2-2e758900/
@@ -1049,7 +1041,7 @@ endpoints:
     flavor: netboot
     kernel: ubuntu-20.04-netboot
   hirens:
-    path: /asset-mirror/releases/download/v1.0.1-937d3db8/
+    path: /asset-mirror/releases/download/v1.0.2-da645fe7/
     files:
     - bootmgr
     - bootmgr.efi
@@ -1057,9 +1049,9 @@ endpoints:
     - boot.sdi
     - boot.wim
     os: hirens
-    version: v1.0.1
+    version: v1.0.2
   vyos-rolling:
-    path: /debian-squash/releases/download/202108250814-fdd40a1c/
+    path: /debian-squash/releases/download/202109160217-fdd40a1c/
     files:
     - filesystem.squashfs
     - initrd
@@ -1140,15 +1132,15 @@ endpoints:
     os: ovirt
     version: '4.4'
   nitrux-release:
-    path: /ubuntu-squash/releases/download/2021.02.27-bb02b131/
+    path: /ubuntu-squash/releases/download/2021.09.01-e364d0a5/
     files:
     - initrd
     - vmlinuz
     - filesystem.squashfs
     os: nitrux
-    version: release
+    version: 2021.09.01
   endeavouros:
-    path: /asset-mirror/releases/download/2021.04.17-fd4170a4/
+    path: /asset-mirror/releases/download/2021.08.27-d09b132d/
     files:
     - airootfs.sfs
     - initrd
@@ -1421,12 +1413,12 @@ endpoints:
     os: proxmox
     version: 7.0-1
   talos:
-    path: /asset-mirror/releases/download/0.11.4-3f5e10e5/
+    path: /asset-mirror/releases/download/0.12.1-3f5e10e5/
     files:
     - vmlinuz
     - initramfs.xz
     os: talos
-    version: 0.11.4
+    version: 0.12.1
   elementaryos-6-default-squash:
     path: /ubuntu-squash/releases/download/6-c6e63f57/
     files:
@@ -1527,3 +1519,54 @@ endpoints:
     version: bullseye
     flavor: bullseye
     kernel: voyager-bullseye-squash
+  memtest86:
+    path: /asset-mirror/releases/download/9.2-4e73affb/
+    files:
+    - memtest86-usb.img
+    os: memtest86-free
+    version: '9.2'
+  gentoo-x86:
+    path: /asset-mirror/releases/download/20210913T170555Z-6734abfd/
+    files:
+    - image.squashfs
+    - initrd
+    - vmlinuz
+    os: gentoo
+    version: 20210913T170555Z
+    arch: x86
+  gentoo-arm64:
+    path: /asset-mirror/releases/download/20210912T235133Z-079d67cf/
+    files:
+    - image.squashfs
+    - initrd
+    - vmlinuz
+    os: gentoo
+    version: 20210912T235133Z
+    arch: arm64
+  gentoo-amd64:
+    path: /asset-mirror/releases/download/20210912T170541Z-383e823f/
+    files:
+    - image.squashfs
+    - initrd
+    - vmlinuz
+    os: gentoo
+    version: 20210912T170541Z
+    arch: amd64
+  tails:
+    path: /asset-mirror/releases/download/4.22-28906ec3/
+    files:
+    - vmlinuz
+    - initrd.img
+    - tails-amd64-4.22.iso
+    - 9990-misc-helpers.sh
+    os: tails
+    version: '4.22'
+    arch: amd64
+  hrmpf:
+    path: /asset-mirror/releases/download/20210914-75990558/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: hrmpf
+    version: '20210914'

+ 48 - 11
roles/netbootxyz/defaults/main.yml

@@ -7,10 +7,18 @@ bootloader_http_enabled: true
 bootloader_https_enabled: true
 bootloaders:
   arm:
+  - desc: DHCP EFI boot image file, uses built-in iPXE NIC drivers
+    ipxe_bin: ipxe.efi
+    output_bin: -arm64.efi
+    type: DHCP
   - desc: EFI w/ Simple Network Protocol, attempts to boot all net devices
     ipxe_bin: snp.efi
-    output_bin: -arm64.efi
+    output_bin: -arm64-snp.efi
     type: DHCP-snp
+  - desc: EFI w/ Simple Network Protocol, only boots from device chained from
+    ipxe_bin: snponly.efi
+    output_bin: -arm64-snponly.efi
+    type: DHCP-snponly
   hybrid:
   - desc: Used for CD/DVD, Virtual CDs, DRAC/iLO, VMware, Virtual Box
     ipxe_bin: ipxe.iso
@@ -84,6 +92,8 @@ generate_version_file: true
 ipxe_branch: master
 ipxe_ca_filename: ca-ipxe-org.crt
 ipxe_ca_url: http://ca.ipxe.org/ca.crt
+ipxe_debug_enabled: false
+ipxe_debug_options: httpcore,tls
 ipxe_repo: https://github.com/ipxe/ipxe
 ipxe_source_dir: /usr/src/ipxe
 kernel_params: initrd=initrd.magic ${cmdline}
@@ -132,8 +142,17 @@ releases:
     mirror: mirrors.kernel.org
     name: Arch Linux
     versions:
-    - code_name: 2021.08.01
-      name: 2021.08.01
+    - code_name: 2021.09.01
+      name: 2021.09.01
+  archlinux-32:
+    base_dir: pub/archlinux32
+    enabled: true
+    menu: linux
+    mirror: mirror.math.princeton.edu
+    name: Arch Linux 32-bit
+    versions:
+    - code_name: 2021.09.01
+      name: 2021.09.01
   blackarch:
     enabled: true
     menu: linux
@@ -163,8 +182,12 @@ releases:
     mirror: https://builds.coreos.fedoraproject.org
     name: Fedora CoreOS
     versions:
-    - code_name: 34.20210808.3.0
+    - code_name: 34.20210821.3.0
       name: stable
+    - code_name: 34.20210904.2.0
+      name: testing
+    - code_name: 34.20210904.1.0
+      name: next
   debian:
     archive_mirror: http://archive.debian.org
     base_dir: debian
@@ -248,6 +271,14 @@ releases:
     enabled: true
     menu: linux
     name: Gentoo
+  harvester:
+    enabled: true
+    menu: linux
+    mirror: https://releases.rancher.com/harvester
+    name: Harvester
+    versions:
+    - code_name: v0.2.0
+      name: v0.2.0
   ipfire:
     base_dir: releases/ipfire-2.x
     enabled: true
@@ -421,14 +452,14 @@ releases:
     mirror: https://netboot.joyent.com/os/
     name: SmartOS
     versions:
+    - code_name: 20210909T065923Z
+      name: 20210909T065923Z
+    - code_name: 20210909T002651Z
+      name: 20210909T002651Z
     - code_name: 20210826T002459Z
       name: 20210826T002459Z
     - code_name: 20210812T031946Z
       name: 20210812T031946Z
-    - code_name: 20210729T002724Z
-      name: 20210729T002724Z
-    - code_name: 20210715T010227Z
-      name: 20210715T010227Z
   talos:
     enabled: true
     menu: linux
@@ -598,10 +629,11 @@ sigs_menu: false
 site_name: netboot.xyz
 time_server: 0.pool.ntp.org
 utilitiesarm:
-  placeholder:
+  memtest86:
     enabled: false
-    name: placeholder
-    type: direct
+    kernel: ${live_endpoint}{{ endpoints.memtest86.path }}memtest86-usb.img
+    name: Memtest86 Free - {{ endpoints.memtest86.version }}
+    type: sanboot
 utilitiesefi:
   4mlinux:
     enabled: true
@@ -639,6 +671,11 @@ utilitiesefi:
     enabled: true
     name: Kaspersky Rescue Disk
     type: ipxemenu
+  memtest86:
+    enabled: false
+    kernel: ${live_endpoint}{{ endpoints.memtest86.path }}memtest86-usb.img
+    name: Memtest86 Free - {{ endpoints.memtest86.version }}
+    type: sanboot
   redorescue:
     enabled: true
     initrd: ${live_endpoint}{{ endpoints.redorescue.path }}initrd

+ 2 - 0
roles/netbootxyz/files/ipxe/local/general.h

@@ -4,6 +4,7 @@
 #define IMAGE_COMBOOT         /* COMBOOT */
 #define IMAGE_TRUST_CMD       /* Image trust management commands */
 #define IMAGE_GZIP            /* GZIP image support */
+#define IMAGE_PNG             /* PNG image support */
 #define IMAGE_ZLIB            /* ZLIB image support */
 #define NET_PROTO_IPV6        /* IPv6 protocol */
 #define NSLOOKUP_CMD          /* DNS resolving command */
@@ -11,6 +12,7 @@
 #define PARAM_CMD             /* Form parameter commands */
 #define PCI_CMD               /* PCI commands */
 #define PING_CMD              /* Ping command */
+#define POWEROFF_CMD          /* Power off commands */
 #define REBOOT_CMD            /* Reboot command */
 #define TIME_CMD              /* Time commands */
 #define VLAN_CMD              /* VLAN commands */

+ 2 - 0
roles/netbootxyz/files/ipxe/local/general.h.efi

@@ -3,6 +3,7 @@
 #define DOWNLOAD_PROTO_HTTPS  /* Secure Hypertext Transfer Protocol */
 #define IMAGE_TRUST_CMD       /* Image trust management commands */
 #define IMAGE_GZIP            /* GZIP image support */
+#define IMAGE_PNG             /* PNG image support */
 #define IMAGE_ZLIB            /* ZLIB image support */
 #define NET_PROTO_IPV6        /* IPv6 protocol */
 #define NSLOOKUP_CMD          /* DNS resolving command */
@@ -10,6 +11,7 @@
 #define PARAM_CMD             /* Form parameter commands */
 #define PCI_CMD               /* PCI commands */
 #define PING_CMD              /* Ping command */
+#define POWEROFF_CMD          /* Power off commands */
 #define REBOOT_CMD            /* Reboot command */
 #define TIME_CMD              /* Time commands */
 #define VLAN_CMD              /* VLAN commands */

+ 34 - 3
roles/netbootxyz/tasks/generate_disks_arm.yml

@@ -34,22 +34,53 @@
       tags:
       - skip_ansible_lint
 
-    - name: Compile iPXE bootloader for EFI arm64
+    - name: Compile iPXE bootloaders for EFI arm64
       shell: |
         make clean
-        make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 \
-        EMBED={{ bootloader_filename }} \
+        make CROSS_COMPILE=aarch64-linux-gnu- \
+             ARCH=arm64 \
+             EMBED={{ bootloader_filename }} \
+             TRUST={{ trust_files }} \
+             bin-arm64-efi/ipxe.efi \
+             bin-arm64-efi/snp.efi \
+             bin-arm64-efi/snponly.efi
+      args:
+        chdir: "{{ ipxe_source_dir }}/src"
+      tags:
+      - skip_ansible_lint
+      when: ipxe_debug_enabled | bool == false
+
+    - name: Compile iPXE bootloader for EFI arm64 with debug flags
+      shell: |
+        make clean
+        make CROSS_COMPILE=aarch64-linux-gnu- \
+             ARCH=arm64 \
+             DEBUG={{ ipxe_debug_options }} \
+             EMBED={{ bootloader_filename }} \
              TRUST={{ trust_files }} \
              bin-arm64-efi/snp.efi
       args:
         chdir: "{{ ipxe_source_dir }}/src"
       tags:
       - skip_ansible_lint
+      when: ipxe_debug_enabled | bool
 
     - name: Copy iPXE arm64 EFI builds to http directory
+      copy:
+        src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
+        dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
+        remote_src: True
+      with_items:
+        - { src: "bin-arm64-efi/ipxe.efi", dest: "{{ bootloader_filename }}-arm64.efi" }
+        - { src: "bin-arm64-efi/snp.efi", dest: "{{ bootloader_filename }}-arm64-snp.efi" }
+        - { src: "bin-arm64-efi/snponly.efi", dest: "{{ bootloader_filename }}-arm64-snponly.efi" }
+      when: bootloader_filename != "netboot.xyz-packet"
+
+    - name: Copy iPXE arm64 EFI builds to http directory for packet
       copy:
         src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
         dest: "{{ netbootxyz_root }}/ipxe/{{ item.dest }}"
         remote_src: True
       with_items:
         - { src: "bin-arm64-efi/snp.efi", dest: "{{ bootloader_filename }}-arm64.efi" }
+      when: bootloader_filename == "netboot.xyz-packet"

+ 16 - 0
roles/netbootxyz/tasks/generate_disks_efi.yml

@@ -36,7 +36,23 @@
       chdir: "{{ ipxe_source_dir }}/src"
     tags:
     - skip_ansible_lint
+    when: ipxe_debug_enabled | bool == false
 
+  - name: Compile iPXE bootloader for EFI with debug flags
+    shell: |
+      make clean
+      make EMBED={{ bootloader_filename }} \
+           DEBUG={{ ipxe_debug_options }} \
+           TRUST={{ trust_files }} \
+           bin-x86_64-efi/ipxe.efi \
+           bin-x86_64-efi/snp.efi \
+           bin-x86_64-efi/snponly.efi
+    args:
+      chdir: "{{ ipxe_source_dir }}/src"
+    tags:
+    - skip_ansible_lint
+    when: ipxe_debug_enabled | bool
+    
   - name: Copy iPXE EFI builds to http directory
     copy:
       src: "{{ ipxe_source_dir }}/src/{{ item.src }}"

+ 23 - 1
roles/netbootxyz/tasks/generate_disks_legacy.yml

@@ -23,11 +23,33 @@
   - name: Compile iPXE bootloader for Legacy BIOS
     shell: |
       make clean
-      make EMBED={{ bootloader_filename }} TRUST={{ trust_files }} bin/ipxe.dsk bin/ipxe.lkrn bin/ipxe.kpxe bin/undionly.kpxe
+      make EMBED={{ bootloader_filename }} \
+           TRUST={{ trust_files }} \
+           bin/ipxe.dsk \
+           bin/ipxe.lkrn \
+           bin/ipxe.kpxe \
+           bin/undionly.kpxe
     args:
       chdir: "{{ ipxe_source_dir }}/src"
     tags:
     - skip_ansible_lint
+    when: ipxe_debug_enabled | bool == false
+
+  - name: Compile iPXE bootloader for Legacy BIOS with debug flags
+    shell: |
+      make clean
+      make EMBED={{ bootloader_filename }} \
+           DEBUG={{ ipxe_debug_options }} \
+           TRUST={{ trust_files }} \
+           bin/ipxe.dsk \
+           bin/ipxe.lkrn \
+           bin/ipxe.kpxe \
+           bin/undionly.kpxe
+    args:
+      chdir: "{{ ipxe_source_dir }}/src"
+    tags:
+    - skip_ansible_lint
+    when: ipxe_debug_enabled | bool
 
   - name: Copy iPXE files for Legacy BIOS to http directory
     copy:

+ 8 - 4
roles/netbootxyz/templates/menu/gentoo.ipxe.j2

@@ -4,12 +4,17 @@
 # http://www.gentoo.org
 
 :gentoo
+clear gentoo_version
 set os {{ releases.gentoo.name }}
-menu ${os} - Current Arch [ ${arch} ]
+set os_arch ${arch}
+iseq ${os_arch} x86_64 && set os_arch amd64 ||
+iseq ${os_arch} i386 && set os_arch x86 ||
+iseq ${os_arch} arm64 && set os_arch arm64 ||
+menu ${os} - Current Arch [ ${os_arch} ]
 item --gap ${os} Versions
 {% for key, value in endpoints.items() | sort %}
 {% if value.os == "gentoo" %}
-item {{ value.version }} ${space} ${os} {{ value.version }}
+iseq ${os_arch} {{ value.arch }} && item {{ value.version }}_{{ value.arch }} ${space} ${os} {{ value.version }} - {{ value.arch }} ||
 {% endif %}
 {% endfor %}
 choose gentoo_version || goto gentoo_exit
@@ -17,10 +22,9 @@ goto ${gentoo_version}
 
 {% for key, value in endpoints.items() | sort %}
 {% if value.os == "gentoo" %}
-:{{ value.version }}
+:{{ value.version }}_{{ value.arch }}
 set url ${live_endpoint}{{ value.path }}
 goto boot
-
 {% endif %}
 {% endfor %}
 

+ 67 - 0
roles/netbootxyz/templates/menu/harvester.ipxe.j2

@@ -0,0 +1,67 @@
+#!ipxe
+
+# Harvester
+# https://harvesterhci.io/
+# https://docs.harvesterhci.io/v0.2/install/pxe-boot-install/
+
+goto ${menu} ||
+
+:harvester
+set os {{ releases.harvester.name }}
+set os_arch ${arch}
+iseq ${os_arch} x86_64 && set os_arch amd64 ||
+set harvester_mirror {{ releases.harvester.mirror }}
+set harvester_version {{ releases.harvester.versions[0].name }}
+isset ${harvester_version} || set harvester_version {{ releases.harvester.versions[0].name }}
+menu ${os} - ${os_arch}
+item --gap Harvester:
+item harvester_boot ${space} Begin install ${os} ${harvester_version}
+item --gap Parameters:
+item harvester_version ${space} ${os} version: ${harvester_version}
+item harvester_config_url ${space} Set config-create or config-join.yaml URL: ${harvester_config_url}
+choose --default ${menu} menu || goto harvester_exit
+echo ${cls}
+goto ${menu} ||
+goto harvester_exit
+
+:harvester_version 
+menu ${os} version
+item latest ${space} latest 
+item custom ${space} Set custom version
+choose --default ${version} version || goto harvester_exit
+echo ${cls}
+goto harvester_version_${version} ||
+goto harvester_exit
+
+:harvester_version_latest
+set harvester_version {{ releases.harvester.versions[0].name }}
+set harvester_base_url ${harvester_mirror}/${harvester_version}
+goto harvester
+
+:harvester_version_custom
+clear harvester_version
+echo -n Please set harvester version manually (in format vX.Y.Z):  && read harvester_version
+set harvester_base_url ${harvester_mirror}/${harvester_version}
+clear menu
+goto harvester
+
+:harvester_config_url
+echo -n Set config.yaml URL:  && read harvester_config_url
+clear menu
+goto harvester
+
+:harvester_boot
+isset ${harvester_base_url} || set harvester_base_url ${harvester_mirror}/${harvester_version}
+set install_params k3os.mode=install harvester.install.automatic=true harvester.install.config_url=${harvester_config_url}
+set boot_params console=ttyS0 console=tty1
+imgfree
+kernel ${harvester_base_url}/harvester-vmlinuz-${os_arch} ${install_params} ${boot_params} {{ kernel_params }}
+initrd ${harvester_base_url}/harvester-initrd-${os_arch}
+echo
+echo MD5sums:
+md5sum harvester-vmlinuz-${os_arch} harvester-initrd-${os_arch}
+boot
+
+:harvester_exit
+clear menu
+exit 0

+ 1 - 0
roles/netbootxyz/templates/menu/kali.ipxe.j2

@@ -9,6 +9,7 @@ goto ${menu} ||
 set os {{ releases.kali.name }}
 set os_arch ${arch}
 iseq ${os_arch} x86_64 && set os_arch amd64 ||
+iseq ${os_arch} i386 && set os_arch i386 ||
 menu ${os} - ${os_arch}
 {% for item in releases.kali.versions %}
 item {{ item.code_name }} ${space} ${os} {{ item.name }}

+ 1 - 0
roles/netbootxyz/templates/menu/linux-arm.ipxe.j2

@@ -9,6 +9,7 @@ item alpinelinux ${space} AlmaLinux
 item alpinelinux ${space} Alpine Linux
 item centos ${space} CentOS
 item debian ${space} Debian
+item gentoo ${space} Gentoo
 item fedora ${space} Fedora
 item rhel ${space} Red Hat Enterprise Linux
 item rockylinux ${space} Rocky Linux

+ 2 - 0
roles/netbootxyz/templates/menu/linux-i386.ipxe.j2

@@ -7,6 +7,8 @@ menu Linux Installers - Current Arch [ ${arch} ]
 item --gap Popular Linux Operating Systems:
 item alpinelinux ${space} Alpine Linux
 item debian ${space} Debian
+item gentoo ${space} Gentoo
+item kali ${space} Kali Linux
 item opensuse ${space} OpenSUSE
 choose menu || goto linux_exit
 echo ${cls}

+ 39 - 0
roles/netbootxyz/templates/menu/live-hrmpf.ipxe.j2

@@ -0,0 +1,39 @@
+#!ipxe
+
+# hrmpf
+# https://github.com/leahneukirchen/hrmpf/
+
+goto ${menu} ||
+
+:live-hrmpf
+clear hrmpf_version
+set os hrmpf
+set os_arch ${arch}
+iseq ${os_arch} x86_64 && set os_arch amd64 ||
+menu ${os}
+item --gap ${os} Versions
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "hrmpf" %}
+item {{ value.version }} ${space} ${os} {{ value.version }}
+{% endif %}
+{% endfor %}
+choose hrmpf_version || goto hrmpf_exit
+goto ${hrmpf_version}
+
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "hrmpf" %}
+:{{ value.version }}
+set kernel_url ${live_endpoint}{{ value.path }}
+goto boot
+{% endif %}
+{% endfor %}
+
+:boot
+imgfree
+kernel ${kernel_url}vmlinuz root=live:${kernel_url}squashfs.img ro init=/sbin/init rd.luks=0 rd.md=0 rd.dm=0 gpt add_efi_memmap vconsole.unicode=1 vconsole.keymap=us locale.LANG=en_US.UTF-8 loglevel=6 printk.time=1 consoleblank=0 net.ifnames=0 {{ kernel_params }}
+initrd ${kernel_url}initrd
+boot
+
+:hrmpf_exit
+clear menu
+exit 0

+ 4 - 15
roles/netbootxyz/templates/menu/live-kali.ipxe.j2

@@ -6,24 +6,13 @@ goto ${menu} ||
 set os Kali Linux
 menu ${os}
 item --gap ${os} Versions
-item rolling ${space} ${os} Rolling
-choose live_version || goto live_exit
-menu ${os} ${live_version}
-item --gap ${os} Flavors
-goto ${live_version}
-
-:rolling
 {% for key, value in endpoints.items() | sort %}
-{% if value.os == "kali" and 'squash' in key and value.version == "rolling" and value.flavor == "xfce" %}
-item {{ key }} ${space} {{ value.os | title }} {{ value.version | title }} {{ value.flavor | upper }}
+{% if value.os == "kali"  %}
+item {{ key }} ${space} ${os} {{ value.version }}
 {% endif %}
 {% endfor %}
-goto flavor_select
-
-:flavor_select
-choose flavor || goto live_menu
-echo ${cls}
-goto ${flavor} ||
+choose live_version || goto live_exit
+goto ${live_version}
 
 {% for key, value in endpoints.items() | sort %}
 {% if value.os == "kali" and 'squash' in key %}

+ 42 - 0
roles/netbootxyz/templates/menu/live-tails.ipxe.j2

@@ -0,0 +1,42 @@
+#!ipxe
+
+# Tails Operating System
+# https://tails.boum.org/
+
+goto ${menu} ||
+
+:live-tails
+clear tails_version
+set os Tails
+set os_arch ${arch}
+iseq ${os_arch} x86_64 && set os_arch amd64 ||
+menu ${os}
+item --gap ${os} Versions
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "tails" %}
+item tails_{{ value.version }} ${space} ${os} {{ value.version }}
+{% endif %}
+{% endfor %}
+choose tails_version || goto tails_exit
+goto ${tails_version}
+
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "tails" %}
+:tails_{{ value.version }}
+set kernel_url ${live_endpoint}{{ value.path }}
+set iso_version {{ value.version }}
+goto boot
+{% endif %}
+{% endfor %}
+
+:boot
+imgfree
+kernel ${kernel_url}vmlinuz boot=live fromiso=/tails.iso config nopersistence noprompt timezone=Etc/UTC splash noautologin module=Tails slab_nomerge slub_debug=FZP mce=0 vsyscall=none page_poison=1 init_on_free=1 mds=full,nosmt {{ kernel_params }}
+initrd ${kernel_url}initrd.img
+initrd ${kernel_url}9990-misc-helpers.sh /usr/lib/live/boot/9990-misc-helpers.sh
+initrd ${kernel_url}tails-${os_arch}-${iso_version}.iso /tails.iso
+boot
+
+:tails_exit
+clear menu
+exit 0

+ 2 - 0
roles/netbootxyz/templates/menu/live.ipxe.j2

@@ -16,6 +16,7 @@ item live-endeavouros ${space} EndeavourOS
 item live-fatdog ${space} Fatdog64
 item live-fedora ${space} Fedora
 item live-feren ${space} Feren OS
+item live-hrmpf ${space} hrmpf
 item live-k3os ${space} K3OS
 item live-kali ${space} Kali
 item live-kodachi ${space} Kodachi
@@ -33,6 +34,7 @@ item live-raizo ${space} Live Raizo
 item live-regolith ${space} Regolith
 item live-septor ${space} Septor
 item live-sparky ${space} SparkyLinux
+item live-tails ${space} Tails
 item tinycore ${space} Tiny Core Linux
 item live-ubuntu ${space} Ubuntu
 item live-voyager ${space} Voyager

+ 12 - 2
roles/netbootxyz/templates/menu/openbsd.ipxe.j2

@@ -19,12 +19,22 @@ iseq ${ver} {{ item.code_name }} && set image_ver {{ item.image_ver }} ||
 goto boot_openbsd
 
 :boot_openbsd
+iseq ${platform} pcbios && goto pcbios_boot ||
+iseq ${platform} efi && goto efi_boot ||
+
+:pcbios_boot
 set src ${openbsd_mirror}/${openbsd_base_dir}/${ver}/${os_arch}/cd${image_ver}.iso
 imgfree
 initrd ${src}
 chain ${memdisk} iso raw
-exit
+goto openbsd_menu
+
+:efi_boot
+set src ${openbsd_mirror}/${openbsd_base_dir}/${ver}/${os_arch}/install${image_ver}.img
+imgfree
+sanboot ${src}
+goto openbsd_menu
 
 :openbsd_exit
 clear menu
-exit 0
+exit 0

+ 6 - 3
roles/netbootxyz/templates/menu/talos.ipxe.j2

@@ -8,6 +8,9 @@ goto ${menu} ||
 
 :talos
 set os {{ releases.talos.name }}
+set os_arch ${arch}
+iseq ${os_arch} x86_64 && set os_arch amd64 ||
+iseq ${os_arch} arm64 && set os_arch arm64 ||
 isset ${talos_version} || set talos_version latest
 isset ${talos_mirror} || set talos_mirror {{ releases.talos.mirror }}
 isset ${talos_platform} || set talos_platform metal
@@ -69,14 +72,14 @@ isset ${talos_base_url} || set talos_base_url ${talos_mirror}/latest/download
 isset ${talos_config_url} && set talos_config talos.config=${talos_config_url} ||
 set boot_params page_poison=1 printk.devkmsg=on slab_nomerge slub_debug=P pti=on talos.platform=${talos_platform} ${talos_config} {{ kernel_params }}
 imgfree
-kernel ${talos_base_url}/vmlinuz ${boot_params}
-initrd ${talos_base_url}/initramfs.xz
+kernel ${talos_base_url}/vmlinuz-${os_arch} ${boot_params}
+initrd ${talos_base_url}/initramfs-${os_arch}.xz
 echo
 echo Booting with the following kernel args:
 echo ${boot_params}
 echo
 echo MD5sums:
-md5sum vmlinuz initramfs.xz
+md5sum vmlinuz-${os_arch} initramfs-${os_arch}.xz
 boot
 
 :talos_exit

+ 9 - 0
roles/netbootxyz/templates/menu/utils-arm.ipxe.j2

@@ -26,6 +26,15 @@ goto utils_exit
 {% endif %}
 {% endfor %}
 
+{% for key, value in utilitiesefi.items() | sort %}
+{% if value.enabled | bool and value.type == "sanboot" %}
+:{{ key }}
+imgfree
+sanboot {{ value.kernel }}
+goto utils_exit
+{% endif %}
+{% endfor %}
+
 :utils_exit
 clear menu
 exit 0

+ 9 - 0
roles/netbootxyz/templates/menu/utils-efi.ipxe.j2

@@ -30,6 +30,15 @@ goto utils_exit
 {% endif %}
 {% endfor %}
 
+{% for key, value in utilitiesefi.items() | sort %}
+{% if value.enabled | bool and value.type == "sanboot" %}
+:{{ key }}
+imgfree
+sanboot {{ value.kernel }}
+goto utils_exit
+{% endif %}
+{% endfor %}
+
 :cmdline
 echo If you want to change the default kernel command line parameters
 echo you can override the defaults here.

+ 0 - 5
script/pre_install

@@ -1,5 +0,0 @@
-#!/bin/bash
-set -e
-
-# Install aws cli
-sudo pip install awscli tornado

+ 1 - 1
version.txt

@@ -1 +1 @@
-2.0.47
+2.0.48