pmaports/device/community/device-odroid-hc2/install-rootfs-hdd.sh
Dylan Van Assche c3b1eeda66
odroid-hc2: move to community (MR 2455)
This devices runs a close-to mainline kernel as linux-odroid-hc2.
I have 2 of these devices which power my selfhosted infrastructure
for some time now and they work really well! Running my selfhosted
infrastructure on Alpine stable releases would be great.
2021-09-10 19:32:45 -07:00

54 lines
1.4 KiB
Bash

#!/bin/sh
set -e
MOUNT_POINT=/mnt/hdd
MMC_ROOT_PARTITION=/dev/mmcblk0p2
echo "### Move rootfs to external HDD ###"
echo "This script requires root permissions!"
echo "This action is inreversible without reflashing your device!"
echo "Are you sure you want to continue? [y/N]"
read -n 1 ANSWER
echo ""
if [ "$ANSWER" != "y" ]; then
echo "Operation aborted"
exit 1
fi
echo "Which partition should be used as rootfs?:"
read HDD_ROOT_PARTITION
echo ""
echo "### Copying rootfs to partition $HDD_ROOT_PARTITION ###"
# Mount partition
echo "Trying to unmount $HDD_ROOT_PARTITION"
umount $HDD_ROOT_PARTITION || true # may fail
echo "Mounting $HDD_ROOT_PARTITION at $MOUNT_POINT"
mkdir -p $MOUNT_POINT
mount $HDD_ROOT_PARTITION $MOUNT_POINT
# Copy rootfs
echo "Copying rootfs... This can take a while."
rsync \
-aAXx \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
/ \
$MOUNT_POINT
# Verify all files are copied
rsync \
-aAXx \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
/ \
$MOUNT_POINT
sync
echo "Rootfs successfully copied!"
# pmOS initfs looks for rootfs by label, rename partitions
echo "Renaming partitions"
e2label $MMC_ROOT_PARTITION pmOS_root_old
e2label $HDD_ROOT_PARTITION pmOS_root
echo "Rootfs moved to external HDD, you must reboot NOW!"