add rescue, fix default pxe, ubuntu locale
[automated-distro-installer] / debian-preseed
index 98ee46c85785d0e817b07b1256904e46489a4746..ea1e847a8470f1469d70b3471d4548bdf66a6413 100755 (executable)
@@ -1,4 +1,5 @@
 #!/bin/bash
+# Copyright (C) 2016 Ian Kelling
 
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
@@ -50,7 +51,7 @@ case $distro in
     ubuntu-14.04)
         wget -q https://help.ubuntu.com/lts/installation-guide/$preseed
         wget -qN http://archive.ubuntu.com/ubuntu/dists/trusty/$neboot_path
-        sed -ri 's!^tasksel tasksel/first multiselect .*!#\0!' $preseed
+        sed -ri --follow-symlinks 's!^tasksel tasksel/first multiselect .*!#\0!' $preseed
         echo 'tasksel tasksel/first multiselect ubuntu-server, openssh-server' >>$preseed
         ;;
     debian-jessie)
@@ -86,23 +87,24 @@ tar xzf netboot.tar.gz
 
 # keymap=us is only needed for debian.
 pxe_cfg=${distro%-*}-installer/amd64/boot-screens/txt.cfg
-sed -ri "s#^[[:space:]]*append[[:space:]]#\0auto priority=critical locale=en_US.UTF-8  netcfg/choose_interface=auto url=tftp://$ip/example-preseed.txt keymap=us#" $pxe_cfg
+sed="sed -ri --follow-symlinks"
+$sed "s#^[[:space:]]*append[[:space:]]#\0auto priority=critical locale=en_US.UTF-8  netcfg/choose_interface=auto url=tftp://$ip/example-preseed.txt keymap=us#" $pxe_cfg
 # various google results say timeout x will result in doing the default thing,
 # but that doesn't happen. no idea why. Maybe it needed to be part of the label.
 echo 'totaltimeout 1' | tee -a $pxe_cfg
 
 if $interactive_partition; then
-    sed -ri 's/^d-i[[:space:]]partman.*/#\0/' $preseed
+    $sed 's/^d-i[[:space:]]partman.*/#\0/' $preseed
     # at least in ubuntu, this does automatic selection of boot device,
     # and on a server where we setup raid, it choose sda, and failed
     # and the whole installation could not be salvaged.
-    sed -ri 's/^d-i[[:space:]]grub-installer.*/#\0/' $preseed
+    $sed 's/^d-i[[:space:]]grub-installer.*/#\0/' $preseed
 fi
 
-sed -ri "s#(^d-i time/zone string US/).*#\1Pacific#" $preseed
-sed -ri '/^xserver-xorg/,/[^\\$]/ s/.*/#\0/' $preseed
+$sed "s#(^d-i time/zone string US/).*#\1Pacific#" $preseed
+$sed '/^xserver-xorg/,/[^\\$]/ s/.*/#\0/' $preseed
 # we set the locale in kernel args. maybe we don't need to. this overrides it.
-sed -ri 's!^d-i[[:space:]]debian-installer/locale[[:space:]].*!#\0!' $preseed
+$sed 's!^d-i[[:space:]]debian-installer/locale[[:space:]].*!#\0!' $preseed
 
 # for secure pass, set the shadow option with mkpasswd -s -m sha-512 < passfile