Some checks failed
Nix Format Check / check-format (push) Failing after 37s
61 lines
1.2 KiB
Bash
Executable File
61 lines
1.2 KiB
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
|
|
|
|
# Confirm the device is not in use
|
|
if mount | grep "$device"; then
|
|
echo "Error: $device is already mounted. Exiting..."
|
|
exit 1
|
|
fi
|
|
|
|
# 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"
|
|
|
|
# Check if this went well
|
|
if [ $? -ne 0 ]; then
|
|
echo "Error creating ZFS pool. Exiting..."
|
|
exit 1
|
|
fi
|
|
|
|
# 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
|
|
|
|
zfs list
|
|
|
|
echo ""
|
|
echo "ZFS datasets created successfully."
|
|
echo "You can now run \`dotf update\` and it should start mounting the datasets."
|
|
echo ""
|