Bläddra i källkod

Merge pull request #10 from antonym/secondary_mirror

Secondary mirror
Antony Messerli 9 år sedan
förälder
incheckning
02cc2b1dd7
2 ändrade filer med 21 tillägg och 8 borttagningar
  1. 11 8
      src/fedora.ipxe
  2. 10 0
      src/mirrors.ipxe

+ 11 - 8
src/fedora.ipxe

@@ -38,7 +38,6 @@ set dir fedora/releases/${osversion}/${os}/${arch}/os
 goto boottype
 goto boottype
 
 
 :boottype
 :boottype
-set repo http://${mirror}/${dir}
 menu ${os} ${arch} boot type
 menu ${os} ${arch} boot type
 item normal ${ova}
 item normal ${ova}
 item rescue ${ova} rescue
 item rescue ${ova} rescue
@@ -47,24 +46,28 @@ isset ${bt} || choose bt || goto fedora
 echo ${cls}
 echo ${cls}
 iseq ${bt} rescue && goto rescue ||
 iseq ${bt} rescue && goto rescue ||
 iseq ${bt} kickstart && goto kickstart ||
 iseq ${bt} kickstart && goto kickstart ||
-goto bootos_images
+goto boot
 
 
 :rescue
 :rescue
 set params rescue ||
 set params rescue ||
-goto bootos_images
+goto boot
 
 
 :kickstart
 :kickstart
 echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl
 echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl
 set params ks=${ksurl} ||
 set params ks=${ksurl} ||
-goto bootos_images
+goto boot
 
 
-:bootos_images
+:boot
 imgfree
 imgfree
-kernel http://${mirror}/${dir}/images/pxeboot/vmlinuz repo=${repo} ${params} ${netcfg} initrd=initrd.img
-initrd http://${mirror}/${dir}/images/pxeboot/initrd.img
-boot
+kernel http://${mirror}/${dir}/images/pxeboot/vmlinuz repo=http://${mirror}/${dir} ${params} ${netcfg} || goto change_mirror
+initrd http://${mirror}/${dir}/images/pxeboot/initrd.img ||
+boot || 
 goto linux_menu
 goto linux_menu
 
 
+:change_mirror
+chain --autofree mirrors.ipxe
+goto boot
+
 :linux_menu
 :linux_menu
 clear menu
 clear menu
 chain linux.ipxe
 chain linux.ipxe

+ 10 - 0
src/mirrors.ipxe

@@ -0,0 +1,10 @@
+#!ipxe
+
+# Basic attempt at mirror rotation
+
+:mirror_start
+iseq ${mirror} mirror.rackspace.com && set mirror mirrors.kernel.org && goto mirror_end ||
+iseq ${mirror} mirrors.kernel.org && set mirror mirror.rackspace.com && goto mirror_end ||
+echo Setting mirror to ${mirror}...
+
+:mirror_end