I am trying my hand at learning multibooting
, so far my target PC has Antix-Linux ext4
on one partition, FreeBSD UFS
on another, ExFat
common data on a 3rd, Target PC has been partitioned with GPARTED and GPT partitioning scheme
as under:
My PC has BIOS
not UEFI
.
/dev/sda1 - 1 GB - fat32 - flags - boot, esp
/dev/sda2 - 3 GB - flags - linux-swap
/dev/sda3 - 15 GB - ext4 - Antix_Linux
/dev/sda4 - 250 GB - exfat
/dev/sda5 - 15 GB - freebsd_UFS
/dev/sda6 - 0.5 GB - openbsd boot (formerly type 'EF' now type '0D')
/dev/sda7 - rest space 15 GB -openbsd 'A6' type UFS
1] OpenBSD with Ventoy
- installed from the install77.iso
file, downloaded filesets
from http
since it did not read from cd0
or disk
, got stuck at installboot
. Then it was showing error EFI device busy
, and since I don't have EFI, I changed the /dev/sda6
from type EF
to 0D
(boot bios) and installboot successfully completed.
Then I rebooted, and trying to add a menuentry in 40_custom
grub file in Antix-Linux, whose grub boots the system, but update-grub
is showing warning discarded incorrectly nested partition hostdisk/dev/sda,gpt7,bsd(1-14)
May you please extend your help in these cases. Regards.
-
All installs have to be in same boot mode UEFI or BIOS. Or you have to directly boot from one time UEFI boot menu. Once you start to boot, you cannot change, or grub can only boot other installs in same boot mode.oldfred– oldfred2025年05月05日 14:55:43 +00:00Commented May 5 at 14:55
-
@oldfred I have not consciously chosen UEFI anywhere, I have kept the /dev/sda1 to install rEFInd later, following people reviews, but I have doubt about the /dev/sda6 which I was forced to create by OpenBSD installer. Cant OpenBSD operate from a single partition like Linux and FreeBSD?Spandan– Spandan2025年05月05日 15:28:16 +00:00Commented May 5 at 15:28
-
Do not know OpenBSD, but rEFInd only works for UEFI installs. rodsbooks.com/efi-bootloaders Alternative efi boot manager for UEFI limited systems: rodsbooks.com/refind I have used rEFInd for emgency boot on my PC.oldfred– oldfred2025年05月05日 15:38:18 +00:00Commented May 5 at 15:38
2 Answers 2
The section below titled "My Way of Installing the Triple Boot" describes the steps for installing which avoids the warning message posted in your question. Basically, Grub is updated before the partition causing the warning message is created.
In both your question and posted answer, you are trying to install a BIOS booting OpenBSD to a GPT drive. This results in the OpenBSD installer terminating before completing the installation. My answer avoids this by hybrid partitioning the drive before installing OpenBSD. Afterwards the hybrid partitioning can be left in place or removed.
Note |
---|
Before answering this question, I assumed only Windows could be installed to BIOS boot on a hybrid partitioned drive. OpenBSD can BIOS boot on MBR partition table, GPT and hybrid partitioned drives. |
When updating grub after installing OpenBSD, The following message appears multiple times where X
is positive integer. This is a warning message which can be ignored.
warning: Discarding improperly nested partition (hostdisk//dev/sda,gpt5,bsdX).
Below are two Bash scripts that can be used to keep this message from appearing.
The following script filters out the warning message.
#!/usr/bin/bash /usr/sbin/update-grub |& grep -v "warning: Discarding improperly nested partition (hostdisk//dev/sda,gpt5,bsd"
The following script temporarily sets the offending partition type to zero.
#!/usr/bin/bash if [[ "$USER" != root ]]; then echo "0ドル: You must run this as root" exit 1 fi DEVICE=/dev/sda PARTITION=5 TYPE="$(sfdisk --part-type $DEVICE $PARTITION)" TYPE00=00000000-0000-0000-0000-000000000000 TYPEA6=824CC7A0-36A8-11E3-890A-952519AD3F61 if [[ "$TYPE" == "$TYPEA6" ]] then sfdisk --no-tell-kernel --part-type $DEVICE $PARTITION "$TYPE00" partprobe fi /usr/sbin/update-grub STATUS=$? if [[ "$TYPE" == "$TYPEA6" ]] then sfdisk --no-tell-kernel --part-type $DEVICE $PARTITION "$TYPEA6" partprobe fi exit $STATUS
The scripts should be stored in the /usr/local/sbin
folder under the name update-grub
. The owner:group
should be root:root
and the mode bits should be set to 0755
. In other words, enter the commands below as the root user.
chown root:root /usr/local/sbin/update-grub
chmod 0755 /usr/local/sbin/update-grub
My Way of Installing the Triple Boot
Below are the instructions for installing a AnitX Linux, FreeBSD and OpenBSD triple boot on a SATA drive. The operating system need to be installed in the order given.
AntiX Linux
Boot from the AntiX Linux installation media. When an image similar to the one below appears, select "Use Modern Kernel".
When the desktop appears, open a Terminal Application window. Enter the following command be become the
root
user. You will need to enter the rest of the commands as the root user. Note: The password wasdemo
.sudo -s
Enter the command below to create a GPT and add the following partitions:
BIOS boot partition
,Linux filesystem
andMicrosoft basic data
.gdisk /dev/sda
The
gdisk
command is interactive. Enter the values in the first column of the table given below. Note: The commands are case independent.Entry Default Type Comment o
command Create a new empty GUID partition table (GPT). y
parameter Do you want to proceed? n
command Add a new partition. 1
✅ parameter Partition number. 2048
✅ parameter First sector. +1m
parameter Set partition size 1 MiB. ef02
parameter Hex code for BIOS boot partition
.n
command Add a new partition. 2
✅ parameter Partition number. 4096
✅ parameter First sector. +18g
parameter Set partition size 18 GiB. 8300
✅ parameter Hex code for Linux filesystem
.n
command Add a new partition. 3
✅ parameter Partition number. 37752832
✅ parameter First sector. +235g
parameter Set partition size 235 GiB. 700
parameter Hex code for Microsoft basic data
.p
command Print the GPT. w
command Write tables to disk and exit. y
parameter Do you want to proceed? Enter the command below to format the third partition exFAT.
mkfs.exfat -L MyShared /dev/sda3
Close the Terminal application and open the Installer application. Proceed with the installation of AntiX Linux.
When an image similar to the one below appears, set "Use For" as shown below.
When an image similar to the one below appears, confirm the actions are the same before continuing.
When an image similar to the one below appears, change the size of the swap file if desired. When finished, select the "Next' button.
Proceed with the installation until completion.
FreeBSD
Boot to AntiX Linux and open a Terminal Application window. Enter the following command be become the
root
user. You will need to enter the rest of the commands as the root user.sudo -s
As the
root
user, append the following to the end of the/etc/grub.d/40_custom
file.menuentry "FreeBSD" { set root=hd0,gpt4 kfreebsd /boot/loader }
Enter the command below to update Grub.
update-grub
Boot from the FreeBSD installation media. When you see a image similar to below, select
Install
.Proceed with the installation. When you see a image similar to below, select
Manual
, theOK
.When you see a image similar to below, select
Create
.In the
Add Partition
popup shown below, set the size to18GB
, the mountpoint to/
and the label toFreeBSD UFS
, then selectOK
.In the
Boot Partition
popup shown below, selectNo
.When you see a image similar to below, select
Finish
.In the
Confirmation
popup shown below, selectCommit
.Proceed with the installation.
Note When adding users, there will be the following question. Invite <new user> into other groups? []:
If you want thesu
command to work for the new user, then enter the groupwheel
.After you have finished installing and have booted to the FreeBSD installation, enter the following commands as the root user. This will create a 3 GiB swap file.
dd if=/dev/zero of=/usr/swap0 bs=1M count=3072 status=progress chmod 0600 /usr/swap0
Append the following line to the end of
/etc/fstab
. I did this by using thenano
text edtior. To install this editor, enter the commandpkg install nano
.md99 none swap sw,file=/usr/swap0,late 0 0
Swap space will be added on system startup. To add swap space immediately, enter the following command.
swapon -aL
Enter the following command to install software that will allow mounting of exFAT volumes.
pkg install fusefs-exfat
To get the software to execute at starup, append the following line to the end of
/boot/loader.conf
.fusefs_load="YES"
Enter the following command to create the directory where the exFAT volume will be mounted.
mkdir -p /media/MyShared
Append the following line to the end of
/etc/fstab
./dev/ada0p3 /media/MyShared exfat rw,mountprog=/usr/local/sbin/mount.exfat 0 0
The exFAT volume will be mounted on system startup. To mount immediately, enter the following commands.
kldload fusefs mount -a
OpenBSD
Boot to AntiX Linux and open a Terminal Application window. Enter the following command be become the
root
user. You will need to enter the rest of the commands as the root user.sudo -s
As the
root
user, append the following to the end of the/etc/grub.d/40_custom
file.menuentry "OpenBSD" { set root=hd0,gpt5 kopenbsd -r sd0a /bsd }
Enter the command below to update Grub.
update-grub
Enter the command below to add a
OpenBSD disklabel
partition.gdisk /dev/sda
Note With a GPT partitioned disk, the installer will attempt to install an UEFI booting OpenBSD. To cause a BIOS booting installation, the gdisk
command will be used to hybrid partition the drive. This will cause the installer to see the drive as only having a legacy MBR partition table.The
gdisk
command is interactive. Enter the values in the first column of the table given below. Note: The commands are case independent.Entry Default Type Comment n
command Add a new partition. 5
✅ parameter Partition number. 568332288 ✅ parameter First sector. 621803519 ✅ parameter Last sector. a600
parameter Hex code for OpenBSD disklabel
.p
command Print the GPT. r
command Switch to recovery and transformation options menu. h
command Make hybrid MBR. 3 4 5
parameter GPT partition numbers. y
parameter Place EFI GPT (0xEE) partition first in MBR? 07
✅ parameter Hex code for 2nd primary MBR partition. n
parameter Set boot flag for 2nd primary MBR partition? da
parameter Hex code for 3rd primary MBR partition. n
parameter Set boot flag for 3rd primary MBR partition? a6
✅ parameter Hex code for 4th primary MBR partition. y
parameter Set boot flag for 4th primary MBR partition? o
command Print the MBR partition table. w
command Write tables to disk and exit. y
parameter Do you want to proceed? Boot from the OpenBSD installation media. When you see text similar to below, enter
i
followed by the Enter key.Welcome to the OpenBSD/amd64 7.7 installation program. (I)nstall, (U)pgrade, (A)autoinstall or (S)hell?
When you see text similar to below, select the default
OpenBSD
by pressing the Enter key.Use (W)hole disk MBR, whole disk (G)PT, (O)penBSD area or (E)dit? [OpenBSD]
When you see text similar to below, select the default
a
by pressing the Enter key.Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a]
If you see text similar to below, enter
yes
followed by the Enter key.Directory does not contain SHA256.sig. Continue without verification? [no]
After you have finished installing and have booted to the OpenBSD installation, enter the following commands as the root user. This will install the software needed to mount the exFAT volume.
pkg_add exfat-fuse mkdir -p /media/MyShared
To mount the exFAT volume, enter the following commands.
disklabel -pm sd0 mount.exfat /dev/sd0i /media/MyShared
Remove the hybrid partitioning.
Note This step is optional. Boot to AntiX Linux and open a Terminal Application window. Enter the command below to remove the hybrid partitioning.
sudo gdisk /dev/sda
The
gdisk
command is interactive. Enter the values in the first column of the table given below. Note: The commands are case independent.Entry Default Type Comment x
command Switch to extra functionality options menu. n
command Create a new protective MBR. o
command Print the MBR partition table. w
command Write the MBR partition table to disk and exit. y
parameter Do you want to proceed?
Downloaded Installation ISO Files
- AntiX Linux:
antiX-23.2_x64-full.iso
- FreeBSD:
FreeBSD-14.2-Release-amd64-dvd1.iso
- OpenBSD:
install77.iso
References
Below are specific to AntiX Linux.
Below are specific to FreeBSD.
- How to format an USB drive on FreeBSD
- 12.12. Adding Swap Space
- How To Add Swap on FreeBSD Unix Systems
- Booting FreeBSD via GRUB
- gpart
- fstab
- How to mount exFAT formatted SD memory card on FreeBSD.
Below are specific to OpenBSD.
Finally, I found a solution, ignore the installer asking to create 2 partitions of EF
and A6
, just make one A6
partition, let disklabel
create auto-layout and reboot.
Add a menu-entry in 40_custom
file of /etc/grub.d
as follows:
menuentry "OpenBSD 7.7" {
kopenbsd -r sd0a (hd0,gpt6)/bsd
}
-
Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.2025年05月05日 19:52:31 +00:00Commented May 5 at 19:52
-
Does this answer solve the problem of
update-grub
is showingwarning discarded incorrectly nested partition hostdisk/dev/sda,gpt7,bsd(1-14)
?David Anderson– David Anderson2025年05月06日 04:06:30 +00:00Commented May 6 at 4:06 -
@DavidAnderson - No, that still shows, but upon further reading, I found out that Grub complains and rEFInd is recommended. But for now my install and boot of OpenBSD is happening.Spandan– Spandan2025年05月06日 06:14:21 +00:00Commented May 6 at 6:14
-
The rEFInd Boot Manager only works with (U)EFI booting. Notice I stated "BOOT MANAGER". It is not a boot loader. The rEFInd Boot Manager instructs the boot manager built into the (U)EFI firmware as to what to boot next. BIOS firmware has no way to do this. On the other hand, GRUB is a boot loader. GRUB is the acronym for Grand Unified Bootloader. Once you have booted to GRUB, you can use GRUB to boot other operating systems. GRUB can be installed to BIOS or (U)EFI boot.David Anderson– David Anderson2025年05月06日 12:23:36 +00:00Commented May 6 at 12:23