File: 50-misc

package info (click to toggle)
fai 6.5.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,084 kB
  • sloc: sh: 6,774; perl: 5,665; makefile: 138
file content (126 lines) | stat: -rwxr-xr-x 3,860 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#! /bin/bash

# copyright Thomas Lange 2001-2016, lange@debian.org

error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code

# remove crypt password from format.log
if [ -f $LOGDIR/format.log ]; then
    perl -i -pane "s/Executing: yes '.+?' \| cryptsetup/Executing: yes 'XXXXXXXXXXXXX' | cryptsetup/" $LOGDIR/format.log
fi

if [ "$FAI_ACTION" = "dirinstall" ] || ! inside_nfsroot ; then
  :
else
  # check if mdadm has been forgotten
  if grep -q active /proc/mdstat 2>/dev/null; then
    if [ ! -d $target/etc/mdadm ]; then
	echo ERROR: Found Software RAID, but the mdadm package was not installed
	error=1
    fi
  fi

  if [ -f $target/etc/crypttab ] && [ ! -f $target/sbin/cryptsetup ]; then
      echo ERROR: Encrypted devices used, but the crypsetup package was not installed.
      echo ERROR: You want to add cryptsetup-initramfs or dracut to some package_config file.
  fi

  usedm=$(dmsetup ls 2>/dev/null | egrep -v '^live-rw|^live-base|^No devices found' | wc -l)
  if [ $usedm -ne 0 ]; then
    if [ ! -d $target/etc/lvm ]; then
	echo ERROR: Found lvm devices, but the lvm2 package was not installed
	error=1
    fi
  fi
fi

# remove backup files from cfengine, but only if cfengine is installed
if [ -x /usr/sbin/cfagent ] || [ -x $target/usr/sbin/cfagent ] ; then
    dirs="root etc var"
    for path in $dirs; do
        find $target/$path -maxdepth 20 -name \*.cfedited -o -name \*.cfsaved | xargs -r rm
    done
fi

[ "$FAI_DEBMIRROR" ] &&
  ainsl /etc/fstab "#$FAI_DEBMIRROR $MNTPOINT nfs ro 0 0"

# set bios clock
if [ $do_init_tasks -eq 1 ] ; then
    case "$UTC" in
       no|"") hwopt="--localtime" ;;
       yes)   hwopt="--utc"       ;;
    esac
    hwclock $hwopt --systohc || true
fi

# Make sure everything is configured properly
if ifclass DEBIAN ; then
        $ROOTCMD apt-get -f install -y
fi

if [ $FAI_ACTION = "install" ]; then
    lskernels=$(echo $target/boot/vmlinu*)
    if [ ! -f ${lskernels%% *} ]; then
	echo "ERROR: No kernel was installed. Have a look at scripts.log" >&2
	error=1
    fi
fi

# copy sources.list
fcopy -iSM /etc/apt/sources.list


setrel() {

    # if release is not set, try to determine it

    if [ -n "$release" ]; then
	return
    fi
    if [ ! -f $target/etc/os-release ]; then
	return
    fi

    dists="jessie stretch buster bullseye bookworm trixie forky noble jammy focal bionic xenial trusty"
    for d in $dists; do
	if grep -iq $d $target/etc/os-release; then
	    release=$d
	    break
	fi
    done
}

# if installation was done from CD, replace useless sources.list
setrel
if [ -f $target/etc/apt/sources.list ] && [ -n "$release" ]; then
    if grep -q 'file generated by fai-cd' $target/etc/apt/sources.list; then
        echo "Create new sources.list for $release"
        cat <<EOF > $target/etc/apt/sources.list
deb $apt_cdn/debian $release main contrib non-free non-free-firmware
deb $security_cdn/debian-security ${secsuite} main contrib non-free non-free-firmware
#deb [trusted=yes] http://fai-project.org/download $release koeln
EOF
    fi
    # if the package fai-server was installed, enable the project's repository
    if dpkg-query --admindir=$target/var/lib/dpkg -W fai-server >/dev/null 2>&1; then
	fai-sed '/fai-project.org/s/^#//' /etc/apt/sources.list
    fi
fi

# install default sources.list for Debian based distributions
if [ -d $target/etc/apt ] && [ ! -f $target/etc/apt/sources.list ]; then
    fcopy -Svc DEBIAN_DEFAULT /etc/apt/sources.list
fi

# older releases do not have the non-free-firmware section
if [ -n "$release" ] && [[ "buster bullseye" =~ "$release" ]]; then
    sed -i -e 's/non-free-firmware//g' $target/etc/apt/sources.list
fi

# for ARM architecture, we may need the kernel and initrd to boot or flash the device
if ifclass ARM64; then
    cp -pv $target/boot/vmlinuz* $target/boot/initrd* $FAI_RUNDIR
fi

exit $error