various fixes
[automated-distro-installer] / fai / config / scripts / GRUB_PC / 11-ian
index 765034041aedc7b3f2e4a0305ce9447e5cdeed19..8cd841f875cfc76af9e1393d19aa63cd610f29f9 100755 (executable)
@@ -24,11 +24,23 @@ EOF
 apt-get install -y pxe-kexec
 EOFOUTER
 
-fcopy -r /boot # -r = recursive
-# note: # fcopy -i = ignore nonmatching class error, always return 0.
+# -r = recursive
+# -i = ignore non-matching class warnings, always exit 0
+# -B = no backup files
+fcopy -riB /boot
 # this is also done by FABASE/10-misc by default.
-fcopy -ir /root
-if ifclass STABLE_BOOTSTRAP; then
+fcopy -riB /root
+
+
+src=$FAI/distro-install-common/shadow
+dst=/q/root/shadow
+if [[ ! -e $dst && -e $src ]]; then
+  # outside of fai context, we skip this
+  mkdir -p $dst
+  mount -o bind $src $dst
+fi
+
+if ifclass VOL_STABLE_BOOTSTRAP; then
   fcopy -ri /etc/systemd/system
   chroot $FAI_ROOT bash <<'EOFOUTER'
 systemctl enable fai_check.service
@@ -36,25 +48,19 @@ EOFOUTER
   exit 0
 fi
 
-dir=/q/root/shadow
-fai_shadow=$FAI/distro-install-common/shadow
-if [[ ! -e $dir && -e $fai_shadow ]]; then
-  mkdir -p $dir
-  mount -o bind $fai_shadow $dir
-fi
-$FAI/distro-install-common/end
 
+$FAI/distro-install-common/end
 
 # these get copied in an earlier stage by fai, but leaving it here since
 # I run this as a single post-fai script to update things that have changed.
-fcopy -ri /etc/apt/preferences.d
-fcopy -ri /etc/apt/sources.list.d
+fcopy -riB /etc/apt
+# 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.
+sleep 1
 $ROOTCMD apt-get update
 
 
-
-rm -f $FAI_ROOT/etc/apt/sources.list
-
 chroot $FAI_ROOT bash <<'EOF'
 set -eE -o pipefail
 mkdir -p /home/ian/.ssh