Dual boot FreeBSD in a multi-OS system


New Member

Reaction score: 2
Messages: 17

I have decided to install FreeBSD onto actual working hardware (not just on a virtual machine). This will be my daily driver PC.

My computer pre-dates UEFI (motherboard BioStar N68S3B), which means GRUB will be my boot manager. My video card is an Nvidia GeForce GT 430 of which I connect through my HDMI port for both video and sound (on Linux I use the 390.xxx drivers). I use a generic wireless mouse and keyboard (USB). Finally, while my computer is directly connected to my router, my printer which is a Brothers MFC-L2740DW, prints over the network (DHCP).

My current hard drive layout is as follows
  • sda1 - SWAP
  • sda2 - Arch Linux == Boot Flag
  • sda3 - Debian Sid
  • sda4 - HERE is where FreeBSD is planned to be installed.

My primary concern is trying to get FreeBSD to boot nicely in my system. I presume I am not going to install FreeBSD's boot loader.

It has been a long time since I decided to give FreeBSD a serious try (outside a virtual machine). Real hardware, as most know is always something new. Please think of me as a newbie who likely knows next to nothing (or who has amnesia and recalls nothing). That said, anything you can tell me that will benefit my experience and ease me into using FreeBSD is very much appreciated.


Well-Known Member

Reaction score: 531
Messages: 450

No reply from OP, I assume his problem is solved. Therefore I write a general step by step guide, suitable for everyone for using on an old/MBR imaginary system:
System: 128 GB HDD
Dual Boot MBR: FreeBSD/GNU-Linux(Debian)
  1. Boot with FreeBSD USB/CD
  2. Partitioning:
    1. Manual
    2. Select drive (e.g. sda0) > Delete
    3. Select drive > Create > MBR
    4. Select drive > Create:
      1. Type: freebsd
      2. Size: 64GB
    5. Select slice (e.g. sda0s1) > Create
      1. Type: freebsd-ufs
      2. Size: 60GB
      3. Mountpoint: /
    6. Select slice (e.g. sda0s1) > Create
      1. Type: freebsd-swap
      2. Size: 4GB
  3. Finish > Installing > everything is OK > boot > ... > poweroff
  4. Boot with Linux USB/CD
  5. Partition Disks:
    1. Manual
    2. Select drive (e.g. sda) > Select free space > Create
      1. 60GB
      2. Primary
      3. Beginning
      4. Ext4 | Mount point /
      5. Done!
    3. Select drive (e.g. sda) > Select free space > Create
      1. 4GB
      2. Primary
      3. Beginning
      4. Swap
      5. Done!
  6. Installing ...
  7. Install GRUB boot loader > YES
    1. Select manual
    2. Enter: /dev/sda
  8. Finish installing. Reboot. GRUB will show up. Linux will start
  9. Open a terminal > change to root: sudo su -
  10. Edit /etc/grub.d/40_custom
    vi /etc/grub.d/40_custom
    menuentry "FreeBSD" {
    set root='(hd0,1)'
    kfreebsd /boot/loader
  11. grub-mkconfig -o /boot/grub/grub.cfg
  12. Edit /etc/default/grub to set FreeBSD as Default boot item
    vi /etc/grub.d/40_custom
  13. update-grub
  14. Reboot
  15. Now you have a dual boot system (Linux/FreeBSD) and FreeBSD is set as default boot item. If select or le it be, it boots into FreeBSD, it skips boot0 stage and land on boot2/loader/... aka 9sec count down and boot into FreeBSD. Or you can select Linux from the GRUB menu and boot in Linux.