The following instructions resulted in a functional Crux Linux/NetBSD 9.2
x86_64 system.
Crux was installed first to the following 3 GPT partitions
1 - vfat (fat32) and tagged as System EFI boot
2 - Linux - swap
3 - Linux - ext4
I roughly split my hard drive in half with the first 3 partitions occupying
the first half. I was also generous with the 1st partition and gave it
1024Mb.
The disk layout should work with Debian/Crux/Slackware. The Fedora/RHEL
derivatives use logical-volume/xfs for default partitioning and I was unable
to get logical-volume/xfs to boot NetBSD. It did work in Fedora/RHEL
derivatives with the following partion scheme:
Quote:
1 - /boot/efi 600 MiB
2 - / as ext4 and roughly 1/2 disk size - (swap+ 1 Gib)
3 - swap
|
From the working Linux install, use the partition manager to add
4 - NetBSD ufs2 (aka ffsV2)
5 - NetBSD swap
Then boot into the NetBSD install image select the / install destination as
dk3 (NetBSD numbers dk's from 0). When prompted to add NetBSD swap select yes.
The installer has a quirk where it loops back to the initial installation step
when you select Install sets. The work around is to select
option c: Re-install sets ...
Re-install does not allow any post install configuration options or set
rc_configured=YES - your initial NetBSD boot will be in single user mode.
Boot back into linux and download/extract the appropriate *EFI file.
An update on obtaining the *.EFI files:
The easiest way to get bootx64.efi or bootia32.efi is to download the base.tar.xz file set, in your
linux install to an empty directory, Choose the install set that matches your NetBSD version.
Uncompress
and extract
You will find the *EFI files in /usr/mdec.
Copy bootx64.efi (bootia32.efi) to /boot/efi/
Edit /etc/grub.d/40_custom
Code:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry 'NetBSD 9.2' {
insmod part_gpt
insmod search_fs_uuid
insmod chain
chainloader (hd0,gpt1)/bootx64.efi
}
Reconfigure grub with
Code:
grub-mkconfig -o /boot/grub/grub.cfg
or with Debian systems
For Fedora/RHEL
Code:
grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
For Fedora/RHEL derivatives, adjust "rocky" in the output path for your variant.
Reboot and select NetBSD single user mode.
From single user mode mount the / partition(s):
and set the default terminal
Code:
TERM=vt220 ; export TERM
Edit /etc/rc.conf and change rc_configured to YES, set the hostname=
and setup your network.
Provisioned /etc/rc.conf
Code:
rc_configured=YES
hostname=
"Network per NetBSD guide"
wscons=YES
My keyboard and mouse gave me fits without wscons enabled.
Set root password
Set user
Code:
useradd -m -G wheel -s /bin/sh "username"
Set user password
Code:
# passwd "username"
Set timezone
Code:
ln -sf /usr/share/zoneinfo/"Your Continent/Your zone" /etc/localtime
See the NetBSD guide for details and additional options
https://www.netbsd.org/docs/guide/en/