fix some bugs and mix other things
[automated-distro-installer] / lk
1 #!/bin/bash
2 # Copyright (C) 2016 Ian Kelling
3
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
18 usage() {
19 cat <<EOF
20 Usage: ${0##*/} [-h|--help]
21 fai kexec from upstream live cds, i.e. curl|bash
22
23 You can copy this to a http server, then wget -O- url|sudo bash
24 curl is sometimes not preinstalled on a live cd.
25
26 This has been tested on trisquel belenos and ubuntu xenial & 18.10.
27 With 18.10 on an x200, kexec was unreliable, resulting in freezes and
28 kernel panics.
29
30 If the screen just sits in a weird color inverted, corrupted looking state,
31 it's probably nothing wrong with the computer, but a problem
32 with the fai server. If you can do this from a virtual terminal,
33 it will print out more info (I know from running it on a vm).
34 EOF
35 exit $1
36 }
37 case $1 in
38 -h|--help) usage ;;
39 esac
40
41
42 set -ex
43 if grep -q ID=ubuntu /etc/os-release; then
44 # add universe, pxe-kexec is there
45 sed -ri '/^\s*deb/{/universe/!s/$/ universe/}' /etc/apt/sources.list
46 fi
47 if ! type -p pxe-kexec >/dev/null 2>&1; then
48 apt-get update
49 apt-get install -y debconf
50 debconf-set-selections <<EOF
51 kexec-tools kexec-tools/load_kexec boolean false
52 EOF
53 apt-get install -y pxe-kexec
54 fi
55 # running this piped to bash on belenos, the apt-get goes
56 # into the background while it's still installing, and pxe-kexec
57 # just exits right away. sleep calls are strangely ignored.
58 # I don't know whats going on, but just running the same
59 # command again once it finishes works, and this is only
60 # rarely used and done manually anyways, so whatever.
61 pxe-kexec -n --ignore-whitelist -l fai-generated faiserver