From e2be242e984c6acbdd28f5b1320e0bb8221449a6 Mon Sep 17 00:00:00 2001 From: Alex Tavarez Date: Sun, 7 Sep 2025 10:00:55 -0400 Subject: [PATCH] Created script for adding a pool and appropriate datasets for a ZFS-formatted storage device or volume --- zfs-format-media-drive.sh | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 zfs-format-media-drive.sh diff --git a/zfs-format-media-drive.sh b/zfs-format-media-drive.sh new file mode 100644 index 0000000..9e058fe --- /dev/null +++ b/zfs-format-media-drive.sh @@ -0,0 +1,52 @@ +#!/bin/bash +set -euo pipefail + +# @TODO: Implement more soft-coding and interactivity to this script + +sudo zpool create \ + -o ashift=12 \ + -o autotrim=on \ + -o compatibility=openzfs-2.1-linux \ + -O encryption=on \ + -O keylocation=file:///etc/zfs/keys/zroot.key \ + -O keyformat=passphrase \ + -O acltype=posixacl \ + -O xattr=sa \ + -O dnodesize=auto \ + -O compression=zstd-3 \ + -O normalization=formD \ + -O relatime=on \ + -O canmount=off \ + -O mountpoint=none \ + "$2" \ + /dev/disk/by-id/"${1}"-part1 + +DATASET=("${HOME}/Documents/.calibre" "${2}/LITERATURE") +mkdir -p "${DATASET[0]}" +sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}" + +DATASET=("${HOME}/Videos" "${2}/FILM") +mkdir -p "${DATASET[0]}" +sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}" + +DATASET=("${HOME}/.var/app/com.valvesoftware.Steam" "${2}/STEAMGAMES") +mkdir -p "${DATASET[0]}" +sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}" + +DATASET=("${HOME}/.var/app/org.libretro.RetroArch" "${2}/RARCHGAMES") +mkdir -p "${DATASET[0]}" +sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}" + +DATASET=("${HOME}/Games" "${2}/GAMES") +mkdir -p "${DATASET[0]}" +sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}" +ln -s "${HOME}/.var/app/com.valvesoftware.Steam" "${DATASET[0]}/Steam" +ln -s "${HOME}/.var/app/org.libretro.RetroArch" "${DATASET[0]}/libRetro" + +DATASET=("${HOME}/.var/app/org.libretro.RetroArch" "${2}/RARCHGAMES") +mkdir -p "${DATASET[0]}" +sudo zfs create -o mountpoint="${DATASET[0]}" "${DATASET[1]}" + +DATASET=("${HOME}/.XXX" "${2}/XXX") +mkdir -p "${DATASET[0]}" +sudo zfs create -o keylocation=prompt -o keyformat=passphrase -o mountpoint="${DATASET[0]}" "${DATASET[1]}" \ No newline at end of file