After reviewing PC-BSD 10.1 and installing it on an encrypted hard drive, the next logical thing to do is attempt a dual-boot setup between it and Windows 8 and publish an article showing how to go about it.
Unfortunately, multiple attempts to setup such a system failed, so instead of writing about how to set up a dual-boot system between PC-BSD 10.1 and Windows 8, I can only write about those attempts failed.
The test system I used is the same one I used to install PC-BSD 10.1 on an encrypted disk. And that system has a UEFI firmware. Because it is a self-built unit, I had to install Windows 8 before attempting to install PC-BSD 10.1 alongside it on the same hard drive.
There was no problem installing Windows 8. However, during the disk selection step, I chose to assign the amount of disk space that Windows 8 should use manually. That was just to make up for the inability of the PC-BSD 10.1 installer to auto-shrink an existing partition that has another OS on it. Figure 2 shows how the Windows 8 installer partitioned the disk – a 500 GB unit. Drive 0 Unallocated Space was intended for use by PC-BSD’s installer.
After the installation of Windows 8, Figure 2 shows the partitions on the target disk as seen from Windows 8’s partition manager. Again, that Unallocated space (highlighted) was intended for PC-BSD 10.1.
Time to install PC-BSD 10.1. The installation image, downloaded from here, was transferred to a USB stick using the dd command. With Linux distributions that have support for installation on computers with UEFI firmware, accessing the computer’s boot menu with the installation media attached allows one to choose what version of the installer to use for installation – the standard version or the UEFI-aware version. In Figure 3, the PNY USB 2.0 FD 1100 entries are the options for the installation media, where the UEFI PNY USB 2.0 FD 1100 entry should give access to the UEFI-aware version of the installer.
However, with PC-BSD 10.1, selecting that option leads to a boot failure and a GRUB error. Selecting the USB: PNY USB 2.0 FD 1100 entry does the trick. And it boots into a UEFI-aware installer.
Figure 4 shows the Disk Selection step of the PC-BSD 10.1 installer. Because the installer cannot auto-shrink a partition that has another operating system’s data on it, I had to click on the Customize button to select the unallocated space that I had prepared for it. I was actually surprised that the installer did not find that space automatically.
Clicking Customize opened the window shown in Figure 5. Whether I selected Basic or Advanced and clicked the Next button, the unallocated space was missing from the list of partitions detected by the installer. Consequently, there was no place to install PC-BSD 10.1. I thought that if I logged back into Windows 8 and formatted the unallocated space as a Windows partition using either NTFS or exFat, that perhaps the installer (PC-BSD’s) will be able to detect it. So that’s exactly what I did.
Figure 6 shows the now formatted space (highlighted) as seen from Windows 8’s partition manager.
Back in PC-BSD’s installer and clicking the Customize button opened this window. Now the installer detected the formatted space. In this figure, the target space intended for use by the installer is ada0p5: 276983MB ms-basic data. That’s a 276 GB disk partition. Selecting it and clicking Next opened another window…
Where the installer showed how it was going to partition the space. That was fine by me, so I clicked Finish.
That dropped back to the main installer’s window. Clicking Next there to continue with the rest of the installation triggered a failed, with this error message.
The most important snippet from the error report is shown in this output.
kern.geom.debugflags -> 16 kern.geom.label.disk_ident.enable: 1 -> 0 Running: gpart modify -t bios-boot /dev/ada0 gpart: Option 'i' not specified ... EXITERROR: Error 1: gpart modify -t bios-boot /dev/ada0 Unmount: /mnt Running: umount -f /mnt umount: /mnt: not a file system root directory
So it appears that the installation attempt failed at that point because the correct gpart option was not specified. The -i option is used to run gpart interactively, but why it’s necessary to use it in the graphical application? In any case, I’ll be logging a bug report.