diff --git a/setup.sh b/setup.sh index d599e74..0d40a94 100644 --- a/setup.sh +++ b/setup.sh @@ -22,10 +22,12 @@ function we_are_changerooted () { } function set_ntp () { + #1.1 timedatectl set-ntp true } function update_pacman_db () { + #1.2 printf -- '%s\n' 'Refreshing mirror list ...' systemctl start reflector # In an ISO and for the minimal number of packages we need we do not @@ -34,11 +36,13 @@ function update_pacman_db () { } function install_pkgs () { + #1.3 printf -- '%s\n' 'Installing packages ...' pacman -S --needed --noconfirm "${@}" } function install_zfs () { + #1.4 declare reset_colors='\033[0m' curl -s 'https://raw.githubusercontent.com/eoli3n/archiso-zfs/master/init' | bash printf -- "${reset_colors}" @@ -209,6 +213,7 @@ function export_pool () { } function setup_zpool () { + #1.4 local drive_by_id zpool_drive="$(select_part 'zfs')" drive_by_id="$(get_drive_id "${zpool_drive}")" @@ -228,6 +233,7 @@ function setup_zpool () { } function mount_system () { + #1.5 zfs mount "${zpool_name}"'/root/'"${zfs_arch_dataset_name}" zfs mount -a @@ -240,6 +246,7 @@ function mount_system () { } function copy_zpool_cache () { + #1.6 mkdir -p '/mnt/etc/zfs' zpool set 'cachefile=/etc/zfs/'"${zpool_name}"'.cache' "${zpool_name}" } @@ -260,6 +267,7 @@ function pacman_dont_check_space () { } function install_archlinux () { + #1.7 pacman_dl_parallel pacman_dont_check_space pacstrap /mnt \ @@ -286,6 +294,7 @@ function install_archlinux () { } function gen_fstab () { + #1.8 genfstab -U /mnt | grep -v "${zpool_name}" | tr -s '\n' | sed -r -e 's/\/mnt//' -e '/./,$!d' > '/mnt/etc/fstab' } @@ -298,6 +307,7 @@ EOF } function set_hostname () { + #1.9 declare new_hostname install_pkgs 'pwgen' new_hostname="$(pwgen --no-numerals --no-capitalize --ambiguous 8)" @@ -306,6 +316,7 @@ function set_hostname () { } function set_locale () { + #1.10 printf -- '%s\n' \ 'KEYMAP=de-latin1' \ 'FONT=Lat2-Terminus16' \ @@ -316,6 +327,7 @@ function set_locale () { } function add_zfs_hook_to_initramfs () { + #1.11 # Add zfs hook, remove fsck hook from initramfs. sed -ri \ -e 's'$'\x1''(HOOKS=)(.*?[\(| ])(filesystems)([\)| ][^\r\n\f]*)'$'\x1''\1\2zfs \3\4'$'\x1''g' \ @@ -330,6 +342,7 @@ function add_zfs_hook_to_initramfs () { } function set_initramfs_build_list () { + #1.12 # No need to build fallback initramfs, our new fallback is ZFS snapshots sed -ri \ -e '/^#/d' \ @@ -343,12 +356,14 @@ function set_initramfs_build_list () { } function add_zfs_files_to_new_os () { + #1.13 for zfs_file in '/etc/hostid' '/etc/zfs/zpool.cache' $([[ ! "${ARCHZBM_ZFSPROPS_NO_ENCRYPTION}" ]] && printf -- '%s' '/etc/zfs/'"${zpool_name}"'.key'); do rsync -av --itemize-changes {'','/mnt'}"${zfs_file}" done } function enter_chroot () { + #1.14 arch-chroot /mnt /bin/bash -xe < '/mnt/etc/systemd/network/50-wired.network' <<"EOF" [Match] Name=en* @@ -543,6 +560,7 @@ EOF } function configure_dns () { + #2.3 rm '/mnt/etc/resolv.conf' ln -s '/run/systemd/resolve/stub-resolv.conf' '/mnt/etc/resolv.conf' @@ -553,14 +571,17 @@ function configure_dns () { } function configure_reflector () { + #2.4 systemctl enable 'reflector' --root='/mnt' } function configure_zfs () { + #2.5 systemctl enable 'zfs-import-cache' 'zfs-mount' 'zfs-import.target' 'zfs.target' --root='/mnt' } function configure_zfs_mount_gen () { + #2.6 mkdir -p '/mnt/etc/zfs/zfs-list.cache' touch '/mnt/etc/zfs/zfs-list.cache/'"${zpool_name}" zfs list -H -o name,mountpoint,canmount,atime,relatime,devices,exec,readonly,setuid,nbmand | sed 's/\/mnt//' > '/mnt/etc/zfs/zfs-list.cache/'"${zpool_name}" @@ -568,6 +589,7 @@ function configure_zfs_mount_gen () { } function configure_zfsbootmenu () { + #2.7 curl -s 'https://raw.githubusercontent.com/zbm-dev/zfsbootmenu/master/etc/zfsbootmenu/mkinitcpio.conf' | sed -r -e '/^#/d' -e '/^$/d' > '/mnt/etc/zfsbootmenu/mkinitcpio.conf' cat > '/mnt/etc/zfsbootmenu/config.yaml' <