I was able to install 64-bit archlinux on a Raspberry Pi 4 after seeing @VinnieThePooh's answer which contained a link to root filesystems which I then could burn into the SD Card and boot.
Here are the exact steps I took:
1. Insert your SD Card and run blkid
to see connected device names:
sudo blkid
For me the device name was /dev/sda
but it might be different for you.
2. Run fdisk
to wipe the SD card and set the boot and rootfs partitions:
fdisk /dev/sdX # make sure to change it (X) to your device
At the fdisk
prompt, delete old partitions and create a new one:
- Type o. This will clear out any partitions on the drive.
- Type p to list partitions. There should be no partitions left.
- Type n, then p for primary, 1 for the first partition on the drive, press ENTER to accept the default first sector, then type +100M for the last sector.
- Type t, then c to set the first partition to type W95 FAT32 (LBA).
- Type n, then p for primary, 2 for the second partition on the drive, and then press ENTER and then ENTER again to accept the default first and last sector.
Write the partition table and exit by typing w.
3. Format the paritions and copy the files into the mount points. Update /dev/sdXn
to your device name.
mkfs.vfat /dev/sdX1
mkdir -p /mnt/boot
mount /dev/sdX1 /mnt/boot
mkfs.ext4 /dev/sdX2
mkdir -p /mnt/root
mount /dev/sdX2 /mnt/root
wget https://olegtown.pw/Public/ArchLinuxArm/RPi4/rootfs/ArchLinuxARM-rpi-4-aarch64-2020-05-06.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-4-aarch64-2020-05-06.tar.gz -C /mnt/root
sync
mv /mnt/root/boot/* /mnt/boot
umount /mnt/boot
umount /mnt/root
4. Insert SD card into RPi4 and boot. You'll have a vanilla Arch linux 64-bit (ARMv8) installation.
[root@archlinux ~]# uname -a
Linux archlinux 5.4.38-1-ARCH #1 SMP PREEMPT Wed May 6 11:05:57 MDT 2020 aarch64 GNU/Linux
Make sure to use archlinuxarm mirrors in /etc/pacman.d/mirrorlist
Server = http://mirror.archlinuxarm.org/$arch/$repo
Server = http://au.mirror.archlinuxarm.org/$arch/$repo
Server = http://dk.mirror.archlinuxarm.org/$arch/$repo
Server = http://de3.mirror.archlinuxarm.org/$arch/$repo
Server = http://de.mirror.archlinuxarm.org/$arch/$repo
Server = http://de4.mirror.archlinuxarm.org/$arch/$repo
Server = http://eu.mirror.archlinuxarm.org/$arch/$repo
Server = http://de5.mirror.archlinuxarm.org/$arch/$repo
Server = http://gr.mirror.archlinuxarm.org/$arch/$repo
Server = http://hu.mirror.archlinuxarm.org/$arch/$repo
Server = http://pt.mirror.archlinuxarm.org/$arch/$repo
Server = http://sg.mirror.archlinuxarm.org/$arch/$repo
Server = http://tw.mirror.archlinuxarm.org/$arch/$repo
Server = http://ca.us.mirror.archlinuxarm.org/$arch/$repo
Server = http://fl.us.mirror.archlinuxarm.org/$arch/$repo
Server = http://nj.us.mirror.archlinuxarm.org/$arch/$repo
Server = http://vn.mirror.archlinuxarm.org/$arch/$repo
Then refresh mirror list
pacman -Syyu