Создание мультизагрузочного USB-флеш-накопителя в операционной системе FreeBSD, загрузка FreeBSD iso образа используя GRUB.

 

 

Для начала установим Grub удобным вам способом.

 

cd /usr/ports/sysutils/grub2-pcbsd/

 

make install clean

 

или

 

pkg install grub2-pcbsd

 

Подключаем USB-флеш-накопитель и смотрим разделы с помощью команды:

 

gpart show

 

Затем монтируем USB-флеш-накопитель в зависимости от того как он определяется, у меня это

 

mount_msdosfs /dev/da0s4 /mnt

 

Создоем директорию boot, dev и устанавливаем GRUB на USB-флеш-накопитель с помощью команд

 

mkdir /mnt/boot

 

mkdir /mnt/dev

 

grub-install --boot-directory=/mnt/boot /dev/da0

 

Копируем iso образы на USB-флеш-накопитель

 

cp -R /tmp/iso /mnt

 

Создаем конфигурационный файл GRUB с помощью консольного редактора EE или чем вы там пользуетесь.

 

ee /mnt/boot/grub/grub.cfg

 

Мой конфигурационный файл выглядит так:

 

 

### 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/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 ###

 

 

 

 

 

Создаем конфигурационный файл mount, для загрузки FreeBSD.

 

 

ee /mnt/.mount.conf

 

.timeout 3

.md /iso/FreeBSD-13.0-RELEASE-amd64-disc1.iso

.timeout 4

cd9660:/dev/md# ro

.ask

 

 

В данном примере в мультизагрузочном USB-флеш-накопители будут загружаться из образа ISO операционная система FreeBSD, операционная система Slitaz GNU/Linux, средство резервного копирования Clonezilla, редактор дисков Gparted и антивирус ClamAV. Аналогичным способом можно загрузить другие образы систем используя Grub.

 

Перезагружаемся...