Sfoglia il codice sorgente

Merge pull request #898 from netbootxyz/development

Release 2.0.38-RC
Antony Messerli 4 anni fa
parent
commit
e563286ea5

+ 2 - 2
.github/ISSUE_TEMPLATE/config.yml

@@ -1,8 +1,8 @@
 blank_issues_enabled: false
 contact_links:
-  - name: Ask a question on Discussions area
+  - name: Ask a question in the Discussions area
     url: https://github.com/netbootxyz/netboot.xyz/discussions
     about: Recommended place for questions, operating system discussion, and ideas.
   - name: Ask a question on the netboot.xyz Discord Server
     url: https://discord.gg/An6PA2a
-    about: Join the netboot.xyz Discord to hang with the community.
+    about: Join the official netboot.xyz Discord!

+ 15 - 0
CHANGELOG.md

@@ -4,6 +4,19 @@ All notable changes to this project will be documented in this file.
 
 ## [Unreleased]
 
+## [2.0.38]
+### Added
+- Fedora 34 and Live Versions
+- Redo Rescue
+- Rescuezilla
+- Rocky Linux
+
+### Changed
+- Switched to using upstream genfsimg for building hybrid images
+- Merged Legacy and EFI disks into single image for USB and ISOs
+- Can now use autoexec.ipxe on the root of a USB key to inject variables or modify the starting bootloader
+- Renamed USB disk from .usb to .img
+
 ## [2.0.37]
 ### Added
 - Ubuntu 21.04 Installer and Live Versions
@@ -21,6 +34,7 @@ All notable changes to this project will be documented in this file.
 ## [2.0.34]
 ### Added
 - Support for AlmaLinux
+
 ### Fixes
 - Updated Debian Kernel for Live images, transitioned over to Actions from Travis
 
@@ -32,6 +46,7 @@ All notable changes to this project will be documented in this file.
 ## [2.0.32]
 ### Fixes
 - Update to latest Ubuntu maintenance release
+
 ### Changed
 - Disabled Unix Menu on EFI as SmartOS not working in that mode and was the only option on EFI
 - Various version updates

+ 3 - 0
README.md

@@ -144,6 +144,7 @@ In addition to being able to host netboot.xyz locally, you can also create your
 | RancherOS | https://rancher.com/rancher-os | Yes | No |
 | Red Hat Enterprise Linux | https://www.redhat.com | User supplied media | No |
 | Regolith | https://regolith-linux.org | No | Yes |
+| Rocky Linux | https://rockylinux.org/ | Yes | No |
 | Scientific Linux | https://scientificlinux.org | Yes | No |
 | Septor | https://septor.sourceforge.io | No | Yes |
 | Slackware | https://www.slackware.com | Yes | No |
@@ -173,7 +174,9 @@ 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 |
+| Redo Rescue | http://redorescue.com/ | LiveCD |
 | Rescatux | https://www.supergrubdisk.org/rescatux/ | LiveCD |
+| Rescuezilla | https://rescuezilla.com/ | LiveCD |
 | ShredOS | https://github.com/PartialVolume/shredos.x86_64 | Kernel | 
 | Super Grub2 Disk | http://www.supergrubdisk.org | ISO - Memdisk |
 | System Rescue | https://system-rescue.org/ | LiveCD |

+ 95 - 6
endpoints.yml

@@ -467,7 +467,7 @@ endpoints:
     flavor: eoan
     kernel: voyager-eoan-squash
   kde-neon-user:
-    path: /ubuntu-squash/releases/download/20210422-0944-92641c1f/
+    path: /ubuntu-squash/releases/download/20210429-0945-92641c1f/
     files:
     - vmlinuz
     - filesystem.squashfs
@@ -588,7 +588,7 @@ endpoints:
     flavor: stable
     kernel: clonezilla-debian-stable
   clonezilla-debian-testing:
-    path: /debian-squash/releases/download/2.7.2-23-002d59cc/
+    path: /debian-squash/releases/download/2.7.2-25-002d59cc/
     files:
     - filesystem.squashfs
     - initrd
@@ -608,7 +608,7 @@ endpoints:
     flavor: stable
     kernel: clonezilla-ubuntu-stable
   clonezilla-ubuntu-testing:
-    path: /ubuntu-squash/releases/download/20210421-groovy-18e78f5f/
+    path: /ubuntu-squash/releases/download/20210428-groovy-18e78f5f/
     files:
     - filesystem.squashfs
     - initrd
@@ -868,7 +868,7 @@ endpoints:
     os: zeninstall
     version: current
   gentoo:
-    path: /asset-mirror/releases/download/20210421T214502Z-8bb30d0c/
+    path: /asset-mirror/releases/download/20210428T214503Z-8bb30d0c/
     files:
     - image.squashfs
     - initrd
@@ -1492,13 +1492,13 @@ endpoints:
     flavor: gnome
     kernel: pureos-gnome
   rescuezilla:
-    path: /asset-mirror/releases/download/2.1.1-7cb3481e/
+    path: /asset-mirror/releases/download/2.1.3-0d2fe010/
     files:
     - filesystem.squashfs
     - initrd
     - vmlinuz
     os: rescuezilla
-    version: current
+    version: groovy
   deepin-20-squash:
     path: /debian-squash/releases/download/20.2-e57a0c4b/
     files:
@@ -1617,3 +1617,92 @@ endpoints:
     version: '21.04'
     flavor: LXDE
     kernel: ubuntu-21.04-LXDE-squash
+  fedora-34-gnome:
+    path: /fedora-assets/releases/download/1.2-57a6bc53/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: fedora
+    version: 34
+    flavor: GNOME
+  fedora-34-SoaS:
+    path: /fedora-assets/releases/download/1.2-09eef943/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: fedora
+    version: 34
+    flavor: SoaS
+  fedora-34-LXQt:
+    path: /fedora-assets/releases/download/1.2-3a8ea8dd/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: fedora
+    version: 34
+    flavor: LXQt
+  fedora-34-Xfce:
+    path: /fedora-assets/releases/download/1.2-c6f3c188/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: fedora
+    version: 34
+    flavor: Xfce
+  fedora-34-LXDE:
+    path: /fedora-assets/releases/download/1.2-80b86a90/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: fedora
+    version: 34
+    flavor: LXDE
+  fedora-34-MATE_Compiz:
+    path: /fedora-assets/releases/download/1.2-0ec8ea9b/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: fedora
+    version: 34
+    flavor: MATE_Compiz
+  fedora-34-i3:
+    path: /fedora-assets/releases/download/1.2-51a02ef1/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: fedora
+    version: 34
+    flavor: i3
+  fedora-34-KDE:
+    path: /fedora-assets/releases/download/1.2-abf1ad7a/
+    files:
+    - vmlinuz
+    - initrd
+    - squashfs.img
+    os: fedora
+    version: 34
+    flavor: KDE
+  rescuezilla-focal:
+    path: /asset-mirror/releases/download/2.1.3-21d8490a/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: rescuezilla
+    version: focal
+    kernel: rescuezilla-focal
+  redorescue:
+    path: /asset-mirror/releases/download/3.0.2-cc0d71c0/
+    files:
+    - filesystem.squashfs
+    - initrd
+    - vmlinuz
+    os: redorescue
+    version: buster

+ 42 - 22
roles/netbootxyz/defaults/main.yml

@@ -12,23 +12,15 @@ bootloaders:
     output_bin: -arm64.efi
     type: DHCP-snp
   hybrid:
-  - desc: Used for CD/DVD, Virtual CDs, DRAC/iLO, VMware, Virtual Box
-    ipxe_bin: ipxe.iso
-    output_bin: -hybrid.iso
-    type: ISO
-  - desc: Used for creation of USB Keys
-    ipxe_bin: ipxe.usb
-    output_bin: -hybrid.usb
-    type: USB
-  legacy:
   - desc: Used for CD/DVD, Virtual CDs, DRAC/iLO, VMware, Virtual Box
     ipxe_bin: ipxe.iso
     output_bin: .iso
     type: ISO
   - desc: Used for creation of USB Keys
-    ipxe_bin: ipxe.usb
-    output_bin: .usb
-    type: USB
+    ipxe_bin: ipxe.img
+    output_bin: .img
+    type: IMG
+  legacy:
   - desc: Used for booting from GRUB/EXTLINUX
     ipxe_bin: ipxe.lkrn
     output_bin: .lkrn
@@ -55,14 +47,6 @@ bootloaders:
     output_bin: -rpi4-snp.efi
     type: DHCP-snp
   uefi:
-  - desc: EFI BIOS, works in Virtual Box EFI mode
-    ipxe_bin: ipxe-efi.eiso
-    output_bin: -efi.iso
-    type: ISO
-  - desc: Used for creation of USB Keys
-    ipxe_bin: ipxe-efi.usb
-    output_bin: -efi.usb
-    type: USB
   - desc: DHCP EFI boot image file, uses built-in iPXE NIC drivers
     ipxe_bin: ipxe.efi
     output_bin: .efi
@@ -299,6 +283,9 @@ releases:
     mirror: http://ftp.openbsd.org
     name: OpenBSD
     versions:
+    - code_name: '6.9'
+      image_ver: '69'
+      name: '6.9'
     - code_name: '6.8'
       image_ver: '68'
       name: '6.8'
@@ -315,8 +302,8 @@ releases:
       image_ver: '64'
       name: '6.4'
     - code_name: snapshots
-      image_ver: '68'
-      name: 6.8 Latest Snapshot
+      image_ver: '69'
+      name: 6.9 Latest Snapshot
   opensuse:
     base_dir: distribution/leap
     enabled: true
@@ -355,6 +342,15 @@ releases:
     enabled: true
     menu: linux
     name: Red Hat Enterprise Linux
+  rockylinux:
+    base_dir: pub/rocky
+    enabled: true
+    menu: linux
+    mirror: http://download.rockylinux.org
+    name: Rocky Linux
+    versions:
+    - code_name: 8.3
+      name: 8.3
   scientific:
     base_dir: linux/scientific
     enabled: true
@@ -606,6 +602,14 @@ utilitiesefi:
     enabled: true
     name: Kaspersky Rescue Disk
     type: ipxemenu
+  redorescue:
+    enabled: true
+    initrd: ${live_endpoint}{{ endpoints.redorescue.path }}initrd
+    kernel: ${live_endpoint}{{ endpoints.redorescue.path }}vmlinuz boot=live noprompt nocomponents 
+      setkmap=us fetch=${live_endpoint}{{ endpoints.redorescue.path }}filesystem.squashfs
+      initrd=initrd
+    name: RedoRescue
+    type: direct
   rescatux:
     enabled: true
     initrd: ${live_endpoint}{{ endpoints.rescatux.path }}initrd
@@ -614,6 +618,10 @@ utilitiesefi:
       initrd=initrd
     name: Rescatux
     type: direct
+  rescuezilla:
+    enabled: true
+    name: Rescuezilla
+    type: ipxemenu
   shredos:
     enabled: true
     name: ShredOS
@@ -682,6 +690,14 @@ utilitiespcbios:
     type: memtest
     util_path: https://boot.netboot.xyz/utils/memtest86-5.01.0
     version: 5.01.0
+  redorescue:
+    enabled: true
+    initrd: ${live_endpoint}{{ endpoints.redorescue.path }}initrd
+    kernel: ${live_endpoint}{{ endpoints.redorescue.path }}vmlinuz boot=live noprompt nocomponents 
+      setkmap=us fetch=${live_endpoint}{{ endpoints.redorescue.path }}filesystem.squashfs
+      initrd=initrd
+    name: RedoRescue
+    type: direct
   rescatux:
     enabled: true
     initrd: ${live_endpoint}{{ endpoints.rescatux.path }}initrd
@@ -690,6 +706,10 @@ utilitiespcbios:
       initrd=initrd
     name: Rescatux
     type: direct
+  rescuezilla:
+    enabled: true
+    name: Rescuezilla
+    type: ipxemenu
   shredos:
     enabled: true
     name: ShredOS

+ 1 - 30
roles/netbootxyz/tasks/generate_disks_efi.yml

@@ -37,33 +37,6 @@
     tags:
     - skip_ansible_lint
 
-  - name: Generate iPXE EFI ISO Disk
-    shell: |
-      mkdir -p efi_tmp
-      dd if=/dev/zero of=efi_tmp/ipxe.img count=2880
-      mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880
-      mmd -i efi_tmp/ipxe.img ::efi ::efi/boot
-      mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi ::efi/boot/bootx64.efi
-      genisoimage -o ipxe-efi.eiso -eltorito-alt-boot -eltorito-boot ipxe.img -no-emul-boot efi_tmp
-    args:
-      chdir: "{{ ipxe_source_dir }}/src"
-      warn: false
-    tags:
-    - skip_ansible_lint
-
-  - name: Generate iPXE EFI USB image
-    shell: |
-      truncate -s 3MiB ipxe-efi.usb
-      mkfs.vfat ipxe-efi.usb
-      mmd -i ipxe-efi.usb "::/efi"
-      mmd -i ipxe-efi.usb "::/efi/boot"
-      mcopy -i ipxe-efi.usb bin-x86_64-efi/ipxe.efi "::/efi/boot/bootx64.efi"
-    args:
-      chdir: "{{ ipxe_source_dir }}/src"
-      warn: false
-    tags:
-    - skip_ansible_lint
-
   - name: Copy iPXE EFI builds to http directory
     copy:
       src: "{{ ipxe_source_dir }}/src/{{ item.src }}"
@@ -73,8 +46,6 @@
       - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" }
       - { src: "bin-x86_64-efi/snp.efi", dest: "{{ bootloader_filename }}-snp.efi" }
       - { src: "bin-x86_64-efi/snponly.efi", dest: "{{ bootloader_filename }}-snponly.efi" }
-      - { src: "ipxe-efi.eiso", dest: "{{ bootloader_filename }}-efi.iso" }
-      - { src: "ipxe-efi.usb", dest: "{{ bootloader_filename }}-efi.usb" }
     when: bootloader_filename != "netboot.xyz-packet"
 
   - name: Copy iPXE EFI builds to http directory for packet
@@ -84,4 +55,4 @@
       remote_src: True
     with_items:
       - { src: "bin-x86_64-efi/ipxe.efi", dest: "{{ bootloader_filename }}.efi" }
-    when: bootloader_filename == "netboot.xyz-packet"
+    when: bootloader_filename == "netboot.xyz-packet"

+ 4 - 2
roles/netbootxyz/tasks/generate_disks_hybrid.yml

@@ -2,7 +2,8 @@
 
   - name: Generate hybrid ISO image
     shell: |
-      ./util/genfsimg -o {{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-hybrid.iso \
+      ./util/genfsimg -o {{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}.iso \
+        -s {{ bootloader_filename }} \
         {{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}.efi \
         {{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}.lkrn
     args:
@@ -12,7 +13,8 @@
 
   - name: Generate hybrid USB image
     shell: |
-      ./util/genfsimg -o {{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-hybrid.usb \
+      ./util/genfsimg -o {{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}.img \
+        -s {{ bootloader_filename }} \
         {{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}.efi \
         {{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}.lkrn
     args:

+ 2 - 4
roles/netbootxyz/tasks/generate_disks_legacy.yml

@@ -23,7 +23,7 @@
   - name: Compile iPXE bootloader for Legacy BIOS
     shell: |
       make clean
-      make EMBED={{ bootloader_filename }} TRUST={{ trust_files }} bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb 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:
@@ -36,9 +36,7 @@
       remote_src: True
     with_items:
     - ".dsk"
-    - ".iso"
     - ".lkrn"
-    - ".usb"
     - ".kpxe"
     when: bootloader_filename != "netboot.xyz-packet"
 
@@ -56,4 +54,4 @@
       src: "{{ ipxe_source_dir }}/src/bin/undionly.kpxe"
       dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-undionly.kpxe"
       remote_src: True
-    when: bootloader_filename != "netboot.xyz-packet"
+    when: bootloader_filename != "netboot.xyz-packet"

+ 1 - 1
roles/netbootxyz/templates/index.html.j2

@@ -35,7 +35,7 @@ exit
   </p>
 
 {% if generate_disks_hybrid == true %}
-  <p>Hybrid iPXE Bootloaders - Legacy and EFI Combined</p>
+  <p>Legacy and EFI Combined iPXE Bootloaders</p>
   <table style="width:100%">
     <!-- table header -->
     <tr>

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

@@ -69,7 +69,6 @@ set menu_unix 0
 set menu_freedos 0
 set menu_live 0
 set menu_live_arm 1
-set menu_security 0
 set menu_windows 0
 set menu_utils 0
 set menu_utils_arm 1
@@ -78,7 +77,6 @@ goto architectures_end
 :efi
 set menu_bsd 0
 set menu_freedos 0
-set menu_security 0
 set menu_unix 0
 goto architectures_end
 :architectures_end
@@ -116,7 +114,6 @@ set ipxe_disk netboot.xyz-packet-arm64.efi
 set menu_bsd 0
 set menu_freedos 0
 set menu_live 0
-set menu_security 0
 set menu_windows 0
 set menu_utils 0
 goto clouds_end

+ 30 - 0
roles/netbootxyz/templates/menu/rescuezilla.ipxe.j2

@@ -0,0 +1,30 @@
+#!ipxe
+
+# Rescuezilla Disk imaging
+# https://rescuezilla.com/
+
+:rescuezilla
+set os {{ utilitiesefi.rescuezilla.name }}
+menu ${os} Live CD
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "rescuezilla" %}
+item {{ value.os }}_{{ value.version }} ${space} ${os} {{ value.version }}
+{% endif %}
+{% endfor %}
+choose rescuezilla_version || goto rescuezilla_exit
+goto ${rescuezilla_version}
+
+{% for key, value in endpoints.items() | sort %}
+{% if value.os == "rescuezilla" %}
+:{{ value.os }}_{{ value.version }}
+set kernel_url ${live_endpoint}{{ value.path }}
+imgfree
+kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${kernel_url}filesystem.squashfs initrd=initrd ${cmdline}
+initrd ${kernel_url}initrd
+boot
+{% endif %}
+{% endfor %}
+
+:rescuezilla_exit
+clear menu
+exit 0

+ 72 - 0
roles/netbootxyz/templates/menu/rockylinux.ipxe.j2

@@ -0,0 +1,72 @@
+#!ipxe
+
+# Rocky Linux
+# https://rockylinux.org/
+
+isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}:::none nameserver=${dns}
+set ipparam BOOTIF=${netX/mac} ${ipparam}
+
+goto ${menu} ||
+
+:rockylinux
+clear osversion
+set os {{ releases.rockylinux.name }}
+menu ${os} - ${arch}
+{% for item in releases.rockylinux.versions %}
+item {{ item.code_name }} ${space} ${os} {{ item.name }}
+{% endfor %}
+isset ${osversion} || choose osversion || goto linux_menu
+echo ${cls}
+set dir ${rockylinux_base_dir}/${osversion}/BaseOS/${arch}/os
+set repo ${rockylinux_mirror}/${dir}
+goto boottype
+
+:boottype
+set ova ${os} ${osversion}
+menu ${os} ${arch} boot type
+item graphical ${ova} graphical installer
+item text ${ova} text based installer
+item rescue ${ova} rescue
+item kickstart ${ova} set kickstart url [ ${ksurl} ]
+item kickstart_device ${ova} set ksdevice [ ${ksdevice} ]
+isset ${bt} || choose bt || goto rockylinux
+echo ${cls}
+iseq ${bt} text && goto text ||
+iseq ${bt} rescue && goto rescue ||
+iseq ${bt} kickstart && goto kickstart ||
+iseq ${bt} kickstart_device && goto kickstart_device ||
+goto bootos_images
+
+:text
+set params text ||
+goto bootos_images
+
+:rescue
+set params rescue ||
+goto bootos_images
+
+:kickstart
+echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl
+set params inst.ks=${ksurl} ||
+clear bt
+goto boottype
+
+:kickstart_device
+echo -n Specify ksdevice param for ${os} ${osversion}: && read ksdevice
+set ksdevice ${ksdevice} ||
+clear bt
+goto boottype
+
+:bootos_images
+imgfree
+kernel ${rockylinux_mirror}/${dir}/images/pxeboot/vmlinuz inst.repo=${repo} ${params} ${ipparam} initrd=initrd.img ${cmdline}
+initrd ${rockylinux_mirror}/${dir}/images/pxeboot/initrd.img
+echo
+echo MD5sums:
+md5sum vmlinuz initrd.img
+boot
+goto linux_menu
+
+:linux_menu
+clear menu
+exit 0

+ 0 - 29
roles/netbootxyz/templates/menu/security.ipxe.j2

@@ -1,29 +0,0 @@
-#!ipxe
-
-goto ${menu} ||
-
-:security_menu
-menu Security Distributions - Current Arch [ ${arch} ]
-iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
-item --gap Security Distributions
-{% for key, value in releases.items() | sort %}
-{% if value.enabled is defined and value.menu == "security" and value.enabled | bool %}
-item {{ key }} ${space} {{ value.name }}
-{% endif %}
-{% endfor %}
-choose menu || goto security_exit
-echo ${cls}
-goto ${menu} ||
-iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu
-
-:verify_sigs
-imgverify ${menu}.ipxe ${sigs}${menu}.ipxe.sig || goto error
-goto change_menu
-
-:change_menu
-chain ${menu}.ipxe || goto error
-goto security_menu
-
-:security_exit
-clear menu
-exit 0

+ 1 - 1
version.txt

@@ -1 +1 @@
-2.0.37
+2.0.38