#!/bin/bash set -euo pipefail BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")" printf \ '\033[?47l\012' cat << EOF ####################################### ## ## ## $(cat "${BASEDIR}/title") Script ## ## ## ## Jean ## ## ## ####################################### #################### ## ## ## Pre ## ## Installation ## ## ## #################### EOF source \ /etc/os-release source \ "${BASEDIR}/system.conf" if [[ "${ID}" == 'debian' ]]; then if [[ ! "$(hostname)" == "debian-live" ]]; then cat << EOF | tee /etc/apt/sources.list.d/contrib.sources 1> /dev/null Enabled: yes Types: deb URIs: http://deb.debian.org/debian/ Suites: ${VERSION_CODENAME} Components: contrib Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg EOF fi fi if [[ -f '/usr/bin/gsettings' ]]; then gsettings \ set \ org.gnome.desktop.media-handling \ automount \ false fi if [[ "${ID}" == 'debian' ]]; then apt \ update && \ apt \ install \ --yes \ mmdebstrap \ gdisk \ zfsutils-linux \ systemd-timesyncd elif [[ "${ID}" == 'fedora' ]]; then if [[ "${VERSION_ID}" -lt '41' ]]; then dnf config-manager \ --disable \ updates else dnf config-manager \ setopt \ updates.enabled=0 fi dnf install \ -y \ https://zfsonlinux.org/fedora/zfs-release-${ZOL_FEDORA_VER}$(rpm --eval "%{dist}").noarch.rpm dnf install \ -y \ https://dl.fedoraproject.org/pub/fedora/linux/releases/${VERSION_ID}/Everything/x86_64/os/Packages/k/kernel-devel-$(uname -r).rpm dnf install \ -y \ zfs \ gdisk modprobe \ zfs fi timedatectl if [[ ! "$(hostname)" == "debian-live" ]]; then zgenhostid \ -f \ 0x00bab10c fi "${BASEDIR}/partition.sh" sleep 5 "${BASEDIR}/mkfs.zfs.sh" mkdir \ -p \ /mnt/run mount \ -t \ tmpfs \ tmpfs \ /mnt/run mkdir \ -p \ /mnt/run/lock if [[ "${ID}" == 'elementary' ]]; then "${BASEDIR}/base-elementary.sh" -1 elif [[ "${ID}" == 'debian' ]]; then "${BASEDIR}/base-debian.sh" -1 fi printf \ "${HOSTNAME}\n" | tee /mnt/etc/hostname &> /dev/null printf \ "127.0.1.1\t${HOSTNAME}\n" | tee --append /mnt/etc/hosts &> /dev/null if [[ "${ID}" == 'debian' ]]; then "${BASEDIR}/base-debian.sh" -2 fi if [[ "${ID}" == 'elementary' ]]; then "${BASEDIR}/base-elementary.sh" -2 elif [[ "${ID}" == 'debian' ]]; then "${BASEDIR}/base-debian.sh" -3 fi mount \ --rbind \ /dev \ /mnt/dev mount \ --rbind \ /proc \ /mnt/proc mount \ --rbind \ /sys \ /mnt/sys cp \ /etc/hostid \ /mnt/etc/ if [[ "${ID}" == 'fedora' ]]; then "${BASEDIR}/base-fedora.sh" -2 fi rsync -pogAXtlHrDx \ "${BASEDIR}" \ /mnt if [[ "${ID}" == 'elementary' ]]; then "${BASEDIR}/base-elementary.sh" -3 fi # if [[ ! "${*}" = *--no-part* ]]; then if [[ -f "/etc/zfs/keys/${HOSTNAME,,}.key" ]]; then cp \ /etc/zfs/keys/${HOSTNAME,,}.key \ /mnt/etc/zfs/keys/ fi # fi if [[ "${ID}" == 'elementary' ]]; then "${BASEDIR}/base-elementary.sh" -4 fi printf \ "\nNow chrooting into /mnt...\n\n" chroot \ /mnt \ bash \ --login mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | xargs -I {} umount -Rlf {} if [[ "${ID}" == 'fedora' ]]; then umount \ -nR \ /mnt fi zpool \ export \ -a printf \ '\033[?47h\033[2J\033[H' cat <