We will start by installing Grub in the way that is most convenient for you.
cd /usr/ports/sysutils/grub2-pcbsd/
make install clean
or
pkg install grub2-pcbsd
Mount the usb stick and have a look at the partitions:
gpart show
Then mount the usb flash drive depending on how it is defined, mine is
mount_msdosfs /dev/da0s4 /mnt
Create a directory of boot, dev, and install GRUB on the USB-flash drive using
mkdir /mnt/boot
mkdir /mnt/dev
grub-install --boot-directory=/mnt/boot /dev/da0
Copy the iso images to a USB flash drive
cp -R /tmp/iso /mnt
Create a GRUB configuration file with the console editor EE or whatever you use.
ee /mnt/boot/grub/grub.cfg
My configuration file looks like this:
### BEGIN of grub.cfg ###
# Boot automatically after 30 secs.
set timeout=30
# By default, boot the first entry.
set default=0
insmod loopback
insmod iso9660
insmod ufs2
insmod ntfs
insmod msdosfs
menuentry "FreeBSD 13.0 amd64" {
set isofile="/iso/FreeBSD-13.0-RELEASE-amd64-disc1.iso"
loopback loop $isofile
kfreebsd (loop)/boot/kernel
set kFreeBSD.vfs.root.mountfrom=msdosfs:/dev/da0s4
}
menuentry "Slitaz GNU/Linux" {
loopback loop /iso/slitaz-rolling-core64.iso
linux (loop)/boot/vmlinuz-3.16.55-slitaz64 iso-scan/filename=/iso/slitaz-rolling-core64.iso boot=live quiet noeject noprompt
initrd (loop)/boot/rootfs.gz
}
menuentry "Clonezilla live" {
set isofile="/iso/clonezilla-live-2.8.0-27-i686.iso"
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap nolocales edd=on nomodeset nodmraid ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts= ocs_live_batch=\"no\" locales= vga=788 ip=frommedia nosplash toram=filesystem. squashfs findiso=$isofile
initrd (loop)/live/initrd.img
}
menuentry 'GParted i386' {
set gfxpayload=text # ~= vga='normal'
set isofile_abspath='/iso/gparted-live-1.0.0-5-i686.iso'
set isofile_devpath="${devroot}${isofile_abspath}"
loopback loop "(${root})${isofile_abspath}"
linux '(loop)/live/vmlinuz' boot='live' union='overlay' username='denis' config components noswap noeject toram='filesystem.squashfs' ip='' nosplash findiso='${isofile_abspath}"
initrd '(loop)/live/initrd.img'
}
menuentry 'ClamAV live' {
set isofile="/iso/AntivirusLiveCD-38.0-0.104.0.iso"
loopback loop $isofile
linux (loop)/boot/bzImage iso-scan/filename=/iso/AntivirusLiveCD-38.0-0.104.0.iso boot=live quiet noeject noprompt
initrd (loop)/boot/initrd.gz
}
### END of grub.cfg ###
Create a mount configuration file to boot FreeBSD
ee /mnt/.mount.conf
.timeout 3
.md /iso/FreeBSD-13.0-RELEASE-amd64-disc1.iso
.timeout 4
cd9660:/dev/md# ro
.ask
In this example, the multiboot USB stick will load the FreeBSD operating system, the Slitaz GNU/Linux operating system, the Clonezilla backup tool, the Gparted disk editor and ClamAV antivirus from the ISO image. Other system images can be downloaded the same way using Grub.
Rebooting...