How to recover LinuxBoot entries after installing on NVMe?

I nuked the GPT headers (or whatever it had in those offsets) on the NVMe that shipped with Pioneer V1.3. Pretty much no documentation (at least today) on how to quickly install an OS into NVMe. I downloaded Fedora 38 image, cooked that into microSD card. The serial console is basically not documented and silk screen isn’t perfectly aligned with the pins. Managed to connected to the boards serial console (prints everything from ZSBL all the way to Linux). I used the script to “move to NVMe”. Once it synced everything back to NVMe I synced everything (a few times) and powered down. Removed microSD card and booted back again. It seems that LinuxBoot itself finds the NVMe, but there are no entries (there were 3 to begin with). This NVMe install method does not setup LinuxBoot entries, and I can no longer boot from NVMe. I can still boot from microSD card. Could you just provide NVMe RAW image? It’s way faster than writing/reading microSD cards.

Maybe you can add similar to this to get it to boot (?):

## /boot/extlinux/extlinux.conf
menu
title milkV boot menu
prompt 0
timeout 1
default f38MVP

label f38MVP
	menu label Fedora 38 Sophgo Milk-V pioneer
	linux /vmlinuz-6.1.31
	initrd /initramfs-6.1.31.img
	fdt  /dtb/sophgo/mango-milkv-pioneer.dtb
	append  console=ttyS0,115200 root=/dev/nvme0n1p3 rootfstype=ext4  rootwait rw earlycon selinux=0 LANG=en_US.UTF-8

I decided to give another try flashing the provided disk image directly to NVMe instead of microSD card. Good news is that LinuxBoot menu shows all the original boot entries. The problem is that default one (01, which is MilkV Prioneer) doesn’t boot it seems. It gets to the point where bootconsole (uart0) get disabled and nothing after that. The LEDs on the board tells nothing. I would love to have the original factory image.

Does anyone know how to modify any of the boot files on the onboard SPI flash?

I think these are the Fedora 38 factory images (?):

The second one is more recent. I haven’t run these, I just have seen them linked.

I only bought the board and not the full system with the preloaded NVMe so I’m not sure how that was originally configured but I can confirm that imaging my own NVMe from the (latest) fedora image results in a system that boots without needing the SD card.

In fact it seems better to just do it that way than trying to use the “move to NVMe” script (which is seemingly not present on the latest fedora image anyway).

The exact steps I followed:

  1. Download and burn the latest image to SD
  2. Boot SD into fedora
  3. Partition remaining SD space
  4. Download latest image to new empty partition
  5. Use the fedora Disks app to “restore image” using the latest fedora image and selecting NVMe as target
  6. Reboot

It should just boot from NVMe then but there are no entries listed by default. Though it should be possible to configure those as needed.