mirror of
https://github.com/raspiblitz/raspiblitz.git
synced 2025-09-20 13:02:21 +02:00
add scenario
This commit is contained in:
@@ -3,8 +3,11 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|||||||
>&2 echo "# managing the data drive(s) with new bootable setups for RaspberryPi, VMs and Laptops"
|
>&2 echo "# managing the data drive(s) with new bootable setups for RaspberryPi, VMs and Laptops"
|
||||||
>&2 echo "# blitz.data.sh status [-inspect] # auto detect the old/best drives to use for storage, system and data"
|
>&2 echo "# blitz.data.sh status [-inspect] # auto detect the old/best drives to use for storage, system and data"
|
||||||
>&2 echo "# blitz.data.sh setup STOARGE [device] combinedData=[0|1] bootFromStorage=[0|1]"
|
>&2 echo "# blitz.data.sh setup STOARGE [device] combinedData=[0|1] bootFromStorage=[0|1]"
|
||||||
>&2 echo "# blitz.data.sh setup SINGLE-DATA"
|
>&2 echo "# blitz.data.sh setup SEPERATE-DATA [device]"
|
||||||
>&2 echo "# blitz.data.sh setup SINGLE-SYSTEM"
|
>&2 echo "# blitz.data.sh setup SEPERATE-SYSTEM [device]"
|
||||||
|
>&2 echo "# blitz.data.sh recover STOARGE [device] combinedData=[0|1] bootFromStorage=[0|1]"
|
||||||
|
>&2 echo "# blitz.data.sh recover SEPERATE-DATA [device]"
|
||||||
|
>&2 echo "# blitz.data.sh recover SEPERATE-SYSTEM [device]"
|
||||||
>&2 echo "# blitz.data.sh migration [umbrel|citadel|mynode] [partition] [-test] # will migrate partition to raspiblitz"
|
>&2 echo "# blitz.data.sh migration [umbrel|citadel|mynode] [partition] [-test] # will migrate partition to raspiblitz"
|
||||||
>&2 echo "# blitz.data.sh uasp-fix [-info] # deactivates UASP for non supported USB HDD Adapters"
|
>&2 echo "# blitz.data.sh uasp-fix [-info] # deactivates UASP for non supported USB HDD Adapters"
|
||||||
echo "error='missing parameters'"
|
echo "error='missing parameters'"
|
||||||
@@ -54,15 +57,13 @@ if [ "$1" = "status" ]; then
|
|||||||
userWantsInspect=1
|
userWantsInspect=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# scenario could be: unknown, migration, recover, setup, ready
|
|
||||||
scenario="unknown"
|
|
||||||
storageBlockchainGB=0
|
|
||||||
dataInspectDone=0
|
|
||||||
|
|
||||||
# initial values for drives & state to determine
|
# initial values for drives & state to determine
|
||||||
storageDevice=""
|
storageDevice=""
|
||||||
systemDevice=""
|
systemDevice=""
|
||||||
dataDevice=""
|
dataDevice=""
|
||||||
|
storageBlockchainGB=0
|
||||||
|
dataInspectDone=0
|
||||||
|
dataBlitzConfigExists=0
|
||||||
|
|
||||||
# get a list of all existing ext4 partitions of connected storage drives
|
# get a list of all existing ext4 partitions of connected storage drives
|
||||||
ext4Partitions=$(lsblk -no NAME,SIZE,FSTYPE | sed 's/[└├]─//g' | grep -E "^(sd|nvme)" | grep "ext4" | \
|
ext4Partitions=$(lsblk -no NAME,SIZE,FSTYPE | sed 's/[└├]─//g' | grep -E "^(sd|nvme)" | grep "ext4" | \
|
||||||
@@ -216,6 +217,7 @@ if [ "$1" = "status" ]; then
|
|||||||
cp -a ${mountPath}/raspiblitz.conf /var/cache/raspiblitz/hdd-inspect/raspiblitz.conf 2>/dev/null
|
cp -a ${mountPath}/raspiblitz.conf /var/cache/raspiblitz/hdd-inspect/raspiblitz.conf 2>/dev/null
|
||||||
cp -a ${mountPath}/app-data/raspiblitz.conf /var/cache/raspiblitz/hdd-inspect/raspiblitz.conf 2>/dev/null
|
cp -a ${mountPath}/app-data/raspiblitz.conf /var/cache/raspiblitz/hdd-inspect/raspiblitz.conf 2>/dev/null
|
||||||
if [ -f "/var/cache/raspiblitz/hdd-inspect/raspiblitz.conf" ]; then
|
if [ -f "/var/cache/raspiblitz/hdd-inspect/raspiblitz.conf" ]; then
|
||||||
|
dataBlitzConfigExists=1
|
||||||
echo "# * raspiblitz.conf copied to RAMDISK"
|
echo "# * raspiblitz.conf copied to RAMDISK"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -320,7 +322,45 @@ if [ "$1" = "status" ]; then
|
|||||||
remainingDevices=$(echo "${listOfDevices}" | wc -l)
|
remainingDevices=$(echo "${listOfDevices}" | wc -l)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Define Scenario
|
||||||
|
scenario="unknown"
|
||||||
|
|
||||||
|
# migration: detected data from another node implementation
|
||||||
|
if [ ${#storageMigration} -gt 0 ]; then
|
||||||
|
scenario="migration"
|
||||||
|
|
||||||
|
# nodata: no drives >64GB connected
|
||||||
|
elif [ ${#storageMountedPath} -eq 0 ] && [ ${#dataMountedPath} -eq 0 ] && [ ${#systemMountedPath} -eq 0 ]; then
|
||||||
|
scenario="nodata"
|
||||||
|
|
||||||
|
# ready: Proxmox VM with all seperated drives mounted
|
||||||
|
elif [ ${#storageMountedPath} -gt 0 ] && [ ${#dataMountedPath} -gt 0 ] && [ ${#systemMountedPath} -gt 0 ]; then
|
||||||
|
scenario="ready"
|
||||||
|
|
||||||
|
# ready: RaspberryPi+BootNVMe, Laptop or VM with patched thru USB drive
|
||||||
|
elif [ ${#storageMountedPath} -gt 0 ] && [ ${combinedDataStorage} -eq 1 ] && [ ${#systemMountedPath} -gt 0 ]; then
|
||||||
|
scenario="ready"
|
||||||
|
|
||||||
|
# ready: Old RaspberryPi
|
||||||
|
elif [ ${#storageMountedPath} -gt 0 ] && [ ${combinedDataStorage} -eq 1 ] && [ ${bootFromSD} -eq 1 ]; then
|
||||||
|
scenario="ready"
|
||||||
|
|
||||||
|
# recover: drives there but unmounted & blitz config exists (check raspiblitz.conf with -inspect if its update)
|
||||||
|
elif [ ${#storageDevice} -gt 0 ] && [ ${#storageMountedPath} -eq 0 ] && [ ${dataBlitzConfigExists} -eq 1 ]; then
|
||||||
|
scenario="recover"
|
||||||
|
|
||||||
|
# setup: drives there but unmounted & no blitz config exists
|
||||||
|
elif [ ${#storageDevice} -gt 0 ] && [ ${#storageMountedPath} -eq 0 ] && [ ${dataBlitzConfigExists} -eq 0 ]; then
|
||||||
|
scenario="setup"
|
||||||
|
|
||||||
|
# UNKNOWN SCENARIO
|
||||||
|
else
|
||||||
|
scenario="unknown"
|
||||||
|
fi
|
||||||
|
|
||||||
# output the result
|
# output the result
|
||||||
|
echo "scenario='${scenario}'"
|
||||||
echo "storageDevice='${storageDevice}'"
|
echo "storageDevice='${storageDevice}'"
|
||||||
echo "storageSizeGB='${storageSizeGB}'"
|
echo "storageSizeGB='${storageSizeGB}'"
|
||||||
echo "storagePartition='${storagePartition}'"
|
echo "storagePartition='${storagePartition}'"
|
||||||
@@ -330,11 +370,13 @@ if [ "$1" = "status" ]; then
|
|||||||
echo "systemDevice='${systemDevice}'"
|
echo "systemDevice='${systemDevice}'"
|
||||||
echo "systemSizeGB='${systemSizeGB}'"
|
echo "systemSizeGB='${systemSizeGB}'"
|
||||||
echo "systemPartition='${systemPartition}'"
|
echo "systemPartition='${systemPartition}'"
|
||||||
|
echo "systemMountedPath='${systemMountedPath}'"
|
||||||
echo "dataDevice='${dataDevice}'"
|
echo "dataDevice='${dataDevice}'"
|
||||||
echo "dataSizeGB='${dataSizeGB}'"
|
echo "dataSizeGB='${dataSizeGB}'"
|
||||||
echo "dataPartition='${dataPartition}'"
|
echo "dataPartition='${dataPartition}'"
|
||||||
echo "dataMountedPath='${dataMountedPath}'"
|
echo "dataMountedPath='${dataMountedPath}'"
|
||||||
echo "dataInspectDone='${dataInspectDone}'"
|
echo "dataInspectDone='${dataInspectDone}'"
|
||||||
|
echo "dataBlitzConfigExists='${dataBlitzConfigExists}'"
|
||||||
echo "combinedDataStorage='${combinedDataStorage}'"
|
echo "combinedDataStorage='${combinedDataStorage}'"
|
||||||
echo "bootFromStorage='${bootFromStorage}'"
|
echo "bootFromStorage='${bootFromStorage}'"
|
||||||
echo "bootFromSD='${bootFromSD}'"
|
echo "bootFromSD='${bootFromSD}'"
|
||||||
@@ -343,6 +385,34 @@ if [ "$1" = "status" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# SETUP
|
||||||
|
# format, partition and setup drives
|
||||||
|
###################
|
||||||
|
|
||||||
|
if [ "$1" = "setup" ]; then
|
||||||
|
echo "# blitz.data.sh setup"
|
||||||
|
|
||||||
|
# replace format, fstab & link (maybe there is some same linking as in recover)
|
||||||
|
|
||||||
|
echo "error='TODO'"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
###################
|
||||||
|
# RECOVER
|
||||||
|
# re-integrate drives into the system
|
||||||
|
###################
|
||||||
|
|
||||||
|
if [ "$1" = "recover" ]; then
|
||||||
|
echo "# blitz.data.sh recover"
|
||||||
|
|
||||||
|
# replace fstab & link (maybe there is some same linking as in setup)
|
||||||
|
|
||||||
|
echo "error='TODO'"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# MIGRATION
|
# MIGRATION
|
||||||
###################
|
###################
|
||||||
|
Reference in New Issue
Block a user