Bladeren bron

Adds experimental Live CD menus for Debian and Ubuntu (#389)

* Adds experimental Live CD menus for Debian and Ubuntu

Adds new extracted and hosted CDs for booting Debian
and Ubuntu Live up into memory.  Support is experimental
and work is ongoing.

* Add endpoints and get latest releases

* Add ip=dhcp for 19.10 booting

https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1848018

* Try url fetch
Antony Messerli 5 jaren geleden
bovenliggende
commit
c585162dd1
6 gewijzigde bestanden met toevoegingen van 196 en 46 verwijderingen
  1. 3 0
      src/boot.cfg
  2. 76 0
      src/live-debian.ipxe
  3. 114 0
      src/live-ubuntu.ipxe
  4. 2 2
      src/live.ipxe
  5. 0 43
      src/livedebian.ipxe
  6. 1 1
      src/menu.ipxe

+ 3 - 0
src/boot.cfg

@@ -22,6 +22,9 @@ set sigs http://${boot_domain}/sigs/
 # set location of latest iPXE
 set ipxe_disk netboot.xyz-undionly.kpxe
 
+# set location of custom netboot.xyz live assets
+set live_endpoint https://github.com/netbootxyz
+
 ##################
 # official mirrors
 ##################

+ 76 - 0
src/live-debian.ipxe

@@ -0,0 +1,76 @@
+#!ipxe
+
+goto ${menu} ||
+
+:live_menu
+set os Debian Live
+menu ${os} - Current Arch [ ${arch} ]
+iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
+item --gap ${os} Versions
+item buster ${space} ${os} 10 (buster)
+choose live_version || goto live_exit
+menu ${os} ${live_version}
+item --gap ${os} Flavors
+goto ${live_version}
+
+:stretch
+goto flavor_select
+
+:buster
+item debian-10-cinnamon-squash ${space} Debian 10 Cinnamon
+item debian-10-default-squash ${space} Debian 10 Core
+item debian-10-gnome-squash ${space} Debian 10 Gnome
+item debian-10-kde-squash ${space} Debian 10 Kde
+item debian-10-lxde-squash ${space} Debian 10 Lxde
+item debian-10-lxqt-squash ${space} Debian 10 Lxqt
+item debian-10-mate-squash ${space} Debian 10 Mate
+item debian-10-xfce-squash ${space} Debian 10 Xfce
+goto flavor_select
+
+:flavor_select
+choose flavor || goto live_menu
+echo ${cls}
+goto ${flavor} ||
+
+:debian-10-cinnamon-squash
+set squash_url ${live_endpoint}/debian-squash/releases/download/10.1.0-51162b7a/filesystem.squashfs
+set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2-4acbfed0/
+goto boot
+:debian-10-default-squash
+set squash_url ${live_endpoint}/debian-squash/releases/download/10.1.0-600c59c0/filesystem.squashfs
+set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2-4acbfed0/
+goto boot
+:debian-10-gnome-squash
+set squash_url ${live_endpoint}/debian-squash/releases/download/10.1.0-787d3b4a/filesystem.squashfs
+set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2-4acbfed0/
+goto boot
+:debian-10-kde-squash
+set squash_url ${live_endpoint}/debian-squash/releases/download/10.1.0-88a7a1a3/filesystem.squashfs
+set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2-4acbfed0/
+goto boot
+:debian-10-lxde-squash
+set squash_url ${live_endpoint}/debian-squash/releases/download/10.1.0-30a4aa90/filesystem.squashfs
+set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2-4acbfed0/
+goto boot
+:debian-10-lxqt-squash
+set squash_url ${live_endpoint}/debian-squash/releases/download/10.1.0-39d7e341/filesystem.squashfs
+set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2-4acbfed0/
+goto boot
+:debian-10-mate-squash
+set squash_url ${live_endpoint}/debian-squash/releases/download/10.1.0-466ca031/filesystem.squashfs
+set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2-4acbfed0/
+goto boot
+:debian-10-xfce-squash
+set squash_url ${live_endpoint}/debian-squash/releases/download/10.1.0-a0eae41d/filesystem.squashfs
+set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2-4acbfed0/
+goto boot
+
+:boot
+imgfree
+kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd
+initrd ${kernel_url}initrd
+boot
+
+:live_exit
+clear menu
+exit 0

+ 114 - 0
src/live-ubuntu.ipxe

@@ -0,0 +1,114 @@
+#!ipxe
+
+goto ${menu} ||
+
+:live_menu
+set os Ubuntu Live
+menu ${os} - Current Arch [ ${arch} ]
+iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
+item --gap ${os} Versions
+item bionic ${space} ${os} 18.04
+item eoan ${space} ${os} 19.10
+choose live_version || goto live_exit
+menu ${os} ${live_version}
+item --gap ${os} Flavors
+goto ${live_version}
+
+:bionic
+item ubuntu-18.04-Budgie-squash ${space} Ubuntu 18.04 Budgie
+item ubuntu-18.04-KDE-squash ${space} Ubuntu 18.04 Kde
+item ubuntu-18.04-LXDE-squash ${space} Ubuntu 18.04 Lxde
+item ubuntu-18.04-MATE-squash ${space} Ubuntu 18.04 Mate
+item ubuntu-18.04-default-squash ${space} Ubuntu 18.04 Core
+item ubuntu-18.04-kylin-squash ${space} Ubuntu 18.04 Kylin
+item ubuntu-18.04-xfce-squash ${space} Ubuntu 18.04 Xfce
+goto flavor_select
+
+:eoan
+item ubuntu-19.10-Budgie-squash ${space} Ubuntu 19.10 Budgie
+item ubuntu-19.10-KDE-squash ${space} Ubuntu 19.10 Kde
+item ubuntu-19.10-LXDE-squash ${space} Ubuntu 19.10 Lxde
+item ubuntu-19.10-MATE-squash ${space} Ubuntu 19.10 Mate
+item ubuntu-19.10-default-squash ${space} Ubuntu 19.10 Core
+item ubuntu-19.10-kylin-squash ${space} Ubuntu 19.10 Kylin
+item ubuntu-19.10-xfce-squash ${space} Ubuntu 19.10 Xfce
+goto flavor_select
+
+:flavor_select
+choose flavor || goto live_menu
+echo ${cls}
+goto ${flavor} ||
+
+:ubuntu-18.04-Budgie-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-fbf44fff/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+goto 18.04-boot
+:ubuntu-18.04-KDE-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-33e8e2f8/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+goto 18.04-boot
+:ubuntu-18.04-LXDE-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-2f9cd5be/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+goto 18.04-boot
+:ubuntu-18.04-MATE-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-c629718a/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+goto 18.04-boot
+:ubuntu-18.04-default-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-b9bffe60/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+goto 18.04-boot
+:ubuntu-18.04-kylin-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-8c2102eb/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+goto 18.04-boot
+:ubuntu-18.04-xfce-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-d9bd73c3/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+goto 18.04-boot
+:ubuntu-19.10-Budgie-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/945f7f4b-bda09025/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/
+goto 19.10-boot
+:ubuntu-19.10-KDE-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/9854741e-b243fefb/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/
+goto 19.10-boot
+:ubuntu-19.10-LXDE-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/8b8b0336-f53591b5/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/
+goto 19.10-boot
+:ubuntu-19.10-MATE-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/b8a2a185-48069fc4/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/
+goto 19.10-boot
+:ubuntu-19.10-default-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/ee829212-6e8d29dd/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/
+goto 19.10-boot
+:ubuntu-19.10-kylin-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/e7831484-1d80183a/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/
+goto 19.10-boot
+:ubuntu-19.10-xfce-squash
+set squash_url ${live_endpoint}/ubuntu-squash/releases/download/862cad91-9437400f/filesystem.squashfs
+set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/
+goto 19.10-boot
+
+:18.04-boot
+imgfree
+kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd
+initrd ${kernel_url}initrd
+boot
+
+:19.10-boot
+imgfree
+kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${squash_url} initrd=initrd
+initrd ${kernel_url}initrd
+boot
+
+:live_exit
+clear menu
+exit 0
+

+ 2 - 2
src/live.ipxe

@@ -6,8 +6,8 @@ goto ${menu} ||
 menu Live Boot Distributions - Current Arch [ ${arch} ]
 iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
 item --gap Live Boot Distributions
-item livedebian ${space} Debian Live
-item livegrml ${space} Grml Live
+item live-debian ${space} Debian Live
+item live-ubuntu ${space} Ubuntu Live
 choose menu || goto live_exit
 echo ${cls}
 goto ${menu} ||

+ 0 - 43
src/livedebian.ipxe

@@ -1,43 +0,0 @@
-#!ipxe
-
-# Debian Live
-# https://www.debian.org/devel/debian-live/
-
-goto ${menu}
-
-:livedebian
-set os Debian Live
-menu ${os}
-item --gap Versions
-item 8.11.0 ${space} ${os} 8.11.0
-choose livedebian_version || goto livedebian_exit
-
-:livedebian_flavor
-menu ${os} ${livedebian_version}
-item --gap Flavors
-item cinnamon-desktop ${space} ${livedebian_version} Cinnamon
-item gnome-desktop ${space} ${livedebian_version} Gnome
-item kde-desktop ${space} ${livedebian_version} KDE
-item lxde-desktop ${space} ${livedebian_version} LXDE
-item mate-desktop ${space} ${livedebian_version} MATE
-item standard ${space} ${livedebian_version} Standard
-item xfce-desktop ${space} ${livedebian_version} XFCE
-choose --default ${type} flavor || goto livedebian
-echo ${cls}
-goto livedebian_boot
-
-:livedebian_boot
-set webboot_host cdimage.debian.org
-set livedebian_url http://cdimage.debian.org/cdimage/archive/${livedebian_version}-live/amd64/webboot/debian-live-${livedebian_version}-amd64-${flavor}
-imgfree
-kernel ${livedebian_url}.vmlinuz boot=live config hooks=filesystem username=live noeject ${console} fetch=${livedebian_url}.squashfs initrd=debian-live-${livedebian_version}-amd64-${flavor}.initrd.img
-module ${livedebian_url}.initrd.img
-# used to resolve DNS
-module http://${boot_domain}/live-helpers/debian/libresolv.so.2 /lib/libresolv.so.2
-module http://${boot_domain}/live-helpers/debian/libnss_dns.so.2 /lib/libnss_dns.so.2
-boot
-goto livedebian_exit
-
-:livedebian_exit
-clear menu
-exit 0

+ 1 - 1
src/menu.ipxe

@@ -42,9 +42,9 @@ item local ${space} Boot from local hdd
 item --gap Distributions:
 iseq ${menu_linux} 1 && item linux ${space} Linux Installs ||
 iseq ${menu_linux_arm} 1 && item linux-arm ${space} Linux Installs ||
+iseq ${menu_live} 1 && item live ${space} Live CDs (experimental) ||
 iseq ${menu_bsd} 1 && item bsd ${space} BSD Installs ||
 iseq ${menu_freedos} 1 && item freedos ${space} FreeDOS || 
-iseq ${menu_live} 1 && item live ${space} Live Boot ||
 iseq ${menu_security} 1 && item security ${space} Security Related ||
 iseq ${menu_windows} 1 && item windows ${space} Windows ||
 item --gap Tools: