83 lines
2.3 KiB
ReStructuredText
83 lines
2.3 KiB
ReStructuredText
.. highlight:: sh
|
|
|
|
System Configuration
|
|
======================
|
|
|
|
.. contents:: Table of Contents
|
|
:local:
|
|
|
|
#. Generate fstab::
|
|
|
|
mkdir -p /mnt/var/log
|
|
mkdir -p /mnt/var/lib
|
|
mount -t zfs rpool/alma/var/lib /mnt/var/lib
|
|
mount -t zfs rpool/alma/var/log /mnt/var/log
|
|
mkdir -p /mnt/etc/
|
|
genfstab -t PARTUUID /mnt | grep -v swap > /mnt/etc/fstab
|
|
sed -i "s|vfat.*rw|vfat rw,x-systemd.idle-timeout=1min,x-systemd.automount,noauto,nofail|" /mnt/etc/fstab
|
|
|
|
#. Install basic system packages::
|
|
|
|
dnf --installroot=/mnt \
|
|
--releasever=$VERSION_ID -y install \
|
|
@core grub2-efi-x64 \
|
|
grub2-pc-modules grub2-efi-x64-modules \
|
|
shim-x64 efibootmgr \
|
|
kernel
|
|
dnf --installroot=/mnt \
|
|
--releasever=$VERSION_ID -y install \
|
|
https://zfsonlinux.org/epel/zfs-release-2-2$(rpm --eval "%{dist}").noarch.rpm
|
|
dnf config-manager --installroot=/mnt --disable zfs
|
|
dnf config-manager --installroot=/mnt --enable zfs-kmod
|
|
dnf --installroot=/mnt --releasever=$VERSION_ID \
|
|
-y install zfs zfs-dracut
|
|
|
|
#. Configure dracut::
|
|
|
|
echo 'add_dracutmodules+=" zfs "' > /mnt/etc/dracut.conf.d/zfs.conf
|
|
if grep mpt3sas /proc/modules; then
|
|
echo 'forced_drivers+=" mpt3sas "' >> /mnt/etc/dracut.conf.d/zfs.conf
|
|
fi
|
|
if grep virtio_blk /proc/modules; then
|
|
echo 'filesystems+=" virtio_blk "' >> /mnt/etc/dracut.conf.d/fs.conf
|
|
fi
|
|
|
|
#. Generate host id::
|
|
|
|
zgenhostid -f -o /mnt/etc/hostid
|
|
|
|
#. Install locale package, example for English locale::
|
|
|
|
dnf --installroot=/mnt install -y glibc-minimal-langpack glibc-langpack-en
|
|
|
|
#. By default SSH server is enabled, allowing root login by password,
|
|
disable SSH server::
|
|
|
|
systemctl disable sshd --root=/mnt
|
|
systemctl enable firewalld --root=/mnt
|
|
|
|
#. Chroot::
|
|
|
|
history -w /mnt/home/sys-install-pre-chroot.txt
|
|
arch-chroot /mnt /usr/bin/env DISK="$DISK" bash --login
|
|
|
|
#. For SELinux, relabel filesystem on reboot::
|
|
|
|
fixfiles -F onboot
|
|
|
|
#. Generate initrd::
|
|
|
|
for directory in /lib/modules/*; do
|
|
kernel_version=$(basename $directory)
|
|
dracut --force --kver $kernel_version
|
|
done
|
|
|
|
#. Set locale, keymap, timezone, hostname and root password::
|
|
|
|
rm -f /etc/localtime
|
|
systemd-firstboot --prompt --root-password=PASSWORD --force
|
|
|
|
#. Set root password, the password set earlier does not work due to SELinux::
|
|
|
|
passwd
|