2

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)

Basically.

  1. Update EEPROM to support booting from USB

  2. Download 64 bit version of ARM Ubuntu

  3. Flash it to an SSD using Etcher Balena

  4. 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

  5. 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.

Questions/Thoughts

  • 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.

Regards, Ts

2
  • My advice would be to not use an initramfs; the stock Pi kernel used by Raspbian/RpiOS does not. The major purpose of an initramfs is to allow a pre-compiled kernel to run on a wide variety of hardware; some drivers may be mutually exclusive, and to build all of them in would mean a ridiculously bloated kernel. But the Pi is not a wide variety of hardware. – goldilocks Sep 21 '20 at 17:42
  • Hi goldilocks, thanks for your feedback. I don't have any experience on this low-level Linux stuff. I followed the guide here (eugenegrechko.com/blog/…). How can I get rid of inirtramfs? – Thomas S Sep 23 '20 at 6:54
0

I experienced a lot of problems starting Ubuntu from SSD. My solution is editing cmdline.txt after using the imager. The SSD is then FAT formatted so that file can be easy edited.

Adding usb-storage.quirks=<idVendor>:<idProduct>:u(space) at the beginning of that file solved all my problems.

Not all SSD's are recognised. You can find those numbers if you have an installed version of Raspbian OS.

sudo dmesg -C

connect the SSD

dmesg | grep 'USB-storage'

and in there you find idVendor or vid and idProduct or pid.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.