# Dual-booting Windows 10 alongside FreeBSD 11.0-RELEASE



## asys (Jan 22, 2017)

How do I go about having Windows 10 alongside FreeBSD 11.0-RELEASE on a same physical hard drive? Freebsd handbook is excellent(reason for choosing FreeBSD), but I can't seem to find the way to do this.

A little bit of background, I did dual-boot my older machine with Windows 7 alongside FreeBSD 10.3 but that was in BIOS mode and Windows 10 won't boot unless it is in UEFI mode. My current machine comes with Windows 10 by default and I wanted to install FreeBSD with the main purpose of learning a Unix-like OS since I have a lot of time to spare. Though, mainly an "educational" endeavour, I'd like to eventually use it as the main OS which is a reason to install it on the hard drive instead of installing it on VM.

What are the things that I should be aware of? Common pitfall?  Kindly point me to the right direction


----------



## Sevendogs (Jan 22, 2017)

There are ways of doing this, here is an example thread: Thread 49055/. I dual boot between Windows 10 and FreeBSD but am on a BIOS system with GPT disks, and have separate physical disks. If you can physically do it, separate disks and UEFI is the best solution because you can hit the F8/F9 key on boot up and choose which disk to boot from. Not sure of the keys, I don't have a UEFI system.


----------



## drhowarddrfine (Jan 22, 2017)

OT but I've always considered dual booting a pita. Can you not just run Win10 in VirtualBox or bhyve? I've run Windows up through Win7 that way for a decade.


----------



## asys (Jan 22, 2017)

drhowarddrfine said:


> OT but I've always considered dual booting a pita. Can you not just run Win10 in VirtualBox or bhyve? I've run Windows up through Win7 that way for a decade.


The thing is, I wouldn't have a working system until I have finished through the chapters(I'm planning on reading the handbook like a textbook in "academic" sense). I just wanted to take it a step at time, even if it means a CLI interface for the first week until I it becomes a desktop of my liking. That said, I can't afford to lose a working machine as it is my main workhorse.


----------



## asys (Jan 22, 2017)

Sevendogs said:


> There are ways of doing this, here is an example thread: Thread 49055/. I dual boot between Windows 10 and FreeBSD but am on a BIOS system with GPT disks, and have separate physical disks. If you can physically do it, separate disks and UEFI is the best solution because you can hit the F8/F9 key on boot up and choose which disk to boot from. Not sure of the keys, I don't have a UEFI system.


I'm sorry, but don't quite understand. I've heard that FreeBSD can boot GPT partition using gptboot() from a thread I can't remember which, but Windows 10 booting in BIOS mode have me confused here. Did I get the wrong idea? 

I've looked into the thread in your post. Can you elaborate how this is actually done when I already have a working Windows installation?


----------



## Sevendogs (Jan 22, 2017)

I really can't because I have a completely different set up. There are a ton of threads on this topic and googling will bring back a lot of hits.


----------



## Sevendogs (Jan 22, 2017)

drhowarddrfine said:


> OT but I've always considered dual booting a pita. Can you not just run Win10 in VirtualBox or bhyve? I've run Windows up through Win7 that way for a decade.



Yes, dual booting is a PITA but if you are using windows for gaming only, which is all I use it for, gaming in a VM is horrible because the simulated hardware is not remotely close to real hardware. If you just have to run some windows applications, virtualization is great, but it doesn't work for my situation.


----------



## Sevendogs (Jan 22, 2017)

asys said:


> I'm sorry, but don't quite understand. I've heard that FreeBSD can boot GPT partition using gptboot() from a thread I can't remember which, but Windows 10 booting in BIOS mode have me confused here. Did I get the wrong idea?



My apologies, I read your post too fast  All of my partitions are GPT so yes, FreeBSD can boot GPT partitions. I am not sure however, how to make the boot choice when they are both on the same disk. Hopefully someone else can chime in that has a set up like this.


----------



## asys (Jan 23, 2017)

Right. I'll wait for anyone who may have sorted this one out. For the mean time, VirtualBox is the way to go.


----------



## Deleted member 9563 (Jan 23, 2017)

Perhaps the OP lives in a place where used computers are hard to come by, but speaking as someone on an extremely low income, I'd just use a second computer. That solves all problems and gives some pluses as well.


----------



## asys (Jan 23, 2017)

OJ said:


> Perhaps the OP lives in a place where used computers are hard to come by, but speaking as someone on an extremely low income, I'd just use a second computer. That solves all problems and gives some pluses as well.


I'm gonna say that I'm not really that financially constrained, but I'd rather not spend on another machine. The idea is interesting tough;to tinker with FreeBSD on separate machine as oppose the one I currently use, but let's just say that isn't going to happen...at least, not in the nearest future.

Besides, I don't get to use them since I'll be away from home and occasionally return home for the next 2 years and a half, so it's no use buying another system that I don't get to use much, isn't it? Despite how hopeless it may sounds, I'm planning to install FreeBSD on a laptop, the only things that will be with me for the rest of my school years. So, that's why I'm actually hoping see how well it's going to run while still having a completely functional laptop for everyday task. That is, if it even feasible in the first place! but hey, I asked didn't I?


----------



## amiramix (Jan 29, 2017)

I am using dual boot on my desktop and laptop. Originally they both were booting to FreeBSD 10.3 and Windows 7 but since then I reinstalled Windows to 10 on both and upgraded 10.3 to 11.0 on my desktop. I am not using UEFI, just BIOS, and Windows 10 boots just fine. But on both I use MBR rather than GPT. Windows 10 doesn't need UEFI if you use MBR instead of GPT.


----------



## asys (Jan 29, 2017)

amiramix said:


> I am using dual boot on my desktop and laptop. Originally they both were booting to FreeBSD 10.3 and Windows 7 but since then I reinstalled Windows to 10 on both and upgraded 10.3 to 11.0 on my desktop. I am not using UEFI, just BIOS, and Windows 10 boots just fine. But on both I use MBR rather than GPT. Windows 10 doesn't need UEFI if you use MBR instead of GPT.


Well, windows 10 certainly won't boot if I boot in legacy mode on my machine. I'll look into this I guess. See if I can find any way to get windows 10 to boot with CSM on.


----------



## amiramix (Jan 29, 2017)

What's legacy mode? I am not sure about CSM. I don't have UEFI on my desktop but on my laptop I can switch between UEFI and BIOS (I am not sure if that's the same as enabling CSM). You may need to reinstall Windows on an MBR partition if you want to use it without UEFI (I am pretty sure just switching to legacy won't be enough if it is still on GPT, which I believe is by default on Windows 10).


----------



## wblock@ (Jan 29, 2017)

Pretty sure that when Windows is installed in UEFI mode, it will only boot in UEFI mode.  The only Windows 10 setups that are booting in BIOS mode are computers that were upgraded from earlier versions booting in BIOS mode.

Dual-booting is suboptimal in many ways. But if you must dual-boot, consider just installing another hard drive.

Finally, be sure to make backups before starting to set this up.  It is very easy to overwrite partition tables, bootcode, or filesystems.


----------



## Sevendogs (Jan 29, 2017)

I am running a set up with separate drives for windows and for FreeBSD. Windows is on a drive set for mbr, FreeBSD set for GPT on all drives. The windows 10 install was a clean install from the windows 10 DVD. I removed all drives from the system prior to installing windows 10, just to ensure windows didn't do anything horrible to existing drives. Since I have a BIOS based workstation that is pre-UEFI, windows 10 installed using mbr. I dual boot by booting to a gparted thumb drive and using the grub install on the thumb drive. I change the drive designation by editing the grub config and boot to windows 10. Works perfectly. I do this because my only other alternative would be to install sysutils/grub2 on FreeBSD and have it control the boot process, or attempt something like that on windows. I have attempted that on windows and all of my efforts failed miserably so the thumb drive boot works well and I'll keep using it until I get a new workstation that supports UEFI. I boot into windows about once a month or so to game so the process is not cumbersome for me at all. Just wanted to pass on my experiences in case anyone could benefit.


----------



## aht0 (Jan 29, 2017)

There is certain trick to windows boot media. If your system can support legacy and UEFI boot both. 

Put the DVD/USB stick i(win8 or 10) into machine and boot from the media. You shall see then white text declaring "Press any key to install from CD or DVD.." on black background. TWICE in a row..

You may also notice that while texts are identical between both occurences, fonts (and resolution) differ between them because EFI version switches to higher resolution and to slightly different font.

Pressing "any" key during one /or the other/ leads you accordingly to either setting up legacy MBR-based or EFI system. Windows Installer's partition manager handles drives accordingly. Hope you understood.


----------



## asys (Jan 30, 2017)

To put things into perspective:

Windows 10 can boot in legacy mode/BIOS/Compatibility Support Module if it installed with MBR partition scheme in the first place.
The option of installing windows 10 either in BIOS or UEFI can be chosen when booting into the installation media as pointed out by aht0.
Freebsd can then handle the booting of windows 10 installed on the same hard drive using Freebsd default boot manager(boot0).
If windows 10 were installed in UEFI mode, different boot manager are to be used instead for dual-booting Freebsd and windows 10 on the same hard drive as mentioned by Sevendogs.
Did I get it right? I'm interested in the last case as having another hard drive on a laptop is out of the question. I don't consider re-installing windows 10 to boot in BIOS mode but it's interesting to know and some people may even find it useful. I'll wait if others have anything to share about dual-booting Freebsd and windows 10 from the same drive. For the mean time, I'm trying to familiarize myself with Freebsd basic concepts and tools on VM. I'd post if I find anything useful.


----------



## redpill (Feb 1, 2017)

Adding yet another boot loader to the chain is (probably) unnecessary if you're using UEFI. Most motherboard firmwares already provide a menu for selecting between EFI boot entries. The only thing that may not be obvious is how to add an entry for FreeBSD to this menu so that it lives alongside Windows Boot Manager. Now, if you don't have a fancy boot menu you can access with the press of a key at startup then you're going to have to look into using something like GRUB or rEFInd. You might consider using such an option even if you do have a working boot menu provided by your firmware.

As far as getting FreeBSD installed on your machine, the process isn't very different from what you'll find outlined in the Handbook. During installation, though, you'll probably want to pass on the offer of guided partitioning and drop to a shell. This will leave you responsible for setting up partitions, creating filesystems/swap, and installing a boot loader using your trusty terminal before you get to continue with dialog menus. There are some great guides around that discuss this stage of installation, so it's nothing to fear. And installing the boot loader for a UEFI setup is dead simple since all it basically entails--or at least should--is copying a file from the /boot directory of the installation media to your EFI System Partition (ESP) and telling your firmware about it. If you're really lucky and your UEFI firmware doesn't suck, it'll automagically add a boot entry for you when you dump a new EFI binary into the ESP.

Unfortunately, in my experience, UEFI firmware can be pretty flaky. And I'm convinced Windows doesn't like sharing its ESP. Just to give you an anecdote, I once put FreeBSD's EFI boot loader on the ESP that Windows was using and was kindly rewarded with the removal of the Windows Boot Manager entry from my firmware's boot menu on reboot. I ended up having to create a second ESP to skirt the issue. Don't be surprised if you come across anything similarly janky.

Of course, you can always simply boot FreeBSD in BIOS-compatibility mode if your motherboard has CSM enabled; just because Windows boots in UEFI mode doesn't mean every other OS on your machine has to. You can also store the boot loader on a USB flash drive and use that to boot your system if putting a second boot loader on the only drive in your laptop is a problem. Whatever you decide to do, how easy or difficult it's going to be depends mostly on the intricacies of your specific hardware.


----------



## Birdy (Jan 7, 2018)

redpill said:


> ... Now, if you don't have a fancy boot menu you can access with the press of a key at startup then you're going to have to look into using something like GRUB or rEFInd. You might consider using such an option even if you do have a working boot menu provided by your firmware.


Just found this and put on my todo list of things to test: Dual Booting Windows 10 and FreeBSD 11 With rEFInd and EasyUEFI.


----------



## vchan (Jan 9, 2018)

I used the Windows boot loader to make one for FreeBSD. https://forums.freebsd.org/threads/61199/#post-365839


----------



## Birdy (Mar 27, 2018)

In follow-up to my previous post, rEFInd works like a charm.

The EasyUEFI free version (currently v3.1) does no longer allow the needed "Create a new entry" feature. There's a previous version (v2.6) without this limitation here.


----------



## x-yuri (Dec 21, 2021)

I've just successfully installed FreeBSD 13 alongside Windows 10 (UEFI + GPT). I used Guided Disk Setup, and told it to use a partition. The suggested disk setup looked okay (it added 2 partitions, / and swap). As a result, FreeBSD made itself the default OS, Windows didn't try to change that. If you need to change the order:


```
# efibootmgr
...
BootOrder: 0003,0002,0000,0004
...
# efibootmgr -o 2,3,0,4
```

P.S. To make FreeBSD boot I needed to disable Secure Boot.


----------



## Alain De Vos (Dec 21, 2021)

As workaround a triple boot. Use linux to boot linux/freebsd/windows. 
Another option, use easybcd on windows to boot linux.


----------

