#!/bin/bash set -euo pipefail baseDir="$(realpath "$(dirname "${0}")")" source \ /etc/os-release source \ "${baseDir}/system.conf" if [[ "${1}" == '--live' ]]; 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-${zolFedoraVer}$(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 if [[ "${1}" == '--rsync' ]]; then mkdir -p /run/install if [[ "${VERSION_ID}" -lt '41' ]]; then mount /dev/mapper/live-base /run/install else mount /dev/live-base /run/install fi rsync -pogAXtlHrDx \ --stats \ --exclude=/boot/efi/* \ --exclude=/etc/machine-id \ --info=progress2 \ /run/install/ /mnt fi if [[ "${1}" == '--resolv-conf' ]]; then mv /mnt/etc/resolv.conf \ /mnt/etc/resolv.conf.orig cp -L \ /etc/resolv.conf \ /mnt/etc fi if [[ "${1}" == '--dracut' ]]; then dracut \ --force \ --regenerate-all fi if [[ "${1}" == '--zfs-install' ]]; then if [[ "${encryption}" == 'yes' ]]; then cat << EOF | tee /etc/dracut.conf.d/zol.conf &> /dev/null nofsck="yes" add_dracutmodules+=" zfs " omit_dracutmodules+=" btrfs " install_items+=" /etc/zfs/keys/${hostname,,}.key " EOF else cat </etc/dracut.conf.d/zol.conf nofsck="yes" add_dracutmodules+=" zfs " omit_dracutmodules+=" btrfs " EOF fi if [[ "${VERSION_ID}" -lt '41' ]]; then dnf \ config-manager \ --disable \ updates else dnf \ config-manager \ setopt \ updates.enabled=0 fi 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 \ --releasever=${VERSION_ID} \ install \ -y \ https://zfsonlinux.org/fedora/zfs-release-${ZOL_FEDORA_VER}$(rpm --eval "%{dist}").noarch.rpm dnf \ install \ -y \ zfs \ zfs-dracut if [[ "${VERSION_ID}" -lt '41' ]]; then dnf \ config-manager \ --enable \ updates else dnf \ config-manager \ setopt \ updates.enabled=1 fi fi