Skip to content

Instantly share code, notes, and snippets.

@pog5
Created December 6, 2022 19:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pog5/acbbafd6587e771bc5c23f795ce7019e to your computer and use it in GitHub Desktop.
Save pog5/acbbafd6587e771bc5c23f795ce7019e to your computer and use it in GitHub Desktop.
Replace Oracle Cloud Linux with Arch Linux ARM remotely

Refs:

  1. http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
  2. https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/aarch64/alpine-virt-3.13.5-aarch64.iso
  3. https://wiki.alpinelinux.org/wiki/Replacing_non-Alpine_Linux_with_Alpine_remotely
  4. https://wiki.archlinux.org/index.php/installation_guide#Configure_the_system
  5. https://archlinuxarm.org/platforms/armv8/generic

Requirement: Console access.

  1. In Oracle Linux 8.0
cd /tmp
wget https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/aarch64/alpine-virt-3.13.5-aarch64.iso
dd if=alpine-virt-3.13.5-aarch64.iso of=/dev/sda; sync
reboot
  1. In Alpine w/ Console access:

[Bring up networking]

In /etc/network/interfaces, add:

auto eth0
iface eth0 inet dhcp
ifup eth0

[Per Ref #3]

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 apk and bring in pacman]

setup-apkrepos
vi /etc/apk/repositories, enable community
apk update
apk add dosfstools e2fsprogs libarchive-tools pacman arch-install-scripts btrfs-progs
modprobe btrfs

[Disk partitioning & mounting]

fdisk /dev/sda

Press "g", then "n", partition 15, size +512M.

Press "t", then "1".

Press "n", partition 1.

(use gpt table, set esp partition 15 size 512M), set root partition 1 size remaining)

mkfs.vfat /dev/sda15
mkfs.btrfs -L Kokoro /dev/sda1
mount /dev/sda1 /mnt
mkdir -p /mnt/boot
mount /dev/sda15 /mnt/boot
cd /mnt
wget http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
bsdtar -xpf /mnt/ArchLinuxARM-aarch64-latest.tar.gz -C /mnt
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt/
pacman-key --init
pacman-key --populate archlinuxarm

[EFI boot]

pacman -Syu efibootmgr
bootctl install

[systemd-boot config]

In /boot/loader/entries/arch.conf, add:

title   Arch Linux
linux   /Image
initrd  /initramfs-linux.img
options root="PARTUUID=arch_os" rw

vi /etc/ssh/sshd_config and update to "PasswordAuthentication no" change to user 'alarm', create ~/.ssh and ~/.ssh/authorized_keys

At this point you should be able to issue 'reboot' and use ssh keyless login to remote into new alarm system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment