pmaports/device/testing/device-odroid-hc2/install-rootfs-hdd.sh
Dylan Van Assche ab32a3642c
device-odroid-hc2: move to testing (MR 4239)
ODROID HC2 boards are out-of-use by the maintainer.
Move to testing and remove maintainer.

[ci:skip-build] already built successfully in CI
[ci:skip-vercheck]
2023-07-17 11:35:31 -07:00

54 lines
1.3 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 old_rootfs
e2label $HDD_ROOT_PARTITION pmOS_root
echo "Rootfs moved to external HDD, you must reboot NOW!"