Browse Source

Merge pull request #496 from netbootxyz/development

Release 2.0.4-RC
Antony Messerli 5 years ago
parent
commit
b5207d79e2

+ 5 - 4
README.md

@@ -108,8 +108,9 @@ In addition to being able to host netboot.xyz locally, you can also create your
 |Devuan| https://devuan.org | Yes | No |
 |Devuan| https://devuan.org | Yes | No |
 |Elementary OS| https://elementary.io | No | Yes |
 |Elementary OS| https://elementary.io | No | Yes |
 |Fedora| https://fedoraproject.org | Yes | Yes |
 |Fedora| https://fedoraproject.org | Yes | Yes |
+|Feren OS| https://ferenos.weebly.com/ | Yes | No |
 |Flatcar Linux|https://www.flatcar-linux.org| Yes | No |
 |Flatcar Linux|https://www.flatcar-linux.org| Yes | No |
-|FreeBSD|https://freebsd.org| No, disk image | No |
+|FreeBSD|https://freebsd.org| Yes, disk image | No |
 |FreeDOS|http://www.freedos.org| ISO - Memdisk| No |
 |FreeDOS|http://www.freedos.org| ISO - Memdisk| No |
 |Gentoo|https://gentoo.org| Not Working | No |
 |Gentoo|https://gentoo.org| Not Working | No |
 |IPFire|https://www.ipfire.org| Yes | No |
 |IPFire|https://www.ipfire.org| Yes | No |
@@ -144,9 +145,9 @@ In addition to being able to host netboot.xyz locally, you can also create your
 | Name       | URL                     | Installer Kernel | Live OS |
 | Name       | URL                     | Installer Kernel | Live OS |
 |------------|-------------------------|------------------|---------|
 |------------|-------------------------|------------------|---------|
 |ALT Linux Rescue|https://en.altlinux.org/Rescue| ISO - Memdisk | - |
 |ALT Linux Rescue|https://en.altlinux.org/Rescue| ISO - Memdisk | - |
-|Breakin|http://www.advancedclustering.com/products/software/breakin/| ISO - Memdisk | - |
-|Clonezilla|http://www.clonezilla.org/| ISO - Memdisk | - |
-|DBAN|http://www.dban.org/| ISO - Memdisk | - |
+|Breakin|http://www.advancedclustering.com/products/software/breakin/| Yes | Yes |
+|Clonezilla|http://www.clonezilla.org/| - | Yes |
+|DBAN|http://www.dban.org/| Yes | Yes |
 |GParted|http://gparted.org| ISO - Memdisk | - |
 |GParted|http://gparted.org| ISO - Memdisk | - |
 |Grml|http://grml.org| ISO - Memdisk | - |
 |Grml|http://grml.org| ISO - Memdisk | - |
 |Memtest|http://www.memtest.org/| Yes | - |
 |Memtest|http://www.memtest.org/| Yes | - |

+ 125 - 1
endpoints.yml

@@ -544,7 +544,7 @@ endpoints:
     flavor: eoan
     flavor: eoan
     kernel: voyager-eoan-squash
     kernel: voyager-eoan-squash
   kde-neon-user:
   kde-neon-user:
-    path: /ubuntu-squash/releases/download/20191226-1116-4cec4542/
+    path: /ubuntu-squash/releases/download/20200102-1116-4cec4542/
     files:
     files:
     - vmlinuz
     - vmlinuz
     - filesystem.squashfs
     - filesystem.squashfs
@@ -601,3 +601,127 @@ endpoints:
     os: Deepin
     os: Deepin
     version: '15'
     version: '15'
     kernel: deepin-15-squash
     kernel: deepin-15-squash
+  mfsbsd-8:
+    path: /asset-mirror/releases/download/8.4-b6071b6e/
+    files:
+    - default.img
+    - special-edition.img
+    os: freebsd
+    version: '8'
+  mfsbsd-9:
+    path: /asset-mirror/releases/download/9.2-1dfc6379/
+    files:
+    - default.img
+    - special-edition.img
+    os: freebsd
+    version: '9'
+  mfsbsd-10:
+    path: /asset-mirror/releases/download/10.3-b257c1ce/
+    files:
+    - default.img
+    - special-edition.img
+    os: freebsd
+    version: '10'
+  mfsbsd-11:
+    path: /asset-mirror/releases/download/11.2-aecc58ac/
+    files:
+    - default.img
+    - special-edition.img
+    os: freebsd
+    version: '11'
+  mfsbsd-12:
+    path: /asset-mirror/releases/download/12.1-4e5dcbb5/
+    files:
+    - default.img
+    - special-edition.img
+    os: freebsd
+    version: '12'
+  q4os-3.10-default-squash:
+    path: /debian-squash/releases/download/3.10-0e917808/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: Q4OS
+    version: '3.10'
+    flavor: trinity
+    kernel: q4os-3.10-default-squash
+  q4os-3.10-plasma-squash:
+    path: /debian-squash/releases/download/3.10-15a7415a/
+    files:
+    - filesystem.squashfs
+    os: Q4OS
+    version: '3.10'
+    flavor: plasma
+    kernel: q4os-3.10-default-squash
+  feren-squash:
+    path: /ubuntu-squash/releases/download/12-2019-37ab2592/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: feren
+    version: standard
+    kernel: feren-squash
+  feren-classic-squash:
+    path: /ubuntu-squash/releases/download/12-2019-df757635/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: feren
+    version: classic
+    kernel: feren-classic-squash
+  clonezilla-debian-stable:
+    path: /debian-squash/releases/download/2.6.4-10-3f4ea5e2/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: debian
+    flavor: stable
+    kernel: clonezilla-debian-stable
+  clonezilla-debian-testing:
+    path: /debian-squash/releases/download/2.6.5-8-9840b479/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: debian
+    flavor: testing
+    kernel: clonezilla-debian-testing
+  clonezilla-ubuntu-stable:
+    path: /ubuntu-squash/releases/download/20191024-e0c9e5fa/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: ubuntu
+    flavor: stable
+    kernel: clonezilla-ubuntu-stable
+  clonezilla-ubuntu-testing:
+    path: /ubuntu-squash/releases/download/20191226-6edb0075/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: clonezilla
+    version: ubuntu
+    flavor: testing
+    kernel: clonezilla-ubuntu-testing
+  breakin:
+    path: /asset-mirror/releases/download/4.26.1-4c4e2fd9/
+    files:
+    - vmlinuz
+    - initrd
+    os: breakin
+    version: 4.26.1
+  dban:
+    path: /asset-mirror/releases/download/2.3.0-73f014c0/
+    files:
+    - DBAN.BZI
+    os: dban
+    version: 2.3.0

+ 28 - 36
roles/netbootxyz/defaults/main.yml

@@ -35,6 +35,9 @@ generate_version_file: false
 generate_checksums: true
 generate_checksums: true
 checksums_filename: "{{ site_name }}-sha256-checksums.txt"
 checksums_filename: "{{ site_name }}-sha256-checksums.txt"
 
 
+# pciids
+pciids_url: https://raw.githubusercontent.com/netbootxyz/pciids/master/pciids.ipxe
+
 # bootloader options
 # bootloader options
 generate_disks: true
 generate_disks: true
 generate_disks_legacy: true
 generate_disks_legacy: true
@@ -180,24 +183,8 @@ releases:
         code_name: "alpha"
         code_name: "alpha"
   freebsd:
   freebsd:
     name: "FreeBSD"
     name: "FreeBSD"
-    enabled: false
+    enabled: true
     menu: "bsd"
     menu: "bsd"
-    versions:
-      - name: "FreeBSD 12.0"
-        code_name: "12.0"
-        image_subdir: "12"
-      - name: "FreeBSD 11.2"
-        code_name: "11.2"
-        image_subdir: "11"
-      - name: "FreeBSD 11.1"
-        code_name: "11.1"
-        image_subdir: "11"
-      - name: "FreeBSD 11.0"
-        code_name: "11.0"
-        image_subdir: "11"
-      - name: "FreeBSD 10.4"
-        code_name: "10.4"
-        image_subdir: "10"
   freedos:
   freedos:
     name: "FreeDOS"
     name: "FreeDOS"
     mirror: "http://www.freedos.org"
     mirror: "http://www.freedos.org"
@@ -231,7 +218,7 @@ releases:
     mirror: "http://http.kali.org"
     mirror: "http://http.kali.org"
     base_dir: "kali"
     base_dir: "kali"
     enabled: true
     enabled: true
-    menu: "security"
+    menu: "linux"
     versions:
     versions:
       - name: "Rolling Edition (2019.4)"
       - name: "Rolling Edition (2019.4)"
         code_name: "rolling"
         code_name: "rolling"
@@ -376,64 +363,69 @@ releases:
         code_name: "xenial"
         code_name: "xenial"
 
 
 # utility values
 # utility values
-utilities:
+utilitiespcbios:
   avg:
   avg:
     name: "AVG Rescue CD"
     name: "AVG Rescue CD"
     enabled: true
     enabled: true
-    menu: "pcbios"
     type: "memdisk"
     type: "memdisk"
     version: "160420a12074"
     version: "160420a12074"
     util_path: "http://download.avg.com/filedir/inst/avg_arl_cdi_all_120_160420a12074.iso"
     util_path: "http://download.avg.com/filedir/inst/avg_arl_cdi_all_120_160420a12074.iso"
   breakin:
   breakin:
     name: "Breakin"
     name: "Breakin"
     enabled: true
     enabled: true
-    menu: "pcbios"
-    type: "memdisk"
-    version: "4.26.1-53"
-    util_path: "http://www.advancedclustering.com/wp-content/uploads/2017/02/bootimage-4.26.1-53.iso"
+    type: "direct"
+    kernel: "${live_endpoint}{{ endpoints.breakin.path }}vmlinuz sshpasswd=breakin startup=breakin initrd=initrd"
+    initrd: "${live_endpoint}{{ endpoints.breakin.path }}initrd"
   clonezilla:
   clonezilla:
     name: "Clonezilla"
     name: "Clonezilla"
     enabled: true
     enabled: true
-    menu: "pcbios"
-    type: "memdisk"
-    version: "2.6.4-10"
-    util_path: "http://master.dl.sourceforge.net/project/clonezilla/clonezilla_live_stable/2.6.4-10/clonezilla-live-2.6.4-10-amd64.iso"
+    type: "ipxemenu"
   dban:
   dban:
     name: "DBAN"
     name: "DBAN"
     enabled: true
     enabled: true
-    menu: "pcbios"
-    type: "memdisk"
-    version: "2.3.0"
-    util_path: "http://master.dl.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso"
+    type: "ipxemenu"
   gparted:
   gparted:
     name: "GParted"
     name: "GParted"
     enabled: true
     enabled: true
-    menu: "pcbios"
     type: "memdisk"
     type: "memdisk"
     version: "1.0.0-3"
     version: "1.0.0-3"
     util_path: "http://master.dl.sourceforge.net/project/gparted/gparted-live-stable/1.0.0-3/gparted-live-1.0.0-3-amd64.iso"
     util_path: "http://master.dl.sourceforge.net/project/gparted/gparted-live-stable/1.0.0-3/gparted-live-1.0.0-3-amd64.iso"
   memtest:
   memtest:
     name: "Memtest"
     name: "Memtest"
     enabled: true
     enabled: true
-    menu: "pcbios"
     type: "memtest"
     type: "memtest"
     version: "5.01.0"
     version: "5.01.0"
     util_path: "https://boot.netboot.xyz/utils/memtest86-5.01.0"
     util_path: "https://boot.netboot.xyz/utils/memtest86-5.01.0"
   supergrub:
   supergrub:
     name: "SuperGRUB"
     name: "SuperGRUB"
     enabled: true
     enabled: true
-    menu: "pcbios"
     type: "memdisk"
     type: "memdisk"
     version: "2.04s1"
     version: "2.04s1"
     util_path: "http://master.dl.sourceforge.net/project/supergrub2/2.04s1/super_grub2_disk_2.04s1/super_grub2_disk_hybrid_2.04s1.iso"
     util_path: "http://master.dl.sourceforge.net/project/supergrub2/2.04s1/super_grub2_disk_2.04s1/super_grub2_disk_hybrid_2.04s1.iso"
   ubcd:
   ubcd:
     name: "Ultimate Boot CD (UBCD)"
     name: "Ultimate Boot CD (UBCD)"
     enabled: true
     enabled: true
-    menu: "pcbios"
     type: "memdisk"
     type: "memdisk"
     version: "538"
     version: "538"
     util_path: "http://mirror.sysadminguide.net/ubcd/ubcd538.iso"
     util_path: "http://mirror.sysadminguide.net/ubcd/ubcd538.iso"
 
 
+# efi utility values
+utilitiesefi:
+  breakin:
+    name: "Breakin"
+    enabled: true
+    type: "direct"
+    kernel: "${live_endpoint}{{ endpoints.breakin.path }}vmlinuz sshpasswd=breakin startup=breakin initrd=initrd"
+    initrd: "${live_endpoint}{{ endpoints.breakin.path }}initrd"
+  clonezilla:
+    name: "Clonezilla"
+    enabled: true
+    type: "ipxemenu"
+  dban:
+    name: "DBAN"
+    enabled: true
+    type: "ipxemenu"
+
 bootloaders:
 bootloaders:
   legacy:
   legacy:
     - type: "ISO"
     - type: "ISO"

+ 6 - 1
roles/netbootxyz/tasks/generate_menus.yml

@@ -52,4 +52,9 @@
     with_filetree: "templates/menu/"
     with_filetree: "templates/menu/"
     when: item.state == "file"
     when: item.state == "file"
     tags:
     tags:
-    - skip_ansible_lint
+    - skip_ansible_lint
+
+  - name: Retrieve pciids.ipxe
+    get_url:
+      url: "{{ pciids_url }}"
+      dest: "{{ netbootxyz_root }}/pciids.ipxe"

+ 1 - 1
roles/netbootxyz/tasks/main.yml

@@ -21,4 +21,4 @@
 
 
   - include: generate_signatures.yml
   - include: generate_signatures.yml
     when:
     when:
-    - generate_signatures | default(false) | bool
+    - generate_signatures | default(false) | bool

+ 25 - 1
roles/netbootxyz/templates/disks/netboot.xyz-gce.j2

@@ -7,7 +7,8 @@ set fg_cya ${esc:string}[36m
 set fg_whi ${esc:string}[37m
 set fg_whi ${esc:string}[37m
 set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
 set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
 set HTTP_ERR HTTP has failed, localbooting...
 set HTTP_ERR HTTP has failed, localbooting...
-set version 1.04
+set ipxe_version ${version}
+set version {{ boot_version }}
 set ipxe_cloud_config gce
 set ipxe_cloud_config gce
 
 
 :start
 :start
@@ -23,6 +24,7 @@ goto menu
 menu netboot.xyz Failsafe Menu
 menu netboot.xyz Failsafe Menu
 item localboot Boot to local drive
 item localboot Boot to local drive
 item netconfig Manual network configuration
 item netconfig Manual network configuration
+item vlan Manual VLAN configuration
 item retry Retry boot
 item retry Retry boot
 item debug iPXE Debug Shell
 item debug iPXE Debug Shell
 item reboot Reboot System
 item reboot Reboot System
@@ -44,6 +46,28 @@ ifopen net${net}
 echo Attempting chainload of netboot.xyz...
 echo Attempting chainload of netboot.xyz...
 goto menu || goto failsafe
 goto menu || goto failsafe
 
 
+:vlan
+echo VLAN Configuration:
+echo Available interfaces...
+ifstat
+imgfree
+echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
+isset ${net} || set net 0
+echo -n Set VLAN 802.1Q tag [0 to 4094]: ${} && read vlan
+vcreate --tag ${vlan} net${net}
+ifconf --configurator dhcp net${net}-${vlan} || echo DHCP failed trying manual && goto netvlan
+echo Attempting chainload of ${boot_domain}...
+goto menu || goto failsafe
+
+:netvlan
+echo -n IP: && read net${net}-${vlan}/ip
+echo -n Subnet mask: && read net${net}-${vlan}/netmask
+echo -n Gateway: && read net${net}-${vlan}/gateway
+echo -n DNS: && read dns
+ifopen net${net}-${vlan}
+echo Attempting chainload of ${boot_domain}...
+goto menu || goto failsafe
+
 :menu
 :menu
 set conn_type https
 set conn_type https
 chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR}
 chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR}

+ 25 - 1
roles/netbootxyz/templates/disks/netboot.xyz-packet.j2

@@ -8,7 +8,8 @@ set fg_cya ${esc:string}[36m
 set fg_whi ${esc:string}[37m
 set fg_whi ${esc:string}[37m
 set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
 set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
 set HTTP_ERR HTTP has failed, localbooting...
 set HTTP_ERR HTTP has failed, localbooting...
-set version 1.04
+set ipxe_version ${version}
+set version {{ boot_version }}
 set ipxe_cloud_config packet
 set ipxe_cloud_config packet
 
 
 :start
 :start
@@ -24,6 +25,7 @@ goto menu
 menu netboot.xyz Failsafe Menu
 menu netboot.xyz Failsafe Menu
 item localboot Boot to local drive
 item localboot Boot to local drive
 item netconfig Manual network configuration
 item netconfig Manual network configuration
+item vlan Manual VLAN configuration
 item retry Retry boot
 item retry Retry boot
 item debug iPXE Debug Shell
 item debug iPXE Debug Shell
 item reboot Reboot System
 item reboot Reboot System
@@ -45,6 +47,28 @@ ifopen net${net}
 echo Attempting chainload of netboot.xyz...
 echo Attempting chainload of netboot.xyz...
 goto menu || goto failsafe
 goto menu || goto failsafe
 
 
+:vlan
+echo VLAN Configuration:
+echo Available interfaces...
+ifstat
+imgfree
+echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
+isset ${net} || set net 0
+echo -n Set VLAN 802.1Q tag [0 to 4094]: ${} && read vlan
+vcreate --tag ${vlan} net${net}
+ifconf --configurator dhcp net${net}-${vlan} || echo DHCP failed trying manual && goto netvlan
+echo Attempting chainload of ${boot_domain}...
+goto menu || goto failsafe
+
+:netvlan
+echo -n IP: && read net${net}-${vlan}/ip
+echo -n Subnet mask: && read net${net}-${vlan}/netmask
+echo -n Gateway: && read net${net}-${vlan}/gateway
+echo -n DNS: && read dns
+ifopen net${net}-${vlan}
+echo Attempting chainload of ${boot_domain}...
+goto menu || goto failsafe
+
 :menu
 :menu
 set conn_type https
 set conn_type https
 chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR}
 chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR}

+ 24 - 0
roles/netbootxyz/templates/disks/netboot.xyz.j2

@@ -10,6 +10,7 @@ set HTTPS_ERR HTTPS appears to have failed... attempting HTTP
 set HTTP_ERR HTTP has failed, localbooting...
 set HTTP_ERR HTTP has failed, localbooting...
 set site_name {{ site_name }}
 set site_name {{ site_name }}
 set boot_domain {{ boot_domain }}
 set boot_domain {{ boot_domain }}
+set ipxe_version ${version}
 set version {{ boot_version }}
 set version {{ boot_version }}
 
 
 :start
 :start
@@ -28,6 +29,7 @@ goto menu
 menu ${boot_domain} Failsafe Menu
 menu ${boot_domain} Failsafe Menu
 item localboot Boot to local drive
 item localboot Boot to local drive
 item netconfig Manual network configuration
 item netconfig Manual network configuration
+item vlan Manual VLAN configuration
 item retry Retry boot
 item retry Retry boot
 item debug iPXE Debug Shell
 item debug iPXE Debug Shell
 item reboot Reboot System
 item reboot Reboot System
@@ -49,6 +51,28 @@ ifopen net${net}
 echo Attempting chainload of ${boot_domain}...
 echo Attempting chainload of ${boot_domain}...
 goto menu || goto failsafe
 goto menu || goto failsafe
 
 
+:vlan
+echo VLAN Configuration:
+echo Available interfaces...
+ifstat
+imgfree
+echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
+isset ${net} || set net 0
+echo -n Set VLAN 802.1Q tag [0 to 4094]: ${} && read vlan
+vcreate --tag ${vlan} net${net}
+ifconf --configurator dhcp net${net}-${vlan} || echo DHCP failed trying manual && goto netvlan
+echo Attempting chainload of ${boot_domain}...
+goto menu || goto failsafe
+
+:netvlan
+echo -n IP: && read net${net}-${vlan}/ip
+echo -n Subnet mask: && read net${net}-${vlan}/netmask
+echo -n Gateway: && read net${net}-${vlan}/gateway
+echo -n DNS: && read dns
+ifopen net${net}-${vlan}
+echo Attempting chainload of ${boot_domain}...
+goto menu || goto failsafe
+
 :tftpmenu
 :tftpmenu
 isset ${hostname} && chain --autofree tftp://${next-server}/HOSTNAME-${hostname}.ipxe || echo Custom boot by Hostname not found trying MAC...
 isset ${hostname} && chain --autofree tftp://${next-server}/HOSTNAME-${hostname}.ipxe || echo Custom boot by Hostname not found trying MAC...
 chain --autofree tftp://${next-server}/MAC-${mac:hexraw}.ipxe || echo Custom boot by MAC not found booting default...
 chain --autofree tftp://${next-server}/MAC-${mac:hexraw}.ipxe || echo Custom boot by MAC not found booting default...

+ 7 - 0
roles/netbootxyz/templates/menu/boot.cfg.j2

@@ -60,6 +60,7 @@ iseq ${buildarch} x86_64 && goto x86_64 ||
 iseq ${buildarch} arm64 && goto arm64 ||
 iseq ${buildarch} arm64 && goto arm64 ||
 goto architectures_end
 goto architectures_end
 :x86_64
 :x86_64
+iseq ${platform} efi && goto efi ||
 goto architectures_end
 goto architectures_end
 :arm64
 :arm64
 set menu_freedos 0
 set menu_freedos 0
@@ -67,6 +68,12 @@ set menu_live 0
 set menu_security 0
 set menu_security 0
 set menu_windows 0
 set menu_windows 0
 set menu_utils 0
 set menu_utils 0
+iseq ${platform} efi && goto efi ||
+goto architectures_end
+:efi
+set menu_bsd 0
+set menu_freedos 0
+set menu_security 0
 goto architectures_end
 goto architectures_end
 :architectures_end
 :architectures_end
 goto clouds
 goto clouds

+ 45 - 0
roles/netbootxyz/templates/menu/clonezilla.ipxe.j2

@@ -0,0 +1,45 @@
+#!ipxe
+
+goto ${menu} ||
+
+:live_menu
+set os Clonezilla
+menu ${os} - Current Arch [ ${arch} ]
+iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
+item --gap ${os} Versions
+item debian ${space} ${os} Debian Based
+item ubuntu ${space} ${os} Ubuntu Based
+choose live_version || goto live_exit
+menu ${os} ${live_version}
+item --gap ${os} Flavors
+goto ${live_version}
+
+:debian
+{% for key, value in endpoints.items() %}
+{% if value.os == "clonezilla" and value.version == "debian" %}
+item {{ value.path }} ${space} {{ value.os | title }} {{ value.version | title }} {{ value.flavor | title }}
+{% endif %}
+{% endfor %}
+choose path || goto live_menu
+goto clonezilla-boot
+
+:ubuntu
+{% for key, value in endpoints.items() %}
+{% if value.os == "clonezilla" and value.version == "ubuntu" %}
+item {{ value.path }} ${space} {{ value.os | title }} {{ value.version | title }} {{ value.flavor | title }}
+{% endif %}
+{% endfor %}
+choose path || goto live_menu
+goto clonezilla-boot
+
+:clonezilla-boot
+imgfree
+set url ${live_endpoint}${path}
+kernel ${url}vmlinuz boot=live username=user union=overlay config components noswap edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=${url}filesystem.squashfs initrd=initrd
+initrd ${url}initrd
+boot
+
+:live_exit
+clear menu
+exit 0
+

+ 38 - 0
roles/netbootxyz/templates/menu/dban.ipxe

@@ -0,0 +1,38 @@
+#!ipxe
+
+goto ${menu} ||
+
+:dban_menu
+menu DBAN {{ endpoints.dban.version }} (Darik's Boot and Nuke)
+set kernel_url ${live_endpoint}{{ endpoints.dban.path }}DBAN.BZI
+item --gap THIS SOFTWARE DESTROYS DATA
+item --gap EVERY BOOT OPTION IS DESTRUCTIVE
+item --gap DO NOT PROCEED IF YOU DO NOT KNOW WHAT THIS IS
+item dban_exit ${space} Go Back
+item dban_options ${space} Proceed I know what I am doing
+choose menu || goto dban_exit
+goto ${menu}
+
+:dban_options
+clear menu
+menu DBAN {{ endpoints.dban.version }} (Darik's Boot and Nuke)
+item --gap Choose a wipe method:
+item dodshort ${space} Wipe all disks with the short DoD 5220.22-M method
+item dod522022m ${space} Wipe all disks with the DoD 5220.22-M method
+item dod3pass ${space} Wipe all disks with the DoD 5220.22-M method (3 pass)
+item ops2 ${space} Wipe all disks with the RCMP TSSIT OPS-II method
+item gutmann ${space} Wipe all disks with the Gutmann method
+item prng ${space} Wipe all disks with the PRNG Stream method
+item quick ${space} Wipe all disks with the Quick Erase method
+choose nuke_method || goto dban_exit
+goto dban_boot
+
+
+:dban_boot
+imgfree
+kernel ${kernel_url} nuke="dwipe --autonuke --method ${nuke_method}" silent vga=785
+boot
+
+:dban_exit
+clear menu
+exit 0

+ 11 - 17
roles/netbootxyz/templates/menu/freebsd.ipxe.j2

@@ -6,28 +6,22 @@
 :freebsd_menu
 :freebsd_menu
 set os {{ releases.freebsd.name }}
 set os {{ releases.freebsd.name }}
 menu ${os}
 menu ${os}
-{% for item in releases.freebsd.versions %}
-item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "freebsd" %}
+item {{ value.path }} ${space} ${os} {{ value.version }}
+{% endif %}
 {% endfor %}
 {% endfor %}
 choose ver || goto freebsd_exit
 choose ver || goto freebsd_exit
+goto type_select
 
 
-{% for item in releases.freebsd.versions %}
-iseq ${ver} {{ item.code_name }} && set image_ver {{ item.code_name }}-RELEASE ||
-{% endfor %}
-
-iseq ${arch} x86_64 && goto freebsd_x64 ||
-set freebsd_arch i386
-goto boot_freebsd
-
-:freebsd_x64
-set freebsd_arch amd64
+:type_select
+menu ${os}
+item default.img ${space} Default
+item special-edition.img ${space} Special Edition
+choose type || goto freebsd_exit
 goto boot_freebsd
 goto boot_freebsd
 
 
 :boot_freebsd
 :boot_freebsd
-{% for item in releases.freebsd.versions %}
-iseq ${ver} {{ item.code_name }} && set image_subdir {{ item.image_subdir }}/${freebsd_arch} ||
-{% endfor %}
-set src https://mfsbsd.vx.sk/files/images/${image_subdir}/mfsbsd-${image_ver}-${freebsd_arch}.img
 imgfree
 imgfree
 echo This loads an mfsbsd installer (http://mfsbsd.vx.sk/).
 echo This loads an mfsbsd installer (http://mfsbsd.vx.sk/).
 echo Root password for all images: mfsroot
 echo Root password for all images: mfsroot
@@ -38,7 +32,7 @@ echo route delete default; route add default <public ip x.x.x.1>
 echo echo "nameserver x.x.x.x" > /etc/resolv.conf
 echo echo "nameserver x.x.x.x" > /etc/resolv.conf
 echo Once network is configured, you can launch the usual installer:
 echo Once network is configured, you can launch the usual installer:
 echo bsdinstall
 echo bsdinstall
-initrd ${src}
+initrd ${live_endpoint}${ver}${type}
 chain ${memdisk} harddisk raw
 chain ${memdisk} harddisk raw
 exit
 exit
 
 

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

@@ -0,0 +1,36 @@
+#!ipxe
+
+goto ${menu} ||
+
+:live_menu
+set os Feren OS Live
+menu ${os} - Current Arch [ ${arch} ]
+iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
+item --gap ${os} Versions
+item current ${space} ${os} Current
+choose live_version || goto live_exit
+menu ${os} ${live_version}
+item --gap ${os} Flavors
+goto ${live_version}
+
+:current
+{% for key, value in endpoints.items() %}
+{% if value.os == "feren" %}
+item {{ value.path }} ${space} {{ value.os | title }} {{ value.version | title }}
+{% endif %}
+{% endfor %}
+choose path || goto live_menu
+goto feren-boot
+
+:feren-boot
+imgfree
+set squash_url ${live_endpoint}${path}filesystem.squashfs
+set kernel_url ${live_endpoint}${path}
+kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd
+initrd ${kernel_url}initrd
+boot
+
+:live_exit
+clear menu
+exit 0
+

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

@@ -7,12 +7,21 @@ set os Q4OS Live
 menu ${os} - Current Arch [ ${arch} ]
 menu ${os} - Current Arch [ ${arch} ]
 iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
 iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
 item --gap ${os} Versions
 item --gap ${os} Versions
+item 3.10 ${space} ${os} 3.10
 item 3.9 ${space} ${os} 3.9
 item 3.9 ${space} ${os} 3.9
 choose live_version || goto live_exit
 choose live_version || goto live_exit
 menu ${os} ${live_version}
 menu ${os} ${live_version}
 item --gap ${os} Flavors
 item --gap ${os} Flavors
 goto ${live_version}
 goto ${live_version}
 
 
+:3.10
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "Q4OS" and 'squash' in key and value.version == "3.10" %}
+item {{ key }} ${space} {{ value.os | title }} {{ value.version }} {{ value.flavor | title}}
+{% endif %}
+{% endfor %}
+goto flavor_select
+
 :3.9
 :3.9
 {% for key, value in endpoints.items() | sort %}
 {% for key, value in endpoints.items() | sort %}
 {% if value.os == "Q4OS" and 'squash' in key and value.version == "3.9" %}
 {% if value.os == "Q4OS" and 'squash' in key and value.version == "3.9" %}
@@ -36,11 +45,11 @@ set squash_url ${live_endpoint}{{ value.path }}filesystem.squashfs
 set kernel_url ${live_endpoint}{{ value.path }}
 set kernel_url ${live_endpoint}{{ value.path }}
 {% endif %}
 {% endif %}
 {% endfor %}
 {% endfor %}
-goto {{ value.version }}-boot
+goto q4os-boot
 {% endif %}
 {% endif %}
 {% endfor %}
 {% endfor %}
 
 
-:3.9-boot
+:q4os-boot
 imgfree
 imgfree
 kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd
 kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd
 initrd ${kernel_url}initrd
 initrd ${kernel_url}initrd

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

@@ -11,6 +11,7 @@ item live-debian ${space} Debian
 item live-deepin ${space} Deepin
 item live-deepin ${space} Deepin
 item live-elementary ${space} elementary OS
 item live-elementary ${space} elementary OS
 item live-fedora ${space} Fedora
 item live-fedora ${space} Fedora
+item live-feren ${space} Feren OS
 item live-kali ${space} Kali
 item live-kali ${space} Kali
 item live-neon ${space} KDE Neon
 item live-neon ${space} KDE Neon
 item live-lite ${space} Linux Lite
 item live-lite ${space} Linux Lite

+ 34 - 0
roles/netbootxyz/templates/menu/lspci.ipxe.j2

@@ -0,0 +1,34 @@
+#!ipxe
+
+# gather pci devices and list them
+clear addr
+pciscan addr && goto pciscan_found ||
+echo No pci devices found...
+exit
+:pciscan_found
+
+set spaces2:hex 20:20
+set spaces4:hex 20:20:20:20
+
+imgfetch pciids.ipxe
+iseq ${sigs_enabled} true && goto verify_sigs || goto skip_verify
+:verify_sigs
+imgverify pciids.ipxe ${sigs}pciids.ipxe.sig ||
+:skip_verify
+
+clear addr
+menu PCI device list
+:scan pciscan addr || goto scan_done
+  clear ven
+  clear dev
+  set vendor ${pci/${addr}.0.2}
+  set device ${pci/${addr}.2.2}
+  chain pciids.ipxe
+  item --gap ${addr:busdevfn} ${spaces4:string} ${ven}
+  item b${addr:busdevfn} ${spaces2:string} ${vendor}:${device} ${dev}
+  goto scan
+:scan_done
+choose press_enter ||
+
+imgfree pciids.ipxe
+exit

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

@@ -57,6 +57,7 @@ iseq ${arch} x86_64 && set bits 64 || set bits 32
 item changebits ${space} Architecture: ${arch} (${bits}bit)
 item changebits ${space} Architecture: ${arch} (${bits}bit)
 item shell ${space} iPXE shell
 item shell ${space} iPXE shell
 item netinfo ${space} Network card info
 item netinfo ${space} Network card info
+item lspci ${space} PCI Device List
 item about ${space} About netboot.xyz
 item about ${space} About netboot.xyz
 {% if sigs_menu | bool %}
 {% if sigs_menu | bool %}
 item --gap Signature Checks:
 item --gap Signature Checks:

+ 8 - 30
roles/netbootxyz/templates/menu/utils-efi.ipxe.j2

@@ -2,8 +2,8 @@
 
 
 menu Utilities - Image Sig Checks: [${img_sigs_enabled}]
 menu Utilities - Image Sig Checks: [${img_sigs_enabled}]
 item --gap Utilities:
 item --gap Utilities:
-{% for key, value in utilities.items() | sort(attribute='1.name') %}
-{% if value.enabled | bool and value.menu == "efi" %}
+{% for key, value in utilitiesefi.items() | sort(attribute='1.name') %}
+{% if value.enabled %}
 item {{ key }} ${space} {{ value.name }}
 item {{ key }} ${space} {{ value.name }}
 {% endif %}
 {% endif %}
 {% endfor %}
 {% endfor %}
@@ -17,38 +17,16 @@ goto ${menu} ||
 chain ${menu}.ipxe || goto utils_exit
 chain ${menu}.ipxe || goto utils_exit
 goto utils_exit
 goto utils_exit
 
 
-{% for key, value in utilities.items() | sort %}
-{% if value.enabled | bool and value.menu == "efi" %}
+{% for key, value in utilitiesefi.items() | sort %}
+{% if value.enabled | bool and value.type == "direct" %}
 :{{ key }}
 :{{ key }}
-set util_path {{ value.util_path }}
-set util_file {{ value.util_path | basename }}
-set util_version {{ value.version }}
-goto boot_{{ value.type }}
-{% endif %}
-{% endfor %}
-
-:boot_memdisk
 imgfree
 imgfree
-kernel ${memdisk} iso raw
-initrd --name ${util_file} ${util_path}
-echo
-echo MD5sums:
-md5sum memdisk ${util_file}
-iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs
-:verify_sigs
-echo
-echo Checking signatures...
-imgverify memdisk ${sigs}memdisk.sig || goto error
-imgverify ${util_file} ${sigs}${menu}/${util_file}.sig || goto error
-echo Signatures verified!
-echo
-:skip_sigs
+kernel {{ value.kernel }}
+initrd {{ value.initrd }}
 boot
 boot
 goto utils_exit
 goto utils_exit
-
-:boot_memtest
-chain https://${util_path} && goto main_menu ||
-goto utils_exit
+{% endif %}
+{% endfor %}
 
 
 :nbxyz-custom
 :nbxyz-custom
 echo EXPERIMENTAL
 echo EXPERIMENTAL

+ 19 - 6
roles/netbootxyz/templates/menu/utils-pcbios.ipxe.j2

@@ -2,8 +2,8 @@
 
 
 menu Utilities - Image Sig Checks: [${img_sigs_enabled}]
 menu Utilities - Image Sig Checks: [${img_sigs_enabled}]
 item --gap Utilities:
 item --gap Utilities:
-{% for key, value in utilities.items() | sort(attribute='1.name') %}
-{% if value.enabled | bool and value.menu == "pcbios" %}
+{% for key, value in utilitiespcbios.items() | sort(attribute='1.name') %}
+{% if value.enabled %}
 item {{ key }} ${space} {{ value.name }}
 item {{ key }} ${space} {{ value.name }}
 {% endif %}
 {% endif %}
 {% endfor %}
 {% endfor %}
@@ -17,8 +17,8 @@ goto ${menu} ||
 chain ${menu}.ipxe || goto utils_exit
 chain ${menu}.ipxe || goto utils_exit
 goto utils_exit
 goto utils_exit
 
 
-{% for key, value in utilities.items() | sort %}
-{% if value.enabled | bool and value.menu == "pcbios" %}
+{% for key, value in utilitiespcbios.items() | sort %}
+{% if value.enabled | bool and value.type == "memdisk" %}
 :{{ key }}
 :{{ key }}
 set util_path {{ value.util_path }}
 set util_path {{ value.util_path }}
 set util_file {{ value.util_path | basename }}
 set util_file {{ value.util_path | basename }}
@@ -27,6 +27,17 @@ goto boot_{{ value.type }}
 {% endif %}
 {% endif %}
 {% endfor %}
 {% endfor %}
 
 
+{% for key, value in utilitiespcbios.items() | sort %}
+{% if value.enabled | bool and value.type == "direct" %}
+:{{ key }}
+imgfree
+kernel {{ value.kernel }}
+initrd {{ value.initrd }}
+boot
+goto utils_exit
+{% endif %}
+{% endfor %}
+
 :boot_memdisk
 :boot_memdisk
 imgfree
 imgfree
 kernel ${memdisk} iso raw
 kernel ${memdisk} iso raw
@@ -46,8 +57,10 @@ echo
 boot
 boot
 goto utils_exit
 goto utils_exit
 
 
-:boot_memtest
-chain https://${util_path} && goto main_menu ||
+:memtest
+imgfree
+kernel {{ utilitiespcbios.memtest.util_path }}
+boot
 goto utils_exit
 goto utils_exit
 
 
 :nbxyz-custom
 :nbxyz-custom

+ 2 - 1
roles/netbootxyz/templates/version.ipxe.j2

@@ -1,4 +1,5 @@
 #!ipxe
 #!ipxe
 {% if upstream_version %}
 {% if upstream_version %}
 set upstream_version {{ upstream_version }}
 set upstream_version {{ upstream_version }}
-{% endif %}
+{% endif %}
+exit

+ 1 - 1
user_overrides.yml

@@ -32,4 +32,4 @@ generate_checksums: true
 
 
 # set licensed media locations in boot.cfg
 # set licensed media locations in boot.cfg
 # win_base_url:
 # win_base_url:
-# rhel_base_url: 
+# rhel_base_url: 

+ 1 - 1
version.txt

@@ -1 +1 @@
-2.0.3
+2.0.4