Создание загрузочной флешки для установки Free BSD 11.0 оказалось довольно нетривиальной задачей. При этом, официальный образ флешки *.img не всегда работает как нужно. На некоторых ноутбуках он не загружается вовсе!!
Приведенный здесь способ позволяет сделать загрузочную флешку даже с помощью linux Live-CD.
Для начала создаем на флешке раздел FAT32, делаем его загрузочным и форматируем.
fdisk /dev/sdx
Если на диске есть разделы, то ликвидируем их. Для этого жмем d
После удаления разделов жмем n и создаем новый.
В процессе создания указваем что раздел p (primary).
После создания жмем a, чтобы сделать раздел активным.
Затем жмем t, чтобы задать тип раздела и вводим тип c (FAT32).
Жмем w и записываем изменения на флешку.
Форматируем флешку с меткой FREEBSD11. Метка важна, поскольку в дальнейшем она будет использована для монтирования:
sudo umount /dev/sdx1 sudo mkfs.vfat -F 32 -n FREEBSD11 /dev/sdx1
Монтируем флешку и ставим на нее GRUB2.
sudo mkdir /mnt/USB && sudo mount /dev/sdx1 /mnt/USB sudo grub-install --force --no-floppy --boot-directory=/mnt/USB/ /dev/sdx
Старые версии GRUB вместо –boot-directory используют -root-directory. Если что-то не так, то установщик GRUB скажет что “Installation is impossible. Aborting”.
Создаем на флешке файлик /grub/grub.cfg
sudo nano /mnt/USB/grub/grub.cfg
и пишем туда вот что:
menuentry "FreeBSD 11.0 Text Install" { kfreebsd /boot/kernel/kernel kfreebsd_loadenv /boot/device.hints kfreebsd_module_elf /boot/kernel/ums.ko set kFreeBSD.vfs.root.mountfrom=msdosfs:/dev/msdosfs/FREEBSD11 set kFreeBSD.kern.geom.eli.visible_passphrase=2 set kFreeBSD.hw.memtest.tests=0 set kFreeBSD.vfs.zfs.arc_max=128M set kFreeBSD.grub.platform=$grub_platform set kFreeBSD.xconsole=YES set kFreeBSD.kern.cam.boot_delay="50000" set kFreeBSD.kern.geom.label.disk_ident.enable=0 set kFreeBSD.kern.geom.label.gptid.enable=0 set kFreeBSD.kern.geom.label.ufsid.enable=0 set kFreeBSD.vfs.mountroot.timeout="180" }
Дальше нужно распаковать смонтировать инсталляционный iso-образ и распаковать его на флешку:
sudo mkdir /mnt/cdrom && sudo mount -t iso9660 ./FreeBSD-11.0-RELEASE-amd64-disc1.iso /mnt/cdrom sudo rsync -rLK --ignore-existing /mnt/cdrom/ /mnt/USB
Затем на флешке редактируем /etc/fstab и приводим его к такому виду:
/dev/msdosfs/FREEBSD11 / msdosfs ro 0 0
Тут важно, чтобы указанная метка FREEBSD11 соответствовала указанной при форматировании.
В моем случае флешка оказалась медленной и перед отмонтированием я запустил sync, чтобы убедиться в том, что все корректно записалось.
sync идет довольно долго (около часа!!), так как много мелких файлов.
sync umount /dev/sdx1
Все. Дальше просто загружаемся с флешки и ставим FreeBSD 11.0.
Этим же методом можно сделать загрузочную флешку для установки TrueOS (бывший PCBSD).
https://github.com/trueos/pcbsd/blob/master/overlays/install-overlay/boot/grub/grub.cfg.pcbsd