Pārlūkot izejas kodu

Starts to pull mirror configs into boot.cfg

Let's the mirror configs be a little more
configurable and uses official mirrors where available.
Antony Messerli 7 gadi atpakaļ
vecāks
revīzija
f08a742810
10 mainītis faili ar 75 papildinājumiem un 37 dzēšanām
  1. 4 4
      src/archlinux.ipxe
  2. 42 0
      src/boot.cfg
  3. 4 4
      src/centos.ipxe
  4. 2 3
      src/debian.ipxe
  5. 1 2
      src/devuan.ipxe
  6. 3 3
      src/fedora.ipxe
  7. 6 7
      src/mageia.ipxe
  8. 8 8
      src/opensuse.ipxe
  9. 3 3
      src/slackware.ipxe
  10. 2 3
      src/ubuntu.ipxe

+ 4 - 4
src/archlinux.ipxe

@@ -20,10 +20,10 @@ goto boot
 :boot
 :boot
 imgfree
 imgfree
 iseq ${arch} i386 && set bootarch i686 || set bootarch x86_64
 iseq ${arch} i386 && set bootarch i686 || set bootarch x86_64
-set dir archlinux/iso/${arch_version}/arch/boot
-set params initrd=archiso.img archiso_http_srv=http://${mirror}/archlinux/iso/${arch_version}/ archisobasedir=arch verify=y ip=dhcp net.ifnames=0 ${console}
-kernel http://${mirror}/${dir}/${bootarch}/vmlinuz ${params} initrd=archiso.img
-initrd http://${mirror}/${dir}/${bootarch}/archiso.img
+set dir ${archlinux_base_dir}/iso/${arch_version}/arch/boot
+set params initrd=archiso.img archiso_http_srv=http://${archlinux_mirror}/${archlinux_base_dir}/iso/${arch_version}/ archisobasedir=arch verify=y ip=dhcp net.ifnames=0 ${console}
+kernel http://${archlinux_mirror}/${dir}/${bootarch}/vmlinuz ${params} initrd=archiso.img
+initrd http://${archlinux_mirror}/${dir}/${bootarch}/archiso.img
 echo
 echo
 echo MD5sums:
 echo MD5sums:
 md5sum vmlinuz archiso.img
 md5sum vmlinuz archiso.img

+ 42 - 0
src/boot.cfg

@@ -1,5 +1,6 @@
 #!ipxe
 #!ipxe
 
 
+:global_vars
 # set site name
 # set site name
 set site_name netboot.xyz
 set site_name netboot.xyz
 
 
@@ -24,6 +25,47 @@ set sigs http://${boot_domain}/sigs/
 # set location of latest iPXE
 # set location of latest iPXE
 set ipxe_disk netboot.xyz-undionly.kpxe
 set ipxe_disk netboot.xyz-undionly.kpxe
 
 
+##################
+# official mirrors
+##################
+:mirrors
+### ArchLinux
+set archlinux_mirror mirror.rackspace.com
+set archlinux_base_dir archlinux
+
+### CentOS
+set centos_mirror mirror.centos.org
+set centos_base_dir centos
+
+### Debian
+set debian_mirror deb.debian.org
+set debian_base_dir debian
+
+### Devuan
+set devuan_mirror auto.mirror.devuan.org
+set devuan_base_dir devuan
+
+### Fedora
+set fedora_mirror mirror.rackspace.com
+set fedora_base_dir fedora
+
+### Mageia
+set mageia_mirror mirrors.kernel.org
+set mageia_base_dir mageia
+
+### OpenSUSE
+set opensuse_mirror download.opensuse.org
+set opensuse_base_dir distribution/leap
+
+### Slackware
+set slackware_mirror mirror.rackspace.com
+set slackware_base_dir slackware
+
+### Ubuntu
+set ubuntu_mirror archive.ubuntu.com
+set ubuntu_base_dir ubuntu
+
+
 #################################################
 #################################################
 # determine architectures and enable menu options
 # determine architectures and enable menu options
 #################################################
 #################################################

+ 4 - 4
src/centos.ipxe

@@ -15,8 +15,8 @@ item 6.9 ${os} 6.9
 isset ${osversion} || choose osversion || goto linux_menu
 isset ${osversion} || choose osversion || goto linux_menu
 echo ${cls}
 echo ${cls}
 iseq ${osversion} 6.9 && set dir ${menu}/${osversion}/os/${arch} ||
 iseq ${osversion} 6.9 && set dir ${menu}/${osversion}/os/${arch} ||
-set dir ${menu}/${osversion}/os/x86_64
-set repo http://${mirror}/${dir}
+set dir ${centos_base_dir}/${osversion}/os/x86_64
+set repo http://${centos_mirror}/${dir}
 goto boottype
 goto boottype
 
 
 :boottype
 :boottype
@@ -57,8 +57,8 @@ goto boottype
 
 
 :bootos_images
 :bootos_images
 imgfree
 imgfree
-kernel http://${mirror}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${netcfg} ${console} initrd=initrd.img
-initrd http://${mirror}/${dir}/images/pxeboot/initrd.img
+kernel http://${centos_mirror}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${netcfg} ${console} initrd=initrd.img
+initrd http://${centos_mirror}/${dir}/images/pxeboot/initrd.img
 echo
 echo
 echo MD5sums:
 echo MD5sums:
 md5sum vmlinuz initrd.img
 md5sum vmlinuz initrd.img

+ 2 - 3
src/debian.ipxe

@@ -9,7 +9,6 @@ goto ${menu}
 set os Debian
 set os Debian
 clear debian_version
 clear debian_version
 clear older_release
 clear older_release
-set debian_mirror ${mirror}
 menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}]
 menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}]
 item --gap Latest Releases
 item --gap Latest Releases
 item stretch ${space} ${os} 9.0 (stretch)
 item stretch ${space} ${os} 9.0 (stretch)
@@ -30,12 +29,12 @@ set debian_mirror archive.debian.org
 echo Setting mirror to ${debian_mirror}
 echo Setting mirror to ${debian_mirror}
 clear debian_version
 clear debian_version
 echo -n Please set enter code name of release: ${} && read debian_version
 echo -n Please set enter code name of release: ${} && read debian_version
-set dir debian/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/
+set dir ${debian_base_dir}/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/
 goto deb_boot_type
 goto deb_boot_type
 
 
 :mirrorcfg
 :mirrorcfg
 set mirrorcfg mirror/suite=${debian_version}
 set mirrorcfg mirror/suite=${debian_version}
-set dir debian/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/
+set dir ${debian_base_dir}/dists/${debian_version}/main/installer-${arch_a}/current/images/netboot/
 goto deb_boot_type
 goto deb_boot_type
 
 
 :deb_boot_type
 :deb_boot_type

+ 1 - 2
src/devuan.ipxe

@@ -9,7 +9,6 @@ goto ${menu}
 set os Devuan
 set os Devuan
 clear devuan_version
 clear devuan_version
 clear older_release
 clear older_release
-set devuan_mirror auto.mirror.devuan.org
 menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}]
 menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}]
 item --gap Latest Releases
 item --gap Latest Releases
 item jessie ${space} ${os} 1.0 (jessie)
 item jessie ${space} ${os} 1.0 (jessie)
@@ -21,7 +20,7 @@ goto mirrorcfg
 
 
 :mirrorcfg
 :mirrorcfg
 set mirrorcfg mirror/suite=${devuan_version}
 set mirrorcfg mirror/suite=${devuan_version}
-set dir devuan/dists/${devuan_version}/main/installer-${arch_a}/current/images/netboot/
+set dir ${devuan_base_dir}/dists/${devuan_version}/main/installer-${arch_a}/current/images/netboot/
 goto devuan_boot_type
 goto devuan_boot_type
 
 
 :devuan_boot_type
 :devuan_boot_type

+ 3 - 3
src/fedora.ipxe

@@ -25,7 +25,7 @@ item Everything ${ova} Everything
 item Server ${ova} Server
 item Server ${ova} Server
 item Workstation ${ova} Workstation
 item Workstation ${ova} Workstation
 isset ${sku_type} || choose sku_type || goto fedora
 isset ${sku_type} || choose sku_type || goto fedora
-set dir fedora/releases/${osversion}/${sku_type}/${arch}/os
+set dir ${fedora_base_dir}/releases/${osversion}/${sku_type}/${arch}/os
 set ova ${ova} ${sku_type}
 set ova ${ova} ${sku_type}
 echo ${cls}
 echo ${cls}
 goto boottype
 goto boottype
@@ -52,8 +52,8 @@ goto boot
 
 
 :boot
 :boot
 imgfree
 imgfree
-kernel http://${mirror}/${dir}/images/pxeboot/vmlinuz repo=http://${mirror}/${dir} ${params} ${console} initrd=initrd.img
-initrd http://${mirror}/${dir}/images/pxeboot/initrd.img
+kernel http://${fedora_mirror}/${dir}/images/pxeboot/vmlinuz repo=http://${fedora_mirror}/${dir} ${params} ${console} initrd=initrd.img
+initrd http://${fedora_mirror}/${dir}/images/pxeboot/initrd.img
 echo
 echo
 echo MD5sums:
 echo MD5sums:
 md5sum vmlinuz initrd.img
 md5sum vmlinuz initrd.img

+ 6 - 7
src/mageia.ipxe

@@ -8,6 +8,7 @@ goto ${menu} ||
 :mageia
 :mageia
 set os Mageia
 set os Mageia
 menu Mageia - ${arch} - Image Sig Checks: [${img_sigs_enabled}]
 menu Mageia - ${arch} - Image Sig Checks: [${img_sigs_enabled}]
+item 6 ${os} 6
 item 5 ${os} 5
 item 5 ${os} 5
 item 4 ${os} 4
 item 4 ${os} 4
 item cauldron ${os} cauldron
 item cauldron ${os} cauldron
@@ -15,14 +16,12 @@ choose version || goto mageia_exit
 goto mageia_boot
 goto mageia_boot
 
 
 :mageia_boot
 :mageia_boot
-set server mirrors.kernel.org
-set mirror http://${server}
-set dir mageia/distrib/${version}/x86_64 && set dir2 isolinux/x86_64 ||
-iseq ${arch} i386 && set dir mageia/distrib/${version}/i586 && set dir2 isolinux/i386 ||
-set automatic method:http,network:dhcp,server:${server},directory:/${dir}
+set dir ${mageia_base_dir}/distrib/${version}/x86_64 && set dir2 isolinux/x86_64 ||
+iseq ${arch} i386 && set dir ${mageia_base_dir}/distrib/${version}/i586 && set dir2 isolinux/i386 ||
+set automatic method:http,network:dhcp,server:${mageia_mirror},directory:/${dir}
 imgfree
 imgfree
-kernel ${mirror}/${dir}/${dir2}/vmlinuz
-initrd ${mirror}/${dir}/${dir2}/all.rdz
+kernel http://${mageia_mirror}/${dir}/${dir2}/vmlinuz
+initrd http://${mageia_mirror}/${dir}/${dir2}/all.rdz
 imgargs vmlinuz automatic=${automatic} vga=788 splash=silent ${console} initrd=all.rdz
 imgargs vmlinuz automatic=${automatic} vga=788 splash=silent ${console} initrd=all.rdz
 echo
 echo
 echo MD5sums:
 echo MD5sums:

+ 8 - 8
src/opensuse.ipxe

@@ -2,20 +2,20 @@
 
 
 # OpenSUSE Operating System
 # OpenSUSE Operating System
 # http://opensuse.org
 # http://opensuse.org
-
+set distro opensuse
 menu openSUSE - ${arch} - Image Sig Checks: [${img_sigs_enabled}]
 menu openSUSE - ${arch} - Image Sig Checks: [${img_sigs_enabled}]
 item 42.3 openSUSE Leap 42.3
 item 42.3 openSUSE Leap 42.3
 item 42.2 openSUSE Leap 42.2
 item 42.2 openSUSE Leap 42.2
 item 42.1 openSUSE Leap 42.1
 item 42.1 openSUSE Leap 42.1
 item tumbleweed openSUSE tumbleweed
 item tumbleweed openSUSE tumbleweed
 choose version || goto opensuse_exit
 choose version || goto opensuse_exit
-set dir opensuse/distribution/leap/${version}/repo/oss
-iseq ${version} tumbleweed && set mirror download.opensuse.org && set dir ${version}/repo/oss ||
+set dir ${opensuse_base_dir}/${version}/repo/oss
+iseq ${version} tumbleweed && set dir ${version}/repo/oss ||
 
 
 imgfree
 imgfree
-kernel http://${mirror}/${dir}/boot/x86_64/loader/linux
-initrd http://${mirror}/${dir}/boot/x86_64/loader/initrd
-imgargs linux netsetup=dhcp install=http://${mirror}/${dir} ${params} ${netcfg} ${console} initrd=initrd
+kernel http://${opensuse_mirror}/${dir}/boot/x86_64/loader/linux
+initrd http://${opensuse_mirror}/${dir}/boot/x86_64/loader/initrd
+imgargs linux netsetup=dhcp install=http://${opensuse_mirror}/${dir} ${params} ${netcfg} ${console} initrd=initrd
 echo
 echo
 echo MD5sums:
 echo MD5sums:
 md5sum linux initrd
 md5sum linux initrd
@@ -24,8 +24,8 @@ iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs
 :verify_sigs
 :verify_sigs
 echo
 echo
 echo Checking signatures...
 echo Checking signatures...
-imgverify linux ${sigs}${dir}/boot/x86_64/loader/linux.sig || goto error
-imgverify initrd ${sigs}${dir}/boot/x86_64/loader/initrd.sig || goto error
+imgverify linux ${sigs}${distro}/${dir}/boot/x86_64/loader/linux.sig || goto error
+imgverify initrd ${sigs}${distro}/${dir}/boot/x86_64/loader/initrd.sig || goto error
 echo Signatures verified!
 echo Signatures verified!
 echo
 echo
 :skip_sigs
 :skip_sigs

+ 3 - 3
src/slackware.ipxe

@@ -19,13 +19,13 @@ iseq ${version} other || goto skip_read_version
 echo ${cls}
 echo ${cls}
 echo -n Enter version: ${} && read version
 echo -n Enter version: ${} && read version
 :skip_read_version
 :skip_read_version
-set dir slackware/slackware${sbits}-${version}
+set dir ${slackware_base_dir}/slackware${sbits}-${version}
 goto boot
 goto boot
 
 
 :boot
 :boot
 imgfree
 imgfree
-kernel http://${mirror}/${dir}/kernels/huge.s/bzImage
-initrd http://${mirror}/${dir}/isolinux/initrd.img
+kernel http://${slackware_mirror}/${dir}/kernels/huge.s/bzImage
+initrd http://${slackware_mirror}/${dir}/isolinux/initrd.img
 imgargs bzImage load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s ${params} ${console}
 imgargs bzImage load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s ${params} ${console}
 isset ${debug} && prompt ||
 isset ${debug} && prompt ||
 boot
 boot

+ 2 - 3
src/ubuntu.ipxe

@@ -8,7 +8,6 @@ goto ${menu}
 :ubuntu
 :ubuntu
 set os Ubuntu
 set os Ubuntu
 clear ubuntu_version
 clear ubuntu_version
-set ubuntu_mirror ${mirror}
 menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}]
 menu ${os} - ${arch_a} - Image Sig Checks: [${img_sigs_enabled}]
 item --gap Latest Releases
 item --gap Latest Releases
 item artful ${space} ${os} 17.10 Artful Aardvark
 item artful ${space} ${os} 17.10 Artful Aardvark
@@ -27,12 +26,12 @@ set ubuntu_mirror old-releases.ubuntu.com
 echo Setting mirror to ${ubuntu_mirror}
 echo Setting mirror to ${ubuntu_mirror}
 clear ubuntu_version
 clear ubuntu_version
 echo -n Please set enter code name of release: ${} && read ubuntu_version
 echo -n Please set enter code name of release: ${} && read ubuntu_version
-set dir ubuntu/dists/${ubuntu_version}/main/installer-${arch_a}/current/images/netboot/
+set dir ${ubuntu_base_dir}/dists/${ubuntu_version}/main/installer-${arch_a}/current/images/netboot/
 goto deb_boot_type
 goto deb_boot_type
 
 
 :mirrorcfg
 :mirrorcfg
 set mirrorcfg mirror/suite=${ubuntu_version}
 set mirrorcfg mirror/suite=${ubuntu_version}
-set dir ubuntu/dists/${ubuntu_version}/main/installer-${arch_a}/current/images/netboot/
+set dir ${ubuntu_base_dir}/dists/${ubuntu_version}/main/installer-${arch_a}/current/images/netboot/
 
 
 :deb_boot_type
 :deb_boot_type
 menu ${os} [${ubuntu_version}] Installer
 menu ${os} [${ubuntu_version}] Installer