dotfiles/prepare-zfs-datasets.sh
Menno van Leeuwen 249d692d4e
Some checks failed
Nix Format Check / check-format (push) Failing after 37s
feat: add device listing to prepare ZFS datasets script
2025-03-12 11:26:04 +01:00

49 lines
967 B
Bash
Executable File

#!/usr/bin/env bash
# Print available devices excluding loop devices
echo "Available devices:"
lsblk -d -o NAME,SIZE,TYPE | grep disk
echo ""
# 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 ""