-
-
Save pranaypratyush/dc31901d68352dbe82a1a23b17a8114a to your computer and use it in GitHub Desktop.
Replace Oracle Cloud Linux with Arch Linux ARM remotely
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
2. In Alpine w/ Console access: | |
# [Bring up networking] | |
vi /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 | |
# [Disk partitioning & mounting] | |
fdisk /dev/sda(use gpt table, set esp partition 15 size 512M), set root partition 1 size remaining) | |
mkfs.vfat /dev/sda15 | |
mkfs.ext4 /dev/sda1 | |
mount /dev/sda1 /mnt | |
mkdir -p /mnt/boot/efi | |
mount /dev/sda15 /mnt/boot/efi | |
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 grub efibootmgr | |
grub-install --efi-directory=/boot/efi --bootloader-id=GRUB | |
# [grub config] | |
grub-mkconfig -o /boot/grub/grub.cfg | |
# [workaround: grub of alarm doesn't detect linux] | |
echo "linux (hd0,gpt1)/boot/Image.gz root=/dev/sda1" >> /boot/grub/grub.cfg | |
echo "initrd (hd0,gpt1)/boot/initramfs-linux.img" >> /boot/grub/grub.cfg | |
echo boot >> /boot/grub/grub.cfg | |
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