8ae015c082ee24a5ded245b23a24958e6e82de39
[automated-distro-installer] / fai / config / scripts / LAST / 50-misc
1 #! /bin/bash
2
3 # copyright Thomas Lange 2001-2016, lange@debian.org
4
5 error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
6
7 if [ "$FAI_ACTION" = "dirinstall" -o $do_init_tasks -eq 0 ] ; then
8 :
9 else
10 # check if mdadm has been forgotten
11 if grep -q active /proc/mdstat 2>/dev/null; then
12 if [ ! -d $target/etc/mdadm ]; then
13 echo ERROR: Found Software RAID, but the mdadm package was not installed
14 error=1
15 fi
16 fi
17
18 usedm=$(dmsetup ls 2>/dev/null | egrep -v '^live-rw|^live-base|^No devices found' | wc -l)
19 if [ $usedm -ne 0 ]; then
20 if [ ! -d $target/etc/lvm ]; then
21 echo ERROR: Found lvm devices, but the lvm2 package was not installed
22 error=1
23 fi
24 fi
25 fi
26
27 # remove backup files from cfengine, but only if cfengine is installed
28 if [ -x /usr/sbin/cfagent ] || [ -x $target/usr/sbin/cfagent ] ; then
29 dirs="root etc var"
30 for path in $dirs; do
31 find $target/$path -maxdepth 20 -name \*.cfedited -o -name \*.cfsaved | xargs -r rm
32 done
33 fi
34
35 [ "$FAI_DEBMIRROR" ] &&
36 ainsl /etc/fstab "#$FAI_DEBMIRROR $MNTPOINT nfs ro 0 0"
37
38 # set bios clock
39 if [ $do_init_tasks -eq 1 ] ; then
40 case "$UTC" in
41 no|"") hwopt="--localtime" ;;
42 yes) hwopt="--utc" ;;
43 esac
44 hwclock $hwopt --systohc || true
45 fi
46
47 # Make sure everything is configured properly
48 if ifclass DEBIAN ; then
49 $ROOTCMD apt-get -f install
50 fi
51
52 if [ $FAI_ACTION = "install" ]; then
53 lskernels=$(echo $target/boot/vmlinu*)
54 if [ ! -f ${lskernels%% *} ]; then
55 echo "ERROR: No kernel was installed. Have a look at shell.log" >&2
56 error=1
57 fi
58 fi
59
60 # copy sources.list
61 fcopy -iM /etc/apt/sources.list
62
63
64 setrel() {
65
66 # if release is not set, try to determine it
67
68 if [ -n "$release" ]; then
69 return
70 fi
71 if [ ! -f $target/etc/os-release ]; then
72 return
73 fi
74
75 dists="jessie stretch buster xenial trusty"
76 for d in $dists; do
77 if grep -iq $d $target/etc/os-release; then
78 release=$d
79 break
80 fi
81 done
82 }
83
84 # if installation was done from CD, replace useless sources.list
85 setrel
86 if [ -f $target/etc/apt/sources.list -a -n "$release" ]; then
87 grep -q 'file generated by fai-cd' $target/etc/apt/sources.list && cat <<EOF > $target/etc/apt/sources.list
88 deb $apt_cdn/debian $release main contrib non-free
89 deb $apt_cdn/debian-security $release/updates main contrib non-free
90 deb [trusted=yes] http://fai-project.org/download $release koeln
91 EOF
92 fi
93
94 # for ARM architecture, we may need the kernel and initrd to boot or flash the device
95 if ifclass ARM64; then
96 cp -pv $target/boot/vmlinuz* $target/boot/initrd* $LOGDIR
97 fi
98
99 exit $error