Files
bitcoin-tutorials/zfs/create-ext4-raspiblitz-disk.md
2023-07-31 21:51:28 +02:00

77 lines
3.3 KiB
Markdown

parted -s /dev/${hdd} mkpart primary ext4 1024KiB 100%
mkfs.ext4 -F -L BLOCKCHAIN /dev/${hdd}
tune2fs -c 1 /dev/${hdd}
hddDataPartitionExt4=$hdd
# loop until the uuids are available
uuid1=""
loopcount=0
while [ ${#uuid1} -eq 0 ]
do
echo "# waiting until uuid gets available"
sleep 2
sync
uuid1=$(lsblk -o NAME,UUID | grep "${hddDataPartitionExt4}" | awk '$1=$1' | cut -d " " -f 2 | grep "-")
loopcount=$(($loopcount +1))
if [ ${loopcount} -gt 10 ]; then
echo "error='no uuid'"
exit 1
fi
done
echo "# mount /mnt/hdd"
mkdir -p /mnt/hdd 1>/dev/null
updated=$(cat /etc/fstab | grep -c "/mnt/hdd")
if [ $updated -eq 0 ]; then
echo "# updating /etc/fstab"
sed "/raspiblitz/ i UUID=${uuid1} /mnt/hdd ext4 noexec,defaults 0 2" -i /etc/fstab 1>/dev/null
fi
sync
mount -a 1>/dev/null
# make sure common base directory exits
mkdir -p /mnt/hdd/lnd
mkdir -p /mnt/hdd/app-data
>&2 echo "# Creating EXT4 setup links"
>&2 echo "# opening blockchain into /mnt/hdd"
mkdir -p /mnt/hdd/bitcoin
>&2 echo "# linking blockchain for user bitcoin"
rm /home/bitcoin/.bitcoin 2>/dev/null
ln -s /mnt/hdd/bitcoin /home/bitcoin/.bitcoin
>&2 echo "# linking lnd for user bitcoin"
rm /home/bitcoin/.lnd 2>/dev/null
ln -s /mnt/hdd/lnd /home/bitcoin/.lnd
>&2 echo "# creating default storage & temp folders"
mkdir -p /mnt/hdd/app-storage
mkdir -p /mnt/hdd/temp
# fix ownership of linked files
chown -R bitcoin:bitcoin /mnt/hdd/bitcoin
chown -R bitcoin:bitcoin /mnt/hdd/lnd
chown -R bitcoin:bitcoin /home/bitcoin/.lnd
chown -R bitcoin:bitcoin /home/bitcoin/.bitcoin
chown bitcoin:bitcoin /mnt/hdd/app-storage
chown bitcoin:bitcoin /mnt/hdd/app-data
chown -R bitcoin:bitcoin /mnt/hdd/temp 2>/dev/null
chmod -R 777 /mnt/temp 2>/dev/null
chmod -R 777 /mnt/hdd/temp 2>/dev/null
# write info files about what directories are for
echo "The /mnt/hdd/temp directory is for short time data and will get cleaned up on very start. Dont work with data here thats bigger then 25GB - because on BTRFS hdd layout this is a own partition with limited space. Also on BTRFS hdd layout the temp partition is an FAT format - so it can be easily mounted on Windows and OSx laptops by just connecting it to such laptops. Use this for easy export data. To import data make sure to work with the data before bootstrap is deleting the directory on startup." > ./README.txt
mv ./README.txt /mnt/hdd/temp/README.txt 2>/dev/null
echo "The /mnt/hdd/app-data directory should be used by additional/optional apps and services installed to the RaspiBlitz for their data that should survive an import/export/backup. Data that can be reproduced (indexes, etc.) should be stored in app-storage." > ./README.txt
mv ./README.txt /mnt/hdd/app-data/README.txt 2>/dev/null
echo "The /mnt/hdd/app-storage directory should be used by additional/optional apps and services installed to the RaspiBlitz for their non-critical and reproducible data (indexes, public blockchain, etc.) that does not need to survive an an import/export/backup. Data is critical should be in app-data." > ./README.txt
mv ./README.txt /mnt/hdd/app-storage/README.txt 2>/dev/null
>&2 echo "# OK - all symbolic links are built"