From: Ian Kelling Date: Sun, 8 Oct 2017 17:16:17 +0000 (-0700) Subject: Merge branch 'upstream', fai 5.4 X-Git-Url: https://iankelling.org/git/?a=commitdiff_plain;h=e6c8a36522847eca91819ab3eb656dd824bc3e3c;hp=-c;p=automated-distro-installer Merge branch 'upstream', fai 5.4 --- e6c8a36522847eca91819ab3eb656dd824bc3e3c diff --combined fai/config/basefiles/mk-basefile index d9823cf,b93831c..b688a86 --- a/fai/config/basefiles/mk-basefile +++ b/fai/config/basefiles/mk-basefile @@@ -4,6 -4,9 +4,9 @@@ # # Thomas Lange, Uni Koeln, 2011-2017 # based on the Makefile implementation of Michael Goetze + # + # Usage example: mk-basefile -J STRETCH64 + # This will create a STRETCH64.tar.xz basefile. # Supported distributions (each i386/amd64): # Debian GNU/Linux @@@ -17,20 -20,20 +20,23 @@@ # Define your local mirros here # For the first stage, set the CentOS/SLC mirror in /etc/rinse/rinse.conf - MIRROR_DEBIAN=http://http.us.debian.org/debian + MIRROR_DEBIAN=http://deb.debian.org/debian/ MIRROR_UBUNTU=http://mirror.netcologne.de/ubuntu/ +MIRROR_TRISQUEL=http://mirror.fsf.org/trisquel/ MIRROR_CENTOS=http://mirror.netcologne.de/ EXCLUDE_SQUEEZE=isc-dhcp-client,isc-dhcp-common,info,tasksel,tasksel-data EXCLUDE_WHEEZY=info,tasksel,tasksel-data - EXCLUDE_JESSIE=tasksel,tasksel-data - EXCLUDE_STRETCH=tasksel,tasksel-data + EXCLUDE_JESSIE=info,tasksel,tasksel-data + EXCLUDE_STRETCH=info,tasksel,tasksel-data + EXCLUDE_BUSTER=tasksel,tasksel-data + +EXCLUDE_BELENOS=dhcp3-client,dhcp3-common,info EXCLUDE_TRUSTY=dhcp3-client,dhcp3-common,info - EXCLUDE_FLIDAS=tasksel,tasksel-data - EXCLUDE_XENIAL=tasksel,tasksel-data ++EXCLUDE_FLIDAS=udhcpc,dibbler-client,info,tasksel,tasksel-data + EXCLUDE_XENIAL=udhcpc,dibbler-client,info,tasksel,tasksel-data + # we need aptitude in the base file, since users may want to use it for installing packages INCLUDE_DEBIAN=aptitude @@@ -68,6 -71,7 +74,7 @@@ check() mkpost-centos() { + # set local mirror for rinse post script [ -z "$MIRROR_CENTOS" ] && return cat < $xtmp/post #! /bin/sh @@@ -81,6 -85,7 +88,7 @@@ EO mkpost-slc() { + # set local mirror for rinse post script ver=$1 [ -z "$MIRROR_SLC" ] && return cat < $xtmp/post @@@ -97,10 -102,11 +105,11 @@@ EO cleanup-deb() { - chroot $xtmp aptitude clean - rm -f $xtmp/etc/hostname $xtmp/etc/resolv.conf $xtmp/etc/machine-id - rm $xtmp/var/lib/apt/lists/*_* - rm -f $xtmp/etc/udev/rules.d/70-persistent-net.rules + chroot $xtmp apt-get clean + rm -f $xtmp/etc/hostname $xtmp/etc/resolv.conf \ + $xtmp/var/lib/apt/lists/*_* $xtmp/usr/bin/qemu-*-static \ + $xtmp/etc/udev/rules.d/70-persistent-net.rules + > $xtmp/etc/machine-id } @@@ -161,19 -167,25 +170,25 @@@ debgeneric() local DIST=$1 shift local mirror=$1 + shift + local arch=$1 - if [[ $DIST =~ 64 ]]; then - arch=amd64 - else - arch=i386 - fi - - DIST=${DIST%%??} - dist=${DIST,,} + dist=${DIST%%[0-9][0-9]} + local exc="EXCLUDE_$dist" + dist=${dist,,} - local exc="EXCLUDE_$DIST" check - debootstrap --arch $arch --exclude=${!exc} --include=${INCLUDE_DEBIAN} $dist $xtmp $mirror + if [ -n "$arch" ]; then + qemu-debootstrap --arch $arch --exclude=${!exc} --include=${INCLUDE_DEBIAN} $dist $xtmp $mirror + target="${target}_${arch^^}" + else + if [[ $DIST =~ 64 ]]; then + arch=amd64 + else + arch=i386 + fi + debootstrap --arch $arch --exclude=${!exc} --include=${INCLUDE_DEBIAN} $dist $xtmp $mirror + fi cleanup-deb tarit } @@@ -194,6 -206,7 +209,7 @@@ prtdists() WHEEZY32 WHEEZY64 JESSIE32 JESSIE64 STRETCH32 STRETCH64 + BUSTER32 BUSTER64 " } @@@ -202,12 -215,13 +218,13 @@@ usage() cat <$error?$?:$error))' ERR # save maximum error code # a list of modules which are loaded at boot time @@@ -44,7 -28,12 +44,12 @@@ elif [ -f $target/lib/systemd/system/ge sed -i -e 's#sbin/agetty --noclear#sbin/agetty -f /etc/issue.linuxlogo --noclear#' $target/lib/systemd/system/getty@.service fi - if [ ! -f $target/etc/machine-id -a -f $target/bin/systemd-machine-id-setup ]; then + # make sure a machine-id exists + if [ ! -f $target/etc/machine-id ]; then + > $target/etc/machine-id + fi + # recreate machine-id if the file is empty + if [ X"$(stat -c '%s' $target/etc/machine-id 2>/dev/null)" = X0 -a -f /bin/systemd-machine-id-setup ]; then $ROOTCMD systemd-machine-id-setup fi diff --combined fai/config/scripts/GRUB_PC/10-setup index 160dfa2,c19d4fa..47b3ba4 --- a/fai/config/scripts/GRUB_PC/10-setup +++ b/fai/config/scripts/GRUB_PC/10-setup @@@ -25,12 -25,11 +25,12 @@@ if [ $FAI_ACTION != "install" ]; the exit $error fi - $ROOTCMD grub-mkdevicemap --no-floppy + GROOT=$($ROOTCMD grub-probe -tdrive -d $BOOT_DEVICE) # Check if RAID is used for the boot device if [[ $BOOT_DEVICE =~ '/dev/md' ]]; then + GROOT=$($ROOTCMD grub-probe -tdrive -d $BOOT_DEVICE) raiddev=${BOOT_DEVICE#/dev/} # install grub on all members of RAID for device in `LC_ALL=C perl -ne 'if(/^'$raiddev'\s.+raid\d+\s(.+)/){ $_=$1; s/\d+\[\d+\]//g; print }' /proc/mdstat`; do @@@ -39,23 -38,16 +39,19 @@@ done elif [[ $GROOT =~ 'hostdisk' ]]; then - cat > $target/boot/grub/device.map <&2 + if [ ! -f ${lskernels%% *} ]; then + echo "ERROR: No kernel was installed. Have a look at shell.log" >&2 + error=1 + fi fi # copy sources.list @@@ -77,17 -79,21 +80,21 @@@ setrel() break fi done - echo "\$release set to $release" } # 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 http://httpredir.debian.org/debian $release main contrib non-free - deb http://httpredir.debian.org/debian-security $release/updates main contrib non-free + deb $apt_cdn/debian $release main contrib non-free + deb $apt_cdn/debian-security $release/updates main contrib non-free deb [trusted=yes] http://fai-project.org/download $release koeln EOF 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* $LOGDIR + fi + exit $error