Dual Booting with GRUB2 (CentOS 7) and Windows 7
Posted on Sat 03 January 2015 in blog
TL;DR: You need to install the ntfs-3g
package, in order for os-prober
to detect Windows installations. This allows grub2-mkconfig
to automatically
generate an entry for dual-booting into Windows.
Doing a lot more hardware hacking these days, I've felt constrained running Linux in a VM all the time. I was especially disappointed that VirtualBox doesn't expose nested Intel VT-x features to its guests. So I've decided to try dual-booting again, going with the very stable CentOS 7.
Not willing to sacrifice any space on my Windows SSD, I put another Crucial SSD in my machine - this time the 256 GB version of their newer MX100 series. Downloading the NetInstall ISO and pointing at a relatively close mirror gave a very satisfying install experience. Having the whole drive made things quite easy as well - except for the actual Dual-Booting part.
I wasn't terribly surprised that the setup process didn't automatically add a
GRUB 2 entry for booting to my Windows 7 drive. Everything I read
indicated that simply running grub2-mkconfig
should set up the GRUB config
script to include Windows. Yet, it wasn't working for me. Supposedly GRUB 2
uses os-prober
to automatically detect other OSes and generate boot entries
for them. However, running os-prober
showed no Windows install, even though
my drive was clearly visible.
After stumbling across this post on LinuxQustions.org, it turns out
that the NTFS-3g package (for mounting NTFS volumes) isn't installed
by default, and os-prober
needs this the mount the drive and detect the
installed OS. After installing ntfs-3g
(from the EPEL repository), I was able
to run grub2-mkconfig -o /boot/grub2/grub.cfg
and successfully add an entry
for Windows 7.