usage() {
cat <<EOF
-Usage: ${0##*/} [-h|--help]
+Usage: ${0##*/} [-h|--help] [HOST]
fai kexec from upstream live cds, i.e. curl|bash
+If HOST argument, ssh to root@HOST before doing kexec. This does what
+pxe would do, but skipping boot sequence up to and including the pxe
+dhcp.
+
+
You can copy this to a http server, then wget -O- url|sudo bash
curl is sometimes not preinstalled on a live cd.
-This has been tested on trisquel belenos and ubuntu xenial.
+Alternative to http server:
+1. on install machine nc -l 1234 | sudo bash
+2. On another machine nc INSTALL_MACHINE 1234 <live-kexec
+Obviously beware that anyone on your network could send commands to the install machine.
+
+This has been tested on trisquel 7 & 8 & ubuntu 16.04 & 18.10. With
+18.10 and trisquel 8 on an x200, kexec was unreliable, resulting in
+freezes and kernel panics.
If the screen just sits in a weird color inverted, corrupted looking state,
it's probably nothing wrong with the computer, but a problem
}
case $1 in
-h|--help) usage ;;
+ ?*) host=$1
esac
+if [[ $host ]]; then
+ ssh root@$host bash -s < $(readlink -f "$BASH_SOURCE")
+ exit $?
+ fi
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
-if ! type -p pxe-kexec &>/dev/null; then
+if ! type -p pxe-kexec >/dev/null 2>&1; then
apt-get update
apt-get install -y debconf
debconf-set-selections <<EOF