Jump to content

How to boot from SD card but leave rest of the system on NVMe drive?


Recommended Posts

Posted

Hi,

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.

Board: Not on the list
Posted

Ok. I solved the problem. I had to modify u-boot configuration file /boot/armbianEnv.txt. If you are using grub you probably need to modify /boot/grub/grub.cfg.

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines