X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fscripts%2FGRUB_PC%2F11-iank;h=089f0cb805125e9140f0d791107a96a0c289022f;hb=2230b58f86d24175583f2ce60d271f66d4f122ea;hp=485175fb7c370cb0670257606ae6b861ea8147ff;hpb=cf3b64c21818d0033ffe5447d30e45141c81ee1b;p=automated-distro-installer diff --git a/fai/config/scripts/GRUB_PC/11-iank b/fai/config/scripts/GRUB_PC/11-iank index 485175f..089f0cb 100755 --- a/fai/config/scripts/GRUB_PC/11-iank +++ b/fai/config/scripts/GRUB_PC/11-iank @@ -19,18 +19,7 @@ if [[ -e /a/bin/fai/fai-wrapper ]]; then } fi -chroot $FAI_ROOT bash <<'EOFOUTER' -set -eE -o pipefail -if getent group systemd-journal >/dev/null; then - # makes the journal be saved to disk. - mkdir -p /var/log/journal - chmod 755 /var/log/journal -fi -debconf-set-selections <$tmpfile1 ||: fcopy -riBM /etc/apt +tmpfile2=$(mktemp) +chroot $FAI_ROOT /usr/bin/apt-cache policy >$tmpfile2 +if ! diff -q $tmpfile1 $tmpfile2; then + chroot $FAI_ROOT /usr/bin/apt update +fi + # outside of fai, this seems to regularly lead to # E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) # so add a sleep. 1 sec is probably way more than needed. @@ -80,7 +81,20 @@ if [[ ! -r $f ]] || (( $(( $(date +%s) - $(stat -c %Y $f ) )) > 60*60*2 )); then fi -chroot $FAI_ROOT bash <<'EOF' + +#### misc configurations +chroot $FAI_ROOT bash <<'EOFOUTER' +if getent group systemd-journal >/dev/null; then + # makes the journal be saved to disk. + mkdir -p /var/log/journal + chmod 755 /var/log/journal +fi +debconf-set-selections </dev/null; then usermod -aG $g iank fi @@ -129,23 +141,38 @@ fi # that a normal user can disrupt the system, eg cause a reboot. sed -i '$a kernel.sysrq=1 /^kernel.sysrq=/d' /etc/sysctl.conf -EOF +EOFOUTER + +rm -f $target/etc/resolv.conf +ln -s ../run/systemd/resolve/stub-resolv.conf $target/etc/resolv.conf +# needed for bitfolk image +if [[ -e /a/bin/fai/fai-wrapper ]]; then + systemctl enable systemd-resolved + systemctl start systemd-resolved +fi -if [[ $FAI_ACTION != dirinstall ]]; then +# bitfolk installer handles the rest +case $HOSTNAME in + bk|je) exit 0 ;; +esac + +if [[ $FAI_ACTION != dirinstall ]] && ! ifclass NOCRYPT; then # luks options, see man systemd-cryptsetup-generator # all i know is that with luks.crypttab=no, swap still timed out on boot. # and with rd.luks.crypttab=no, it works. - cmdline="rd.luks.crypttab=no console=ttyS0 net.ifnames=0" if ifclass LINODE; then speed=19200 - cmdline+=",${speed}n8" - cmdline="rd.luks.crypttab=no console=ttyS0,${speed}n8" + cmdline="rd.luks.crypttab=no net.ifnames=0 console=ttyS0,${speed}n8" else speed=115200 - cmdline+=",${speed}n8 console=tty0" + cmdline="rd.luks.crypttab=no net.ifnames=0 console=ttyS0,${speed}n8 console=tty0" + case $HOSTNAME in + # per rubens suggestion to make a d16 more stable + kd|kw) cmdline+=" pci=realloc=off" ;; + esac fi cat >$FAI_ROOT/etc/grub.d/40_custom </dev/null && [[ $(iw dev) ]]; then chroot $FAI_ROOT bash < $target/etc/network/interfaces <<-EOF +# generated by FAI +auto lo eth0 +iface lo inet loopback +iface eth0 inet static +address 10.3.0.2/16 +EOF + fi else cat > $target/etc/network/interfaces <<-EOF @@ -228,16 +266,17 @@ iface eth0 inet dhcp iface eth0 inet6 auto EOF -# previously had an else condition after -#elif ifclass VM || ifclass LINODE; then -# iface br0 inet dhcp -# bridge_ports $NIC1 -# bridge_stp off -# bridge_maxwait 0 -# however, on t9, on startup, br0, became -# rename1 and didn't come up. i dunno why, -# but the bridge is for vms that I rarely use, -# so not bothering to figure it out. + # previously had an else condition after + #elif ifclass VM || ifclass LINODE; then + # iface $NIC1 inet manual + # iface br0 inet dhcp + # bridge_ports $NIC1 + # bridge_stp off + # bridge_maxwait 0 + # however, on t9, on startup, br0, became + # rename1 and didn't come up. i dunno why, + # but the bridge is for vms that I rarely use, + # so not bothering to figure it out. fi @@ -251,6 +290,29 @@ if ifclass LINODE; then # /usr/share/initramfs-tools/scripts/functions IP=$linode_ip::$linode_gw:255.255.255.0::eth0:off EOF + + + if [[ $HOSTNAME == li ]]; then + + cat > $target/etc/network/interfaces <<-EOF +# generated by FAI +auto lo eth0 +iface lo inet loopback +iface eth0 inet dhcp +# for the standard network config, uncomment this and comment the lines after it. +#iface eth0 inet6 auto + +iface eth0 inet6 static +# this is really a /128. it seems like we need to assign it for ipv6 to work. +address 2600:3c00::f03c:91ff:fe6d:baf8/64 +gateway fe80::1 + +iface eth0 inet6 static +# from a requested /64 pool +address 2600:3c00:e000:280::2/64 +EOF + fi + fi # I prefer to stick with ifup/down for now. a. networkd is not in its @@ -260,5 +322,4 @@ systemctl disable systemd-networkd.socket systemd-networkd networkd-dispatcher s systemctl mask systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online EOF - -## end network setup +##### end network setup #####