Hello,
For years, since FreeBSD 10.x, I have been booting my router with a custom built nanobsd image, from a USB Flash drive.
It has worked fine with a motherboard having an Intel Atom N270 CPU, then until now, with another motherboard having an Intel Atom N2800 CPU.
My nanobsd image is based on FreeBSD 13.2.
Now, I'd like to upgrade my router to a Topton router from Aliexpress. It has an Intel Celeron N5105 CPU. (well, the CPU of this 3 motherboards isn't relevant, it's just to show the approximate generations).
Unfortunately, this new router doesn't boot the nanobsd image: I can see it detects the flash drive in the BIOS, but it doesn't try to boot from it. It doesn't even show it in the "boot selection" popup that I get when pressing F11 during the start.
I tried different flash drives and the USB 2.0 and 3.0 ports of the router: still no luck.
I also tried others images: "debian-live-11.6.0-amd64-xfce.iso" and "pfSense-CE-memstick-2.6.0-RELEASE-amd64.img": they works fine! So the problem isn't hardware related.
I guess it's a problem with the partitions of my nanobsd image, but I'm not sure what to change and how.
My NanoBSD image (doesn't boot):
The Debian Live image (boots OK):
The pfSense installer (boots OK):
So, it looks like the "efi" partition is missing on my nanobsd image.
I tried to add "NANO_LAYOUT=std-uefi-bios" to my config file, because I found about it in this file: https://github.com/freebsd/freebsd-src/blob/main/tools/tools/nanobsd/embedded/common#L293 but no luck: the new image has the same partition layout.
Do you think the problem comes from this missing partition?
And how can I rebuild the image to include this "efi" partition?
Thanks in advance.
For years, since FreeBSD 10.x, I have been booting my router with a custom built nanobsd image, from a USB Flash drive.
It has worked fine with a motherboard having an Intel Atom N270 CPU, then until now, with another motherboard having an Intel Atom N2800 CPU.
My nanobsd image is based on FreeBSD 13.2.
Now, I'd like to upgrade my router to a Topton router from Aliexpress. It has an Intel Celeron N5105 CPU. (well, the CPU of this 3 motherboards isn't relevant, it's just to show the approximate generations).
Unfortunately, this new router doesn't boot the nanobsd image: I can see it detects the flash drive in the BIOS, but it doesn't try to boot from it. It doesn't even show it in the "boot selection" popup that I get when pressing F11 during the start.
I tried different flash drives and the USB 2.0 and 3.0 ports of the router: still no luck.
I also tried others images: "debian-live-11.6.0-amd64-xfce.iso" and "pfSense-CE-memstick-2.6.0-RELEASE-amd64.img": they works fine! So the problem isn't hardware related.
I guess it's a problem with the partitions of my nanobsd image, but I'm not sure what to change and how.
My NanoBSD image (doesn't boot):
# gpart show da0
=> 63 60437429 da0 MBR (29G)
63 3998673 1 freebsd [active] (1.9G)
3998736 3024 3 freebsd (1.5M)
4001760 56435732 - free - (27G)
The Debian Live image (boots OK):
# gpart show da0
=> 63 60437429 da0 MBR (29G)
63 1573 - free - (787K)
1636 10074 2 efi (4.9M)
11710 60425782 - free - (29G)
The pfSense installer (boots OK):
# gpart show da0
=> 1 60437491 da0 MBR (29G)
1 131072 1 efi (64M)
131073 1627984 2 freebsd [active] (795M)
1759057 131072 3 fat32 (64M)
1890129 58547363 - free - (28G)
So, it looks like the "efi" partition is missing on my nanobsd image.
I tried to add "NANO_LAYOUT=std-uefi-bios" to my config file, because I found about it in this file: https://github.com/freebsd/freebsd-src/blob/main/tools/tools/nanobsd/embedded/common#L293 but no luck: the new image has the same partition layout.
Do you think the problem comes from this missing partition?
And how can I rebuild the image to include this "efi" partition?
Thanks in advance.