- http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
- https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/aarch64/alpine-virt-3.13.5-aarch64.iso
- https://wiki.alpinelinux.org/wiki/Replacing_non-Alpine_Linux_with_Alpine_remotely
- https://wiki.archlinux.org/index.php/installation_guide#Configure_the_system
- https://archlinuxarm.org/platforms/armv8/generic
Requirement: Console access.
wget https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/aarch64/alpine-virt-3.13.5-aarch64.iso -qO- | dd bs=1M of=/dev/sda
sync && reboot --force
echo -e 'auto eth0\niface eth0 inet dhcp' | tee /etc/network/interfaces
ifup eth0
setup-sshd && mkdir ~/.ssh && vi ~/.ssh/authorized_keys
mkdir /media/setup && cp -a /media/sda/* /media/setup
mkdir /lib/setup && cp -a /.modloop/* /lib/setup
/etc/init.d/modloop stop
umount /dev/sda
mv /media/setup/* /media/sda/ && mv /lib/setup/* /.modloop/
setup-apkrepos
sed -i -e 's:^#\(.*v3.13/community\):\1:' /etc/apk/repositories
apk update && apk add dosfstools e2fsprogs libarchive-tools pacman arch-install-scripts
fdisk /dev/sda #(use gpt table, set esp partition 15 size 512M), set root partition 1 size remaining)
mkfs.ext4 /dev/sda1 && mount /dev/sda1 /mnt
mkfs.vfat /dev/sda15 && mkdir -p /mnt/boot && mount /dev/sda15 /mnt/boot
wget http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz -qO- | bsdtar -xpf - -C /mnt
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt/
pacman-key --init && pacman-key --populate archlinuxarm
pacman -Syu grub efibootmgr
grub-install --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
sed -i -e 's:^#\(PasswordAuthentication\)\s\+yes:\1 no:' /etc/ssh/sshd_config
su alarm -c 'mkdir -p ~/.ssh && vi ~/.ssh/authorized_keys'
At this point you should be able to issue 'reboot' and use ssh keyless login to remote into new alarm system.