echo -e "\n\nArch Linux ARM to SD Card" echo -e "For the Raspberry Pi 3, if you want to use the unofficial arm64 variant." echo -e "(Otherwise use the Raspberry Pi 2 version of this script!)\n\n"
if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" 1>&2 exit 1 fi
echo -e "\nAll drives on this computer:\n" ls -1 /dev/sd?
echo -e "\nLast messages in syslog:\n" dmesg | tail
echo -e "\n\nCurrent partitioning of $SDCARD:\n" parted $SDCARD print
echo -e "\n\nYou chose $SDCARD\nAre you sure to continue? Press Ctrl-C to abort!" read
cd /tmp
echo -e "\nDownloading the Arch Linux ARM root filesystem (if needed):\n" URL=https://mirrors.ustc.edu.cn/archlinuxarm/os/ArchLinuxARM-rpi-3-latest.tar.gz # Sometimes the download server is slow. In that case, try a different one instead: #URL=http://de7.mirror.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz FNAME=$(basename "$URL") FSIZE=$(curl --head --location --silent "$URL" --write-out '%{http_code} %{size_download} \n' | tac | grep -m1 Content-Length | cut -f 2 -d' ' | tr -d '\r') if [ -n "$FNAME" ] then CURSIZE=$(wc -c <"$FNAME") if [ $CURSIZE -ne $FSIZE ]; then rm "$FNAME" echo "Removing any downloaded and leftover Arch Linux ARM image" fi fi curl --location --remote-name --time-cond "$FNAME" "$URL" if [ $? -ne 0 ]; then echo "Could not download the image file, please check the mirror" exit 1 fi
echo -e "\nUnmounting partitions found on ${SDCARD}\n" for MOUNT in ${SDCARD}? do echo $MOUNT umount $MOUNT done
parted -s $SDCARD unit s print parted -s $SDCARD mktable msdos parted -s $SDCARD mkpart primary fat32 8192s 128MiB parted -s $SDCARD mkpart primary 128MiB 100% parted -s $SDCARD unit s print
echo -e "\nMoving boot files to the first partition\n" mv root/boot/* boot
echo -e "\nUnmounting the two partitions\n" umount boot root
rmdir boot root
echo "Insert the SD card into the Raspberry Pi , connect ethernet, and apply 5V power." echo "Use the serial console or SSH to the IP address given to the board by your router. The username/password combination is alarm/alarm. The default root password is 'root'."