GNU Boot – How to install NetBSD on x86 GNU GRUB payload

Return to index

GRUB supports booting NetBSD kernels directly. However, you’re better off simply using the SeaBIOS payload; BSD works well with BIOS or UEFI setups.

GRUB is acceptable for booting unencrypted BSD installations. However, encrypted BSD installations will probably require the use of SeaBIOS/Tianocore.

## Prepare the USB drive (in NetBSD)

[link]

This page on the NetBSD website shows how to create a NetBSD bootable USB drive from within NetBSD itself. You should use the dd method documented there.

## Prepare the USB drive (in FreeBSD)

[link]

This page on the FreeBSD website shows how to create a bootable USB drive for installing FreeBSD. Use the dd on that page. You can also use the same instructions with a NetBSD ISO image.

## Prepare the USB drive (in OpenBSD or NetBSD)

[link]

If you downloaded your ISO on a OpenBSD or NetBSD system, here is how to create the bootable NetBSD USB drive:

Connect the USB drive. Check dmesg:

dmesg | tail

Check to confirm which drive it is, for example, if you think its sd3:

disklabel sd3

Check that it wasn’t automatically mounted. If it was, unmount it. For example:

doas umount /dev/sd3i

dmesg told you what device it is. Overwrite the drive, writing the NetBSD installer to it with dd. For example:

doas netbsd.iso of=/dev/rsdXc bs=1M; sync

You should now be able to boot the installer from your USB drive. Continue reading, for information about how to do that.

## Prepare the USB drive (in GNU+Linux)

[link]

If you downloaded your ISO on a GNU+Linux system, here is how to create the bootable NetBSD USB drive:

Connect the USB drive. Check dmesg:

dmesg

Check lsblk to confirm which drive it is:

lsblk

Check that it wasn’t automatically mounted. If it was, unmount it. For example:

sudo umount /dev/sdX* umount /dev/sdX*

dmesg told you what device it is. Overwrite the drive, writing your distro ISO to it with dd. For example:

sudo dd if=install60.fs of=/dev/sdX bs=8M; sync dd if=netbsd.iso of=/dev/sdX bs=8M; sync

You should now be able to boot the installer from your USB drive. Continue reading, for information about how to do that.

## Installing NetBSD without full disk encryption

[link]

You might have to use an external USB keyboard during the installation. Press C to access the GRUB terminal.

grub> knetbsd -r sd0a (usb0,netbsd1)/netbsd grub> boot

It will start booting into the NetBSD installer. Follow the normal process for installing NetBSD.

## Installing NetBSD with full disk encryption

[link]

TODO

## Booting

[link]

Press C in GRUB to access the command line:

grub> knetbsd -r wd0a (ahci0,netbsd1)/netbsd grub> boot

NetBSD will start booting. Yay!

## Configuring Grub

[link]

If you don’t want to drop to the GRUB command line and type in a command to boot NetBSD every time, you can create a GRUB configuration that’s aware of your NetBSD installation and that will automatically be used by libreboot.

On your NetBSD root partition, create the `/grub` directory and add the file `libreboot_grub.cfg` to it. Inside the `libreboot_grub.cfg` add these lines:

default=0 timeout=3

menuentry “NetBSD” { knetbsd -r wd0a (ahci0,netbsd1)/netbsd }

The next time you boot, you’ll see the old Grub menu for a few seconds, then you’ll see the a new menu with only NetBSD on the list. After 3 seconds NetBSD will boot, or you can hit enter to boot.

# Troubleshooting

[link]

Most of these issues occur when using Libreboot with coreboot’s ‘text mode’ instead of the coreboot framebuffer. This mode is useful for booting payloads like memtest86+ which expect text-mode, but for NetBSD it can be problematic when they are trying to switch to a framebuffer because it doesn’t exist.

## won’t boot…something about file not found

[link]

Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and numbers may differ. Use TAB completion.

Markdown file for this page: https://gnu.org/software/gnuboot/web/docs/bsd/netbsd.md

Subscribe to RSS for this site

This HTML page was generated by the Untitled Static Site Generator.