diff --git a/src/boot.cfg b/src/boot.cfg index 9165f549..4bf3dd83 100644 --- a/src/boot.cfg +++ b/src/boot.cfg @@ -6,8 +6,13 @@ set site_name netboot.xyz # set boot domain set boot_domain boot.netboot.xyz +# set mirror list +set mirror_one mirror.rackspace.com +set mirror_two mirrors.kernel.org +set mirror_three mirrors.test.blah.com + # set mirror domain -set mirror mirror.rackspace.com +set mirror ${mirror_one} # set location of memdisk set memdisk http://${boot_domain}/memdisk diff --git a/src/fedora.ipxe b/src/fedora.ipxe index 61444c4d..b8ac8269 100644 --- a/src/fedora.ipxe +++ b/src/fedora.ipxe @@ -38,7 +38,6 @@ set dir fedora/releases/${osversion}/${os}/${arch}/os goto boottype :boottype -set repo http://${mirror}/${dir} menu ${os} ${arch} boot type item normal ${ova} item rescue ${ova} rescue @@ -47,22 +46,22 @@ isset ${bt} || choose bt || goto fedora echo ${cls} iseq ${bt} rescue && goto rescue || iseq ${bt} kickstart && goto kickstart || -goto bootos_images +goto boot :rescue set params rescue || -goto bootos_images +goto boot :kickstart echo -n Specify kickstart URL for ${os} ${osversion}: && read ksurl set params ks=${ksurl} || -goto bootos_images +goto boot -:bootos_images +:boot 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} || chain --autofree mirrors.ipxe +initrd http://${mirror}/${dir}/images/pxeboot/initrd.img || +boot || goto linux_menu :linux_menu diff --git a/src/mirrors.ipxe b/src/mirrors.ipxe new file mode 100644 index 00000000..41f98131 --- /dev/null +++ b/src/mirrors.ipxe @@ -0,0 +1,7 @@ +#!ipxe + +# Basic attempt at mirror rotation +iseq mirror ${mirror_one} && set mirror ${mirror_two} || +iseq mirror ${mirror_two} && set mirror ${mirror_three} || +iseq mirror ${mirror_three} && set mirror ${mirror_one} || +echo Setting mirror to ${mirror}...