X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fscripts%2FLAST%2F50-misc;h=e7b9e6d8b5baf71764d40a0bf7d3996d23a4dd49;hb=HEAD;hp=c2d6b5c85327a891a9527ab02ec760553c05a500;hpb=ed3681256885d295f39d5df60784d3281a2f8719;p=automated-distro-installer diff --git a/fai/config/scripts/LAST/50-misc b/fai/config/scripts/LAST/50-misc index c2d6b5c..e7b9e6d 100755 --- a/fai/config/scripts/LAST/50-misc +++ b/fai/config/scripts/LAST/50-misc @@ -4,6 +4,11 @@ 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" -o $do_init_tasks -eq 0 ] ; then : else @@ -15,15 +20,19 @@ else fi fi - # i use dm for crypt, not lvm, so this gives false positive. todo, send patch to remove this - # upstream. - # 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 + 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 + + # note, if we used dm for crypt, not lvm, so would givee false positive. todo, send patch to fix + 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 @@ -48,8 +57,7 @@ fi # Make sure everything is configured properly if ifclass DEBIAN || ifclass UBUNTU; then - echo "Running \"apt-get -f install\" for the last time." - $ROOTCMD apt-get -f install + $ROOTCMD apt-get -f install -y fi if [ $FAI_ACTION = "install" ]; then @@ -75,7 +83,7 @@ setrel() { return fi - dists="jessie stretch buster bullseye bookworm bionic xenial trusty" + dists="jessie stretch buster bullseye bookworm trixie forky noble jammy focal bionic xenial trusty aramo nabia etiona" for d in $dists; do if grep -iq $d $target/etc/os-release; then release=$d @@ -86,18 +94,31 @@ setrel() { # if installation was done from CD, replace useless sources.list setrel -if [ -f $target/etc/apt/sources.list -a -n "$release" ]; then - grep -q 'file generated by fai-cd' $target/etc/apt/sources.list && cat < $target/etc/apt/sources.list -deb $apt_cdn/debian $release main contrib non-free -deb $apt_cdn/debian-security $release/updates main contrib non-free +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 < $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 [ -f $target/var/lib/dpkg/info/fai-server.list ]; then - sed -i -e '/fai-project.org/s/^#//' $target/etc/apt/sources.list + 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