129 lines
2.2 KiB
Bash
Executable File
129 lines
2.2 KiB
Bash
Executable File
#!/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 <<EOF >/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
|