summaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-05-27 17:52:15 -0500
committerCraig Jennings <c@cjennings.net>2025-05-27 17:52:15 -0500
commit6ddb942a207a48c8ed76c7be4402e0056e0d77f2 (patch)
tree26da875d32ea791a108ddae49d75ff6490853a01 /assets
parente9ad29709b392b806d154c9d123e403b5680ac93 (diff)
delete unused vagrant and zfs scripts
Diffstat (limited to 'assets')
-rw-r--r--assets/Vagrantfile71
-rw-r--r--assets/script69
-rw-r--r--assets/user_credentials.json5
-rw-r--r--assets/zfs/README.org13
-rw-r--r--assets/zfs/script69
-rwxr-xr-xassets/zfs/stage0.sh13
-rwxr-xr-xassets/zfs/stage1.sh210
-rwxr-xr-xassets/zfs/stage2.sh199
-rwxr-xr-xassets/zfssetup406
9 files changed, 0 insertions, 1055 deletions
diff --git a/assets/Vagrantfile b/assets/Vagrantfile
deleted file mode 100644
index f84a67a..0000000
--- a/assets/Vagrantfile
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-# All Vagrant configuration is done below. The "2" in Vagrant.configure
-# configures the configuration version (we support older styles for
-# backwards compatibility). Please don't change it unless you know what
-# you're doing.
-Vagrant.configure("2") do |config|
- # The most common configuration options are documented and commented below.
- # For a complete reference, please see the online documentation at
- # https://docs.vagrantup.com.
-
- # Every Vagrant development environment requires a box. You can search for
- # boxes at https://vagrantcloud.com/search.
- config.vm.box = "archlinux/archlinux"
-
- # Disable automatic box update checking. If you disable this, then
- # boxes will only be checked for updates when the user runs
- # `vagrant box outdated`. This is not recommended.
- # config.vm.box_check_update = false
-
- # Create a forwarded port mapping which allows access to a specific port
- # within the machine from a port on the host machine. In the example below,
- # accessing "localhost:8080" will access port 80 on the guest machine.
- # NOTE: This will enable public access to the opened port
- # config.vm.network "forwarded_port", guest: 80, host: 8080
-
- # Create a forwarded port mapping which allows access to a specific port
- # within the machine from a port on the host machine and only allow access
- # via 127.0.0.1 to disable public access
- # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
-
- # Create a private network, which allows host-only access to the machine
- # using a specific IP.
- # config.vm.network "private_network", ip: "192.168.33.10"
-
- # Create a public network, which generally matched to bridged network.
- # Bridged networks make the machine appear as another physical device on
- # your network.
- config.vm.network "public_network", bridge: "enp2s0", type: "dhcp"
- config.vm.hostname = "archlinux-base"
-
- # Share an additional folder to the guest VM. The first argument is
- # the path on the host to the actual folder. The second argument is
- # the path on the guest to mount the folder. And the optional third
- # argument is a set of non-required options.
- config.vm.synced_folder "~cjennings/code/archsetup/", "/vagrant_data"
-
- # Provider-specific configuration so you can fine-tune various
- # backing providers for Vagrant. These expose provider-specific options.
- # Example for VirtualBox:
- #
- config.vm.provider "virtualbox" do |vb|
- # # Display the VirtualBox GUI when booting the machine
- vb.gui = false
- #
- # # Customize the amount of memory on the VM:
- vb.memory = "8192"
- end
- #
- # View the documentation for the provider you are using for more
- # information on available options.
-
- # Enable provisioning with a shell script. Additional provisioners such as
- # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
- # documentation for more information about their specific syntax and use.
- # config.vm.provision "shell", inline: <<-SHELL
- # apt-get update
- # apt-get install -y apache2
- # SHELL
-end
diff --git a/assets/script b/assets/script
deleted file mode 100644
index 0a19346..0000000
--- a/assets/script
+++ /dev/null
@@ -1,69 +0,0 @@
-loadkeys us
-setfont ter-132n
-
-# TK gparted commands
-
-zpool create -f \
- -o ashift=12 \
- -O acltype=posixacl -O canmount=off \
- -O dnodesize=auto -O normalization=formD \
- -O atime=off -O xattr=sa -O mountpoint=none \
- -R /mnt zroot /dev/nvme0n1p2
-
-zfs create -o canmount=noauto -o mountpoint=/ zroot/rootfs
-zpool set bootfs=zroot/rootfs zroot
-zfs create zroot/rootfs/home
-zfs mount zroot/rootfs
-
-mkdir -p /mnt/etc/zfs
-zpool set cachefile=/etc/zfs/zpool.cache zroot
-cp /etc/zfs/zpool.cache /mnt/etc/zfs/zpool.cache
-
-mkfs.vfat /dev/nvme0n1p1
-mkdir /mnt/boot
-mount /dev/nvme0n1p1 /mnt/boot
-
-genfstab -U -p /mnt >> /mnt/etc/fstab
-
-pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware grub efibootmgr nano vi zsh openssh networkmanager reflector
-
-arch-chroot /mnt
-
-echo -e '
-[archzfs]
-Server = https://archzfs.com/$repo/x86_64' >> /etc/pacman.conf
-
-pacman-key -r DDF7DB817396A49B2A2723F7403BD972F75D9D76
-pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76
-
-pacman -Sy zfs-dkms
-pacman -Sy intel-ucode
-
-# TK edit mkinitcpio.conf, removing fsck adding zfs before filesystems
-
-mkinitcpio -p linux-lts
-
-mkdir /boot/grub
-nano /etc/default/grub # GRUB_CMDLINE_LINUX_DEFAULT="zfs=zroot/rootfs"
-grub-mkconfig -o /boot/grub/grub.cfg
-grub-install --target=x86_64-efi --efi-directory=/boot
-
-systemctl enable zfs.target zfs-import-cache zfs-mount zfs-import.target NetworkManager reflector.timer
-
-ln -sf /usr/share/zoneinfo/US/Central /etc/localtime
-hwclock --systohc
-
-echo -e 'en_US.UTF-8 UTF-8' >> /etc/locale.gen
-echo 'KEYMAP=us' > /etc/vconsole.conf
-echo 'LANG=en_US.UTF-8' > /etc/locale.conf
-echo velox > /etc/hostname
-echo -e '127.0.0.1 localhost\n::1 localhost\n127.0.1.1 velox' >> /etc/hosts
-
-echo "root:welcome" | chpasswd
-chage -d 0 root
-
-exit # done with chroot
-# ...back in the installer shell...
-umount -R /mnt
-zfs umount -a
-zpool export -a
diff --git a/assets/user_credentials.json b/assets/user_credentials.json
deleted file mode 100644
index 50e1c64..0000000
--- a/assets/user_credentials.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "!root-password": "cmjdase1n",
- "!users": [],
- "encryption_password": "cmjdase1n"
-}
diff --git a/assets/zfs/README.org b/assets/zfs/README.org
deleted file mode 100644
index 3a46823..0000000
--- a/assets/zfs/README.org
+++ /dev/null
@@ -1,13 +0,0 @@
-* WHY THIS
-
-* INSTRUCTIONS
-** Boot from a iso that contains zfs kernel modules
-There are two ways of doing this.
-
-First, you can boot from the official Arch Linux
-** Git clone this repository
-#+begin_src sh
-git clone git@cjennings.net:zfsarch.git
-#+end_src
-** Add the correct disk to the
-**
diff --git a/assets/zfs/script b/assets/zfs/script
deleted file mode 100644
index 0a19346..0000000
--- a/assets/zfs/script
+++ /dev/null
@@ -1,69 +0,0 @@
-loadkeys us
-setfont ter-132n
-
-# TK gparted commands
-
-zpool create -f \
- -o ashift=12 \
- -O acltype=posixacl -O canmount=off \
- -O dnodesize=auto -O normalization=formD \
- -O atime=off -O xattr=sa -O mountpoint=none \
- -R /mnt zroot /dev/nvme0n1p2
-
-zfs create -o canmount=noauto -o mountpoint=/ zroot/rootfs
-zpool set bootfs=zroot/rootfs zroot
-zfs create zroot/rootfs/home
-zfs mount zroot/rootfs
-
-mkdir -p /mnt/etc/zfs
-zpool set cachefile=/etc/zfs/zpool.cache zroot
-cp /etc/zfs/zpool.cache /mnt/etc/zfs/zpool.cache
-
-mkfs.vfat /dev/nvme0n1p1
-mkdir /mnt/boot
-mount /dev/nvme0n1p1 /mnt/boot
-
-genfstab -U -p /mnt >> /mnt/etc/fstab
-
-pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware grub efibootmgr nano vi zsh openssh networkmanager reflector
-
-arch-chroot /mnt
-
-echo -e '
-[archzfs]
-Server = https://archzfs.com/$repo/x86_64' >> /etc/pacman.conf
-
-pacman-key -r DDF7DB817396A49B2A2723F7403BD972F75D9D76
-pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76
-
-pacman -Sy zfs-dkms
-pacman -Sy intel-ucode
-
-# TK edit mkinitcpio.conf, removing fsck adding zfs before filesystems
-
-mkinitcpio -p linux-lts
-
-mkdir /boot/grub
-nano /etc/default/grub # GRUB_CMDLINE_LINUX_DEFAULT="zfs=zroot/rootfs"
-grub-mkconfig -o /boot/grub/grub.cfg
-grub-install --target=x86_64-efi --efi-directory=/boot
-
-systemctl enable zfs.target zfs-import-cache zfs-mount zfs-import.target NetworkManager reflector.timer
-
-ln -sf /usr/share/zoneinfo/US/Central /etc/localtime
-hwclock --systohc
-
-echo -e 'en_US.UTF-8 UTF-8' >> /etc/locale.gen
-echo 'KEYMAP=us' > /etc/vconsole.conf
-echo 'LANG=en_US.UTF-8' > /etc/locale.conf
-echo velox > /etc/hostname
-echo -e '127.0.0.1 localhost\n::1 localhost\n127.0.1.1 velox' >> /etc/hosts
-
-echo "root:welcome" | chpasswd
-chage -d 0 root
-
-exit # done with chroot
-# ...back in the installer shell...
-umount -R /mnt
-zfs umount -a
-zpool export -a
diff --git a/assets/zfs/stage0.sh b/assets/zfs/stage0.sh
deleted file mode 100755
index 74132dc..0000000
--- a/assets/zfs/stage0.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-pacman-key --init
-pacman-key --refresh-keys
-pacman-key --populate
-pacman -Syy
-pacman -S --noconfirm openssh tmux
-systemctl start sshd
-echo "root:welcome" | chpasswd
-# curl -s https://raw.githubusercontent.com/eoli3n/archiso-zfs/master/init | bash
-# echo ""; echo "Enter password for zfsarch repository when prompted"
-# git clone cjennings@cjennings.net:git/zfsarch.git
-echo ""; echo "Stage 0 completed."
diff --git a/assets/zfs/stage1.sh b/assets/zfs/stage1.sh
deleted file mode 100755
index 392ff74..0000000
--- a/assets/zfs/stage1.sh
+++ /dev/null
@@ -1,210 +0,0 @@
-#!/usr/bin/env bash
-# install arch linux on zfs root, stage one
-# Craig Jennings <c@cjennings.net>
-#
-# https://openzfs.github.io/openzfs-docs/Getting%20Started/Arch%20Linux/Root%20on%20ZFS.html
-#
-
-set -e # halt on any error
-
-# -------------------------- Prerequisites --------------------------
-
-sed -i "s/^#ParallelDownloads = 5$/ParallelDownloads = 15/" /etc/pacman.conf
-# These are now done in stage 0
-# pacman-key --init
-# pacman-key --refresh-keys
-# pacman --noconfirm -Sy archlinux-keyring
-loadkeys us
-timedatectl set-ntp true
-
-### --------------------------- Choose Disk ---------------------------
-
-all_disk_ids=( $(ls /dev/disk/by-id/) )
-echo ""; echo "Select the disk id to use. All data will be erased."
-select disk_id in "${all_disk_ids[@]}"; do
- # ensure valid selection
- if [[ -n $disk_id ]]; then
- selection=$disk_id
- break
- else
- echo "Invalid. Try again."
- fi
-done
-
-# Confirm the selected disk
-read -p "Confirm: '$selection' [y/n]? " choice
-if [[ "$choice" != "y" ]]; then
- echo "Exiting..."
- exit 1
-fi
-
-DISK="/dev/disk/by-id/$selection"
-MNT=/mnt # Set a mount point
-SWAPSIZE=4 # Set swap size in GB
-RESERVE=1 # Set how much space to leave at the end of disk, minimum 1GB
-
-### --------------------------- Erase Disk -------------------------
-echo ""; echo "### Erasing Disk"
-blkdiscard -f "${DISK}" || true # discard all sectors on flash-based storage
-sgdisk --zap-all "${DISK}" # clear the disk
-
-### ------------------------- Partition Disk ------------------------
-echo ""; echo "### Partitioning Disk"
-parted --script --align=optimal "${DISK}" -- \
- mklabel gpt \
- mkpart EFI 2MiB 1GiB \
- mkpart bpool 1GiB 5GiB \
- mkpart rpool 5GiB -$((SWAPSIZE + RESERVE))GiB \
- mkpart swap -$((SWAPSIZE + RESERVE))GiB -"${RESERVE}"GiB \
- mkpart BIOS 1MiB 2MiB \
- set 1 esp on \
- set 5 bios_grub on \
- set 5 legacy_boot on
-
-### ---------------------- Setup Encrypted Swap ---------------------
-echo ""; echo "### Encrypted Swap"
-for i in ${DISK}; do
- cryptsetup open --type plain --key-file /dev/random "${i}"-part4 "${i##*/}"-part4
- mkswap /dev/mapper/"${i##*/}"-part4
- swapon /dev/mapper/"${i##*/}"-part4
-done
-
-# ------------------- Create Boot And Root Pools ------------------
-
-# This step creates a separate boot pool for /boot with the features limited to
-# only those that GRUB supports, allowing the root pool to use any/all features.
-
-echo ""; echo "### Checking ZFS Module"
-modprobe zfs # ensure zfs module is loaded
-
-echo ""; echo "### Creating Boot Pool"
-# shellcheck disable=SC2046
-zpool create -d \
- -o feature@async_destroy=enabled \
- -o feature@bookmarks=enabled \
- -o feature@embedded_data=enabled \
- -o feature@empty_bpobj=enabled \
- -o feature@enabled_txg=enabled \
- -o feature@extensible_dataset=enabled \
- -o feature@filesystem_limits=enabled \
- -o feature@hole_birth=enabled \
- -o feature@large_blocks=enabled \
- -o feature@lz4_compress=enabled \
- -o feature@spacemap_histogram=enabled \
- -o ashift=12 \
- -o autotrim=on \
- -O acltype=posixacl \
- -O canmount=off \
- -O compression=lz4 \
- -O devices=off \
- -O normalization=formD \
- -O relatime=on \
- -O xattr=sa \
- -O mountpoint=/boot \
- -R "${MNT}" \
- bpool \
- $(for i in ${DISK}; do
- printf '%s ' "${i}-part2";
- done)
-
-echo ""; echo "### Creating Root Pool"
-# shellcheck disable=SC2046
-zpool create \
- -o ashift=12 \
- -o autotrim=on \
- -R "${MNT}" \
- -O acltype=posixacl \
- -O canmount=off \
- -O compression=zstd \
- -O dnodesize=auto \
- -O normalization=formD \
- -O relatime=on \
- -O xattr=sa \
- -O mountpoint=/ \
- rpool \
- $(for i in ${DISK}; do
- printf '%s ' "${i}-part3";
- done)
-
-echo ""; echo "### Creating Unencrypted Root System Container"
-# create UNENCRYPTED root system container
-zfs create \
- -o canmount=off \
- -o mountpoint=none \
-rpool/archlinux
-
-# --------------------- Create System Datasets --------------------
-echo ""; echo "### Creating System Datasets"
-zfs create -o canmount=noauto -o mountpoint=/ rpool/archlinux/root
-zfs mount rpool/archlinux/root
-zfs create -o mountpoint=legacy rpool/archlinux/home
-mkdir "${MNT}"/home
-mount -t zfs rpool/archlinux/home "${MNT}"/home
-zfs create -o mountpoint=legacy rpool/archlinux/var
-zfs create -o mountpoint=legacy rpool/archlinux/var/lib
-zfs create -o mountpoint=legacy rpool/archlinux/var/log
-zfs create -o mountpoint=none bpool/archlinux
-zfs create -o mountpoint=legacy bpool/archlinux/root
-mkdir "${MNT}"/boot
-mount -t zfs bpool/archlinux/root "${MNT}"/boot
-mkdir -p "${MNT}"/var/log
-mkdir -p "${MNT}"/var/lib
-mount -t zfs rpool/archlinux/var/lib "${MNT}"/var/lib
-mount -t zfs rpool/archlinux/var/log "${MNT}"/var/log
-
-# ---------------------- Format And Mount ESP ---------------------
-echo ""; echo "### Format And Mount ESP"
-for i in ${DISK}; do
- mkfs.vfat -n EFI "${i}"-part1
- mkdir -p "${MNT}"/boot/efis/"${i##*/}"-part1
- mount -t vfat -o iocharset=iso8859-1 "${i}"-part1 "${MNT}"/boot/efis/"${i##*/}"-part1
-done
-
-mkdir -p "${MNT}"/boot/efi
-mount -t vfat -o iocharset=iso8859-1 "$(echo "${DISK}" | sed "s|^ *||" | cut -f1 -d' '|| true)"-part1 "${MNT}"/boot/efi
-
-### -------------------------- Install Base -------------------------
-echo ""; echo "### Installing Base"
-# install packages with pacstrap
-pacstrap "${MNT}" \
- base \
- base-devel \
- dkms \
- efibootmgr \
- git \
- grub \
- intel-ucode \
- linux-firmware \
- linux-lts \
- linux-lts-headers \
- man-db \
- man-pages \
- vi
-
-# create fstab and remove all zroot entries
-genfstab -U -p "${MNT}" >> "${MNT}"/etc/fstab
-sed -i '/^# zroot/d' "${MNT}"/etc/fstab
-sed -i '/^zroot/d' "${MNT}"/etc/fstab
-sed -i '/^$/d' "${MNT}"/etc/fstab
-echo "" >> "${MNT}"/etc/fstab # one blank line at the end
-
-# copy over dns settings to the new system
-cp -v /etc/resolv.conf "${MNT}"/etc
-
-# copy stage2 script to the new system
-cp ./stage2.sh "${MNT}"/root
-
-# ----------------------------- Chroot ----------------------------
-
-echo ""; echo "Done with Stage One"
-chroot "${MNT}" /usr/bin/env DISK="${DISK}" /root/stage2.sh
-
-# -------------------------- After Chroot -------------------------
-
-umount -Rl "${MNT}"
-zfs snapshot -r rpool@initial-installation
-zfs snapshot -r bpool@initial-installation
-
-zpool export -a
-
-echo ""; echo "Done with Stage Two"
diff --git a/assets/zfs/stage2.sh b/assets/zfs/stage2.sh
deleted file mode 100755
index 6ec1a52..0000000
--- a/assets/zfs/stage2.sh
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/usr/bin/env bash
-# install arch linux on zfs root, stage two
-#
-
-set -e # halt on any error
-
-password="welcome" # root password; will force change after login
-hostname="velox"
-disk=/dev/nvme0n1
-
-yay_repo="https://aur.archlinux.org/yay.git"
-source_dir="/usr/src"
-logfile=/root/zfsarch_stage2.log
-
-cd # go home
-
-# --------------------- Add ArchZFS Repository --------------------
-
-echo ""; "### ADDING ARCHZFS REPOSITORY " echo "" | tee -a $logfile
-
-echo ""; "### handling arch keys" echo "" | tee -a $logfile
-pacman-key --init >> $logfile 2>&1
-pacman-key --refresh-keys >> $logfile 2>&1
-pacman-key --populate >> $logfile 2>&1
-
-curl --fail-early --fail -L https://archzfs.com/archzfs.gpg \
-| pacman-key -a - --gpgdir /etc/pacman.d/gnupg
-
-pacman-key \
---lsign-key \
---gpgdir /etc/pacman.d/gnupg \
-DDF7DB817396A49B2A2723F7403BD972F75D9D76
-
-echo ""; "### adding repository info" echo "" | tee -a $logfile
-tee -a /etc/pacman.d/mirrorlist-archzfs <<- 'EOF'
-## See https://github.com/archzfs/archzfs/wiki
-## France
-#,Server = https://archzfs.com/$repo/$arch
-
-## Germany
-#,Server = https://mirror.sum7.eu/archlinux/archzfs/$repo/$arch
-#,Server = https://mirror.biocrafting.net/archlinux/archzfs/$repo/$arch
-
-## India
-#,Server = https://mirror.in.themindsmaze.com/archzfs/$repo/$arch
-
-## United States
-#,Server = https://zxcvfdsa.com/archzfs/$repo/$arch
-EOF
-
-tee -a /etc/pacman.conf <<- 'EOF'
-#[archzfs-testing]
-#Include = /etc/pacman.d/mirrorlist-archzfs
-
-#,[archzfs]
-#,Include = /etc/pacman.d/mirrorlist-archzfs
-EOF
-
-
-# the '#,' prefix is a workaround for ci/cd tests. we should remove them
-sed -i 's|#,||' /etc/pacman.d/mirrorlist-archzfs
-sed -i 's|#,||' /etc/pacman.conf
-sed -i 's|^#||' /etc/pacman.d/mirrorlist
-
-# ---------- Install Packages And Linux Compatible Kernel ---------
-echo ""; "### INSTALLING COMPATIBLE KERNEL " | tee -a $logfile
-echo "### identifying kernel version" | tee -a $logfile
-
-pacman -Sy >> $logfile 2>&1
-
-kernel_compatible_with_zfs="$(pacman -Si zfs-linux \
-| grep 'Depends On' \
-| sed "s|.*linux=||" \
-| awk '{ print $1 }')"
-
-echo "### installing kernel" | tee -a $logfile
-pacman -U --noconfirm https://america.archive.pkgbuild.com/packages/l/linux/linux-"${kernel_compatible_with_zfs}"-x86_64.pkg.tar.zst >> $logfile 2>&1
-pacman -S --noconfirm zfs-linux zfs-utils >> $logfile 2>&1
-
-# ---------------------- Configure Mkinitcpio ---------------------
-
-sed -i 's|filesystems|zfs filesystems|' /etc/mkinitcpio.conf
-mkinitcpio -P
-
-# ------------------------- General Hostid ------------------------
-
-zgenhostid -f -o /etc/hostid
-
-# ---------------------- Apply Grub Workaround ----------------------
-# Note: This workaround needs to be applied for every GRUB update, as the update will overwrite the changes.
-
-echo 'export ZPOOL_VDEV_NAME_PATH=YES' >> /etc/profile.d/zpool_vdev_name_path.sh
-# shellcheck disable=SC1091
-. /etc/profile.d/zpool_vdev_name_path.sh
-
-# GRUB fails to detect rpool name, hard code as "rpool"
-sed -i "s|rpool=.*|rpool=rpool|" /etc/grub.d/10_linux
-
-# -------------------------- Install Grub -------------------------
-
-mkdir -p /boot/efi/archlinux/grub-bootdir/i386-pc/
-mkdir -p /boot/efi/archlinux/grub-bootdir/x86_64-efi/
-for i in ${DISK}; do
- grub-install --target=i386-pc --boot-directory \
- /boot/efi/archlinux/grub-bootdir/i386-pc/ "${i}"
-done
-grub-install --target x86_64-efi --boot-directory \
- /boot/efi/archlinux/grub-bootdir/x86_64-efi/ --efi-directory \
- /boot/efi --bootloader-id archlinux --removable
-if test -d /sys/firmware/efi/efivars/; then
- grub-install --target x86_64-efi --boot-directory \
- /boot/efi/archlinux/grub-bootdir/x86_64-efi/ --efi-directory \
- /boot/efi --bootloader-id archlinux
-fi
-
-# Import both bpool and rpool at boot:
-echo 'GRUB_CMDLINE_LINUX="zfs_import_dir=/dev/"' >> /etc/default/grub
-
-# Generate GRUB menu:
-mkdir -p /boot/grub
-grub-mkconfig -o /boot/grub/grub.cfg
-cp /boot/grub/grub.cfg \
- /boot/efi/archlinux/grub-bootdir/x86_64-efi/grub/grub.cfg
-cp /boot/grub/grub.cfg \
- /boot/efi/archlinux/grub-bootdir/i386-pc/grub/grub.cfg
-
-# For both legacy and EFI booting: mirror ESP content:
-espdir=$(mktemp -d)
-find /boot/efi/ -maxdepth 1 -mindepth 1 -type d -print0 \
-| xargs -t -0I '{}' cp -r '{}' "${espdir}"
-find "${espdir}" -maxdepth 1 -mindepth 1 -type d -print0 \
- | xargs -t -0I '{}' sh -vxc "find /boot/efis/ -maxdepth 1 -mindepth 1 -type d -print0 | xargs -t -0I '[]' cp -r '{}' '[]'"
-
-
-### ----------------------- Config Environment ---------------------
-
-# required software
-pacman -S --noconfirm sed networkmanager reflector
-systemctl enable NetworkManager
-systemctl enable reflector.timer
-
-# parallel downloads
-sed -i "s/^#ParallelDownloads = 5$/ParallelDownloads = 15/" /etc/pacman.conf
-
-# aur config
-sed -i '/^CFLAGS=/s/-march=x86-64 -mtune=generic/-march=native/' /etc/makepkg.conf
-sed -i 's/^#RUSTFLAGS="-C opt-level=2"/RUSTFLAGS="-C opt-level=2 -C target-cpu=native"/g' /etc/makepkg.conf
-sed -i 's/^#MAKEFLAGS="-j2"/MAKEFLAGS="-j$(nproc)"/g' /etc/makepkg.conf
-sed -i 's/^COMPRESSXZ=(xz -c -z -)/COMPRESSXZ=(xz -c -z --threads=0 -)/g' /etc/makepkg.conf
-sed -i 's/^COMPRESSZST=(zstd -c -z -q -)/COMPRESSZST=(zstd -c -z -q --threads=0 -)/g' /etc/makepkg.conf
-
-# set up local time
-sudo ln -sf /usr/share/zoneinfo/US/Central /etc/localtime
-hwclock --systohc
-
-# set up locale
-echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
-locale-gen
-echo "LANG=en_US.UTF-8" > /etc/locale.conf
-
-# set up hostname
-echo "$hostname" > /etc/hostname
-echo "127.0.0.1 localhost" >> /etc/hosts
-echo "::1 localhost" >> /etc/hosts
-echo "127.0.1.1 $hostname.localdomain $hostname" >> /etc/hosts
-
-# console settings
-echo "KEYMAP=us" > /etc/vconsole.conf
-
-# ------------------------ Enable AUR Helper ------------------------
-
-pacman -Syy
-pacman -S --needed --noconfirm base-devel git openssh wget
-build_dir="$source_dir/yay"
-mkdir -p "$build_dir"
-chown "$username:$username" -R "/home/$username"
-sudo -u "$username" git clone --depth 1 "$yay_repo" "$build_dir"
-cd "$build_dir" && sudo -u "$username" makepkg --noconfirm -si
-
-### ------------------------- Enable ZFS Services ----------------------
-# add kernel modules
-pacman -S --noconfirm zfs-dkms
-
-# enable zfs services
-systemctl enable zfs-import-cache
-systemctl enable zfs-import.target
-systemctl enable zfs-mount.service
-systemctl enable zfs-share
-systemctl enable zfs-zed
-systemctl enable zfs.target
-
-### ----------------------------- Wrap Up --------------------------
-
-# set root password; must change first login
-echo "root:$password" | chpasswd
-chage -d 0 root
-
-# --------------------------- Exit Chroot ---------------------------
-exit
diff --git a/assets/zfssetup b/assets/zfssetup
deleted file mode 100755
index 6bc95ca..0000000
--- a/assets/zfssetup
+++ /dev/null
@@ -1,406 +0,0 @@
-#!/usr/bin/env bash
-# install arch linux on zfs root, stage one
-# Craig Jennings <c@cjennings.net>
-#
-# https://openzfs.github.io/openzfs-docs/Getting%20Started/Arch%20Linux/Root%20on%20ZFS.html
-
-# set -e # halt on any error
-
-# -------------------------- Prerequisites --------------------------
-
-sed -i "s/^#ParallelDownloads = 5$/ParallelDownloads = 15/" /etc/pacman.conf
-loadkeys us
-timedatectl set-ntp true
-
-### --------------------------- Choose Disk ---------------------------
-
-all_disk_ids=( $(ls /dev/disk/by-id/) )
-echo ""; echo "Select the disk id to use. All data will be erased."
-select disk_id in "${all_disk_ids[@]}"; do
- # ensure valid selection
- if [[ -n $disk_id ]]; then
- selection=$disk_id
- break
- else
- echo "Invalid. Try again."
- fi
-done
-
-# Confirm the selected disk
-read -p "Confirm: '$selection' [y/n]? " choice
-if [[ "$choice" != "y" ]]; then
- echo "Exiting..."
- exit 1
-fi
-
-DISK="/dev/disk/by-id/$selection"
-MNT=/mnt # Set a mount point
-SWAPSIZE=4 # Set swap size in GB
-RESERVE=1 # Set how much space to leave at the end of disk, minimum 1GB
-
-### --------------------------- Erase Disk -------------------------
-
-echo ""; echo "### Erasing Disk"
-blkdiscard -f "${DISK}" || true # discard all sectors on flash-based storage
-sgdisk --zap-all "${DISK}" # clear the disk
-
-### ------------------------- Partition Disk ------------------------
-
-echo ""; echo "### Partitioning Disk"
-parted --script --align=optimal "${DISK}" -- \
- mklabel gpt \
- mkpart EFI 2MiB 1GiB \
- mkpart bpool 1GiB 5GiB \
- mkpart rpool 5GiB -$((SWAPSIZE + RESERVE))GiB \
- mkpart swap -$((SWAPSIZE + RESERVE))GiB -"${RESERVE}"GiB \
- mkpart BIOS 1MiB 2MiB \
- set 1 esp on \
- set 5 bios_grub on \
- set 5 legacy_boot on
-
-### ---------------------- Setup Encrypted Swap ---------------------
-
-echo ""; echo "### Encrypted Swap"
-for i in ${DISK}; do
- cryptsetup open --type plain --key-file /dev/random "${i}"-part4 "${i##*/}"-part4
- mkswap /dev/mapper/"${i##*/}"-part4
- swapon /dev/mapper/"${i##*/}"-part4
-done
-
-# ------------------- Create Boot And Root Pools ------------------
-
-# This step creates a separate boot pool for /boot with the features limited to
-# only those that GRUB supports, allowing the root pool to use any/all features.
-
-echo ""; echo "### Checking ZFS Module"
-modprobe zfs # ensure zfs module is loaded
-
-echo ""; echo "### Creating Boot Pool"
-# shellcheck disable=SC2046
-zpool create -d \
- -o feature@async_destroy=enabled \
- -o feature@bookmarks=enabled \
- -o feature@embedded_data=enabled \
- -o feature@empty_bpobj=enabled \
- -o feature@enabled_txg=enabled \
- -o feature@extensible_dataset=enabled \
- -o feature@filesystem_limits=enabled \
- -o feature@hole_birth=enabled \
- -o feature@large_blocks=enabled \
- -o feature@lz4_compress=enabled \
- -o feature@spacemap_histogram=enabled \
- -o ashift=12 \
- -o autotrim=on \
- -O acltype=posixacl \
- -O canmount=off \
- -O compression=lz4 \
- -O devices=off \
- -O normalization=formD \
- -O relatime=on \
- -O xattr=sa \
- -O mountpoint=/boot \
- -R "${MNT}" \
- bpool \
- $(for i in ${DISK}; do
- printf '%s ' "${i}-part2";
- done)
-
-echo ""; echo "### Creating Root Pool"
-# shellcheck disable=SC2046
-zpool create \
- -o ashift=12 \
- -o autotrim=on \
- -R "${MNT}" \
- -O acltype=posixacl \
- -O canmount=off \
- -O compression=zstd \
- -O dnodesize=auto \
- -O normalization=formD \
- -O relatime=on \
- -O xattr=sa \
- -O mountpoint=/ \
- rpool \
- $(for i in ${DISK}; do
- printf '%s ' "${i}-part3";
- done)
-
-echo ""; echo "### Creating Unencrypted Root System Container"
-# create UNENCRYPTED root system container
-zfs create \
- -o canmount=off \
- -o mountpoint=none \
-rpool/archlinux
-
-# --------------------- Create System Datasets --------------------
-
-echo ""; echo "### Creating System Datasets"
-zfs create -o canmount=noauto -o mountpoint=/ rpool/archlinux/root
-zfs mount rpool/archlinux/root
-zfs create -o mountpoint=legacy rpool/archlinux/home
-mkdir "${MNT}"/home
-mount -t zfs rpool/archlinux/home "${MNT}"/home
-zfs create -o mountpoint=legacy rpool/archlinux/var
-zfs create -o mountpoint=legacy rpool/archlinux/var/lib
-zfs create -o mountpoint=legacy rpool/archlinux/var/log
-zfs create -o mountpoint=none bpool/archlinux
-zfs create -o mountpoint=legacy bpool/archlinux/root
-mkdir "${MNT}"/boot
-mount -t zfs bpool/archlinux/root "${MNT}"/boot
-mkdir -p "${MNT}"/var/log
-mkdir -p "${MNT}"/var/lib
-mount -t zfs rpool/archlinux/var/lib "${MNT}"/var/lib
-mount -t zfs rpool/archlinux/var/log "${MNT}"/var/log
-
-# ---------------------- Format And Mount ESP ---------------------
-
-echo ""; echo "### Format And Mount ESP"
-for i in ${DISK}; do
- mkfs.vfat -n EFI "${i}"-part1
- mkdir -p "${MNT}"/boot/efis/"${i##*/}"-part1
- mount -t vfat -o iocharset=iso8859-1 "${i}"-part1 "${MNT}"/boot/efis/"${i##*/}"-part1
-done
-
-mkdir -p "${MNT}"/boot/efi
-mount -t vfat -o iocharset=iso8859-1 "$(echo "${DISK}" | sed "s|^ *||" | cut -f1 -d' '|| true)"-part1 "${MNT}"/boot/efi
-
-### -------------------------- Install Base -------------------------
-
-echo ""; echo "### Installing Base"
-# install packages with pacstrap
-pacstrap "${MNT}" \
- base \
- base-devel \
- dkms \
- efibootmgr \
- git \
- grub \
- intel-ucode \
- linux-firmware \
- linux-lts \
- linux-lts-headers \
- man-db \
- man-pages \
- vi
-
-# create fstab and remove all zroot entries
-echo ""; echo "### Creating fstab"
-genfstab -U -p "${MNT}" >> "${MNT}"/etc/fstab
-sed -i '/^# zroot/d' "${MNT}"/etc/fstab
-sed -i '/^zroot/d' "${MNT}"/etc/fstab
-sed -i '/^$/d' "${MNT}"/etc/fstab
-echo "" >> "${MNT}"/etc/fstab # one blank line at the end
-
-# copy over dns settings to the new system
-echo ""; echo "### Copying DNS Settings"
-cp -v /etc/resolv.conf "${MNT}"/etc
-
-# ----------------------------- Chroot ----------------------------
-# copy second part of this script to the new system
-
-echo ""; echo "### Copying script then chrooting"
-sed '1,/^#part2$/d' `basename $0` > "${MNT}"/root
-chroot "${MNT}" /usr/bin/env DISK="${DISK}" /root/stage2.sh
-
-# -------------------------- After Chroot -------------------------
-
-umount -Rl "${MNT}"
-zfs snapshot -r rpool@initial-installation
-zfs snapshot -r bpool@initial-installation
-
-zpool export -a
-
-echo ""; echo "### Done with Stage Two"
-
-#part2
-#!/usr/bin/env bash
-# install arch linux on zfs root, stage two
-# Craig Jennings <c@cjennings.net>
-
-printf '\033c'
-
-password="welcome" # root password; will force change after login
-hostname="velox"
-disk=/dev/nvme0n1
-
-yay_repo="https://aur.archlinux.org/yay.git"
-source_dir="/usr/src"
-logfile=/root/zfsarch_stage2.log
-
-cd # go home
-
-# --------------------- Add ArchZFS Repository --------------------
-
-pacman-key --init
-pacman-key --refresh-keys
-pacman-key --populate
-
-curl --fail-early --fail -L https://archzfs.com/archzfs.gpg \
-| pacman-key -a - --gpgdir /etc/pacman.d/gnupg
-
-pacman-key \
---lsign-key \
---gpgdir /etc/pacman.d/gnupg \
-DDF7DB817396A49B2A2723F7403BD972F75D9D76
-
-tee -a /etc/pacman.d/mirrorlist-archzfs <<- 'EOF'
-## See https://github.com/archzfs/archzfs/wiki
-## France
-#,Server = https://archzfs.com/$repo/$arch
-
-## Germany
-#,Server = https://mirror.sum7.eu/archlinux/archzfs/$repo/$arch
-#,Server = https://mirror.biocrafting.net/archlinux/archzfs/$repo/$arch
-
-## India
-#,Server = https://mirror.in.themindsmaze.com/archzfs/$repo/$arch
-
-## United States
-#,Server = https://zxcvfdsa.com/archzfs/$repo/$arch
-EOF
-
-tee -a /etc/pacman.conf <<- 'EOF'
-
-#[archzfs-testing]
-#Include = /etc/pacman.d/mirrorlist-archzfs
-
-#,[archzfs]
-#,Include = /etc/pacman.d/mirrorlist-archzfs
-EOF
-
-# this #, prefix is a workaround for ci/cd tests
-# remove them
-sed -i 's|#,||' /etc/pacman.d/mirrorlist-archzfs
-sed -i 's|#,||' /etc/pacman.conf
-sed -i 's|^#||' /etc/pacman.d/mirrorlist
-
-# ---------- Install Packages And Linux Compatible Kernel ---------
-pacman -Sy
-
-kernel_compatible_with_zfs="$(pacman -Si zfs-linux \
-| grep 'Depends On' \
-| sed "s|.*linux=||" \
-| awk '{ print $1 }')"
-pacman -U --noconfirm https://america.archive.pkgbuild.com/packages/l/linux/linux-"${kernel_compatible_with_zfs}"-x86_64.pkg.tar.zst
-
-pacman -S --noconfirm zfs-linux zfs-utils
-
-# ---------------------- Configure Mkinitcpio ---------------------
-
-sed -i 's|filesystems|zfs filesystems|' /etc/mkinitcpio.conf
-mkinitcpio -P
-
-# ------------------------- General Hostid ------------------------
-
-zgenhostid -f -o /etc/hostid
-
-# ---------------------- Apply Grub Workaround ----------------------
-# Note: This workaround needs to be applied for every GRUB update, as the update will overwrite the changes.
-
-echo 'export ZPOOL_VDEV_NAME_PATH=YES' >> /etc/profile.d/zpool_vdev_name_path.sh
-# shellcheck disable=SC1091
-. /etc/profile.d/zpool_vdev_name_path.sh
-
-# GRUB fails to detect rpool name, hard code as "rpool"
-sed -i "s|rpool=.*|rpool=rpool|" /etc/grub.d/10_linux
-
-# -------------------------- Install Grub -------------------------
-
-mkdir -p /boot/efi/archlinux/grub-bootdir/i386-pc/
-mkdir -p /boot/efi/archlinux/grub-bootdir/x86_64-efi/
-for i in ${DISK}; do
- grub-install --target=i386-pc --boot-directory \
- /boot/efi/archlinux/grub-bootdir/i386-pc/ "${i}"
-done
-grub-install --target x86_64-efi --boot-directory \
- /boot/efi/archlinux/grub-bootdir/x86_64-efi/ --efi-directory \
- /boot/efi --bootloader-id archlinux --removable
-if test -d /sys/firmware/efi/efivars/; then
- grub-install --target x86_64-efi --boot-directory \
- /boot/efi/archlinux/grub-bootdir/x86_64-efi/ --efi-directory \
- /boot/efi --bootloader-id archlinux
-fi
-
-# Import both bpool and rpool at boot:
-echo 'GRUB_CMDLINE_LINUX="zfs_import_dir=/dev/"' >> /etc/default/grub
-
-# Generate GRUB menu:
-mkdir -p /boot/grub
-grub-mkconfig -o /boot/grub/grub.cfg
-cp /boot/grub/grub.cfg \
- /boot/efi/archlinux/grub-bootdir/x86_64-efi/grub/grub.cfg
-cp /boot/grub/grub.cfg \
- /boot/efi/archlinux/grub-bootdir/i386-pc/grub/grub.cfg
-
-# For both legacy and EFI booting: mirror ESP content:
-espdir=$(mktemp -d)
-find /boot/efi/ -maxdepth 1 -mindepth 1 -type d -print0 \
-| xargs -t -0I '{}' cp -r '{}' "${espdir}"
-find "${espdir}" -maxdepth 1 -mindepth 1 -type d -print0 \
- | xargs -t -0I '{}' sh -vxc "find /boot/efis/ -maxdepth 1 -mindepth 1 -type d -print0 | xargs -t -0I '[]' cp -r '{}' '[]'"
-
-### ----------------------- Config Environment ---------------------
-
-# required software
-pacman -S --noconfirm sed networkmanager reflector
-systemctl enable NetworkManager
-systemctl enable reflector.timer
-
-# parallel downloads
-sed -i "s/^#ParallelDownloads = 5$/ParallelDownloads = 15/" /etc/pacman.conf
-
-# aur config
-sed -i '/^CFLAGS=/s/-march=x86-64 -mtune=generic/-march=native/' /etc/makepkg.conf
-sed -i 's/^#RUSTFLAGS="-C opt-level=2"/RUSTFLAGS="-C opt-level=2 -C target-cpu=native"/g' /etc/makepkg.conf
-sed -i 's/^#MAKEFLAGS="-j2"/MAKEFLAGS="-j$(nproc)"/g' /etc/makepkg.conf
-sed -i 's/^COMPRESSXZ=(xz -c -z -)/COMPRESSXZ=(xz -c -z --threads=0 -)/g' /etc/makepkg.conf
-sed -i 's/^COMPRESSZST=(zstd -c -z -q -)/COMPRESSZST=(zstd -c -z -q --threads=0 -)/g' /etc/makepkg.conf
-
-# set up local time
-sudo ln -sf /usr/share/zoneinfo/US/Central /etc/localtime
-hwclock --systohc
-
-# set up locale
-echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
-locale-gen
-echo "LANG=en_US.UTF-8" > /etc/locale.conf
-
-# set up hostname
-echo "$hostname" > /etc/hostname
-echo "127.0.0.1 localhost" >> /etc/hosts
-echo "::1 localhost" >> /etc/hosts
-echo "127.0.1.1 $hostname.localdomain $hostname" >> /etc/hosts
-
-# console settings
-echo "KEYMAP=us" > /etc/vconsole.conf
-
-# ------------------------ Enable AUR Helper ------------------------
-
-pacman -Syy
-pacman -S --needed --noconfirm base-devel git openssh wget
-build_dir="$source_dir/yay"
-mkdir -p "$build_dir"
-chown "$username:$username" -R "/home/$username"
-sudo -u "$username" git clone --depth 1 "$yay_repo" "$build_dir"
-cd "$build_dir" && sudo -u "$username" makepkg --noconfirm -si
-
-### ------------------------- Enable ZFS Services ----------------------
-# add kernel modules
-
-pacman -S --noconfirm zfs-dkms
-
-# enable zfs services
-systemctl enable zfs-import-cache
-systemctl enable zfs-import.target
-systemctl enable zfs-mount.service
-systemctl enable zfs-share
-systemctl enable zfs-zed
-systemctl enable zfs.target
-
-### ----------------------------- Wrap Up --------------------------
-
-# set root password; must change first login
-echo "root:$password" | chpasswd
-chage -d 0 root
-
-# --------------------------- Exit Chroot ---------------------------
-exit