From 28729936284b3c24a09f9f8eb5536b2f4cba2049 Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Wed, 12 Mar 2025 11:19:54 +0100 Subject: [PATCH] feat: add script to prepare ZFS datasets and create a ZFS pool --- prepare-zfs-datasets.sh | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 prepare-zfs-datasets.sh diff --git a/prepare-zfs-datasets.sh b/prepare-zfs-datasets.sh new file mode 100755 index 0000000..32333fe --- /dev/null +++ b/prepare-zfs-datasets.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +# Prompt user for device +echo "Enter the device to use for the ZFS pool (e.g., /dev/sdb):" +read device + +# Ask for confirmation, since this script will destroy all data on the device +echo "This script will destroy all data on $device. Are you sure you want to continue? (y/n)" +read confirm + +if [ "$confirm" != "y" ]; then + echo "Exiting..." + exit 1 +fi + +# Create ZFS pool +sudo zpool create -f datapool "$device" + +# Create datasets with mountpoint=legacy +datasets=( + isos + vms + ai + downloads + services + audiobooks + music + photos + movies + tv_shows + # old_backups +) + +for dataset in "${datasets[@]}"; do + sudo zfs create -o mountpoint=legacy datapool/"$dataset" +done + +df -h + +echo "" +echo "ZFS datasets created successfully." +echo "You can now run \`dotf update\` and it should start mounting the datasets." +echo ""