33 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
set -euo pipefail
 | 
						|
 | 
						|
if [[ $# -eq 0 ]]; then
 | 
						|
    read -rp "Root of or for device: " DEV_ROOT
 | 
						|
elif [[ $# -gt 0 ]]; then
 | 
						|
    while getopts "d:" opt; do
 | 
						|
        case ${opt} in
 | 
						|
            d) DEV_ROOT="${OPTARG}";;
 | 
						|
            *) echo "${opt} is an invalid option.";;
 | 
						|
        esac
 | 
						|
    done
 | 
						|
fi
 | 
						|
 | 
						|
if ! [ -f "${HOME}/Downloads/ventoy.tar.gz" ]; then
 | 
						|
    wget -O ventoy.tar.gz -P "${HOME}"/Downloads https://github.com/ventoy/Ventoy/releases/download/v1.0.99/ventoy-1.0.99-linux.tar.gz
 | 
						|
fi
 | 
						|
tar -xvf "${HOME}"/Downloads/ventoy.tar.gz -C "${HOME}"/Downloads/ventoy
 | 
						|
rm "${HOME}"/Downloads/ventoy.tar.gz
 | 
						|
mapfile -t DEV_SIZES < <(df -h "$DEV_ROOT" | awk '{print $2}')
 | 
						|
GB_DEV_SIZE="${DEV_SIZES[-1]%?}"
 | 
						|
MB_DEV_SIZE=$(( GB_DEV_SIZE * 1000 ))
 | 
						|
VENTOY_LOWER_BOUND=$(( MB_DEV_SIZE - 18034 ))
 | 
						|
"${HOME}"/Downloads/ventoy/Ventoy2Disk.sh -igsL Ventoy -r "$VENTOY_LOWER_BOUND" "$DEV_ROOT"
 | 
						|
mapfile -t PART_LIST < <(parted "$DEV_ROOT" 'unit s print' | awk '{print $3}')
 | 
						|
# parted "${DEV_ROOT}" mklabel gpt
 | 
						|
sudo parted "$DEV_ROOT" mkpart TREASURY ntfs "${PART_LIST[-1]}" 76%
 | 
						|
sudo parted "$DEV_ROOT" mkpart LAIR btrfs 76% 100%
 | 
						|
sudo mkfs.exfat -L treasure "${DEV_ROOT}"3
 | 
						|
sudo cryptsetup luksFormat "${DEV_ROOT}"4
 | 
						|
sudo cryptsetup open "${DEV_ROOT}"4 LAIR
 | 
						|
sudo mkfs.btrfs -d single -m DUP -L secrets /dev/mapper/LAIR
 | 
						|
sudo cryptsetup close LAIR |