minor fixes and documentation
[automated-distro-installer] / live-kexec
index 10975a8f223790a4499a558ceacf58f869616ae6..651dad7bcf1424f00ccbfd42a4bfd7a25b07c427 100644 (file)
@@ -1,7 +1,8 @@
 #!/bin/bash
 #
+# fai kexec from upstream live cds, i.e. curl|bash
 # You can copy this to a http server, then wget -O- url|sudo bash
-# or curl|bash, if curl is installed.
+# curl is sometimes not preinstalled on a live cd.
 #
 # This has been tested on trisquel belanos and ubuntu xenial.
 #
 
 set -ex
 if grep -q ID=ubuntu /etc/os-release; then
+    # add universe, pxe-kexec is there
     sed -ri '/^\s*deb/{/universe/!s/$/ universe/}' /etc/apt/sources.list
 fi
-apt-get update
-apt-get install -y debconf
-debconf-set-selections <<EOF
+if ! type -p pxe-kexec &>/dev/null; then
+    apt-get update
+    apt-get install -y debconf
+    debconf-set-selections <<EOF
 kexec-tools kexec-tools/load_kexec boolean false
 EOF
-apt-get install -y pxe-kexec
-# at least on belanos, apt-get goes into the background,
-# and we need to wait for it to finish.
-sleep 5
+    apt-get install -y pxe-kexec
+fi
+# running this piped to bash on belanos, the apt-get goes
+# into the background while it's still installing, and pxe-kexec
+# just exits right away. sleep calls are strangely ignored.
+# I don't know whats going on, but just running the same
+# command again once it finishes works, and this is only
+# rarely used and done manually anyways, so whatever.
 pxe-kexec -n --ignore-whitelist -l fai-generated faiserver