I have RockPro64 board and NVMe drive. This board doesn't support booting from NVMe so I need to have spearate boot partition. Here's my /etc/fstab file (on NVMe filesystem):
UUID=645f4a77-3e04-48da-ab41-0de8a81c1c13 /boot ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
UUID=c94a693a-74df-4e63-a466-2107a287f26a / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0
In my opinion, it shouldn't work because if /etc/fstab is on a different partition, how can it be mounted? But I heard that initramfs stored on /boot will contain drivers and information necessary to mount the root filesystem. Once the root filesystem is mounted, /etc on it is accessible and fstab is processed.
So here is my SD card (UUID=645f4a77-3e04-48da-ab41-0de8a81c1c13) content (this what was previously in the /boot directory):
armbianEnv.txt boot.bmp boot.scr dtb Image System.map-5.8.17-rockchip64 uInitrd-5.8.17-rockchip64
armbian_first_run.txt.template boot.cmd config-5.8.17-rockchip64 dtb-5.8.17-rockchip64 initrd.img-5.8.17-rockchip64 uInitrd vmlinuz-5.8.17-rockchip64
Here is my NVMe drive (UUID=c94a693a-74df-4e63-a466-2107a287f26a) content (this what was previously in / except /boot, in /boot /dev/mmcblk1p1 is mounted):
bin boot dev etc home lib media mnt opt proc root run sbin selinux srv sys tmp usr var
I was able to gather this information by booting from USB, then mounting /dev/nvm0n1 in /mnt and /dev/mmcblk1p1 in /mnt/boot, and finally running systemd-nspawn -b -D /mnt. USB is 4th in boot order (after SPI, eMMC and SD card) and when I plugged it into my board it booted successfully, so u-boot flashed to my SPI don't know that my SD card (that is before USB in boot order) contains bootable data. It was able to boot my system when this data was in /boot directory on this same card but can't do it now. Why?
Or maybe it's booting and I deduced it wrong...
EDIT:
It's booting but then freezes. Even fan isn't working.