TL;DR; Successfully install Ubuntu Mate 20.04 64 Bit on Raspberry Pi 4 (4GB) and boot over USB 3.0 SSD. Works fine. After I do sudo reboot -> ubuntu is broken and I enter initramfs shell, cannot exit since It happens before usb keyboard driver is loaded.
I'm trying to setup a Pi server using my Raspberry Pi 4 (4GB) running the 64 bit ARM version of Ubuntu Mate (20.04 LTS) and making it boot from a SSD disk over USB.
I followed the steps of this guide successfully (https://eugenegrechko.com/blog/USB-Boot-Ubuntu-Server-20.04-on-Raspberry-Pi-4)
Update EEPROM to support booting from USB
Download 64 bit version of ARM Ubuntu
Flash it to an SSD using Etcher Balena
Mount it on another Raspbian (32 bit) installation 4.1 ) Copy all .bat and .elf files from this Repo (https://github.com/raspberrypi/firmware/tree/master/boot) 4.2 ) Manually uncompress the Linux kernel because apparently Pi 4 doesn't support to boot from 64 Bit uncompressed Linux kernel. 4.3 Update config.txt in boot directory -- uncomment all pi entries 4.4 Add this to config.txt
kernel=vmlinux initramfs initrd.img followkernel
Plugin to Raspberry Pi 4 and turn on the Power.
Now I managed to get this to work successfully on two separate disks, proceed to setup my user accounts on Ubuntu and download a bunch of software like mysql etc. The issue happens when I think I need to restart the Pi. I do "sudo reboot" and then the screen is just attempting to load ubuntu for 3-5 minutes and afterwards I'm being sent to the initramfs shell.
In this shell my usb keyboard/mouse is unavailable so I cannot do anything. The first time this happened I thought my external disk broke and I ended up purchasing a new one. Now exactly the same thing happened.
- Is it possible for my Pi 4 to break a completely new disk within hours of usage somehow?
- Does anyone have any idea what I could've done wrong or why this happens after reboot?
- I don't think my Pi is broken because it can still boot into Raspbian (32bit) successfully from an USB flash drive (usb-stick).
Any help or advise would be highly appreciated. And also I'm a bit of a newb when It comes to these low-level Linux areas, filesystems, etc. so please be patient with me.