3

I want to dual boot between macOS and Windows 10. But I don't want to give each a fixed amount of disk space, which is hard to change later. I instead want to keep it flexible so that at some times, macOS can use more disk space, and at other times, Windows.

How do I do this without using a VM? I don't need or want to run both OSs at once. I want to dual boot.

Can I install Windows and ask it to boot from a disk image or sparse image on the HFS+ filesystem? Or, alternatively, boot macOS from a disk image on an NTFS filesystem?

Or is that some LVM stuff that works for this?

4
  • I think the closest you could get to this today would be to use Parallels or VMware Fusion on Apple hardware with a minimum MaxOS install then create MacOS and Windows virtual machines for your day-to-day use. Otherwise I do not think it can be done. Apr 27, 2017 at 14:05
  • With the proper hardware (MacPro5,1/6,1/Mac mini) you can install ESXi 6.x and you should be able to install Win10/macOS. With other Apple hardware ymmv. You are not urged to use BCA to install Win10. It's not very comfortable to do everything manually though: check all BC related q&a of David
    – klanomath
    Apr 27, 2017 at 17:13
  • You could direct the home folder to not be on the Windows partition this should solve most of the problems.
    – William
    Apr 28, 2017 at 2:00
  • @William Sorry, that wasn't clear. Apr 28, 2017 at 2:11

1 Answer 1

5

Short answer

No, it is not possible (to my knowledge, at this time) to boot into one of the other operating systems from a disk image stored on another partition.

What I have done in the past is make a third partition that I use to share files between the two. I make both boot partitions large enough to store the most important things and then a third that I can store other files on whether they be Windows files or Mac files. It isn't a perfect solution but at least that way if you want more space for Mac stuff then you can format that partition in HFS+. If you want more space for Windows stuff you can format that partition in NTFS or exFAT or something.

If you do decide to do something like that then look into the proper way of doing so before you try. It isn't an easy process but it is at least easier than trying to do what you suggested. You can find some instructions on Ubuntu's website that help explain how to set up a triple boot system. Follow those instructions and just skip the step where you install Ubuntu. Instead, leave the last partition empty for storing stuff.

IMPORTANT: Don't forget to backup everything before trying any sort of partitioning on your main drive. You were warned.

Another option is to install a second drive if possible. I have an older MacBook Pro and I took the DVD drive out and put a second drive in its place. Thats the absolute easiest thing to do if you can.

As to your question about LVM. CoreStorage would allow you to set up partitions that can be resized later and the like, but Windows cannot boot from a CoreStorage partition. CoreStorage is strictly a macOS technology that no other OS recognizes. But that is a longer story for another time.

Longer answer

Your Mac's firmware that is in charge of finding and mounting a bootable partition does not have that ability. Maybe, just maybe in the Linux world that is possible but I'm not sure. But I know a Mac's firmware doesn't have that capability because that is not something 99.9999% of people would want to do.

When your Mac turns on the firmware (the baked in software that is stored on a chip on the motherboard) is in charge of finding a partition on your hard drive with an operating system that can boot. When booting to macOS the firmware (EFI on a Mac) finds a special partition on your hard drive called EFI (yes, the same name as the firmware), mounts that partition, and lets the software (called a boot loader) take over the boot process. The EFI is very small and has very limited capabilities since it has to live in a small chip on the motherboard. The boot loader can do more because the EFI partition on your hard drive is large enough to store a bigger program.

The boot loader then mounts the other drives on your disk and finds the partitions with macOS and depending on which drive you selected in the System Preferences it will boot macOS from the partition you chose (you can have many different partitions on the same hard drive with macOS installed on any of them).

When booting to Windows on a Mac your EFI does things a little differently. As far as I understand the boot loader on the EFI partition isn't used to boot Windows. Instead, the Windows installer puts a little chunk of code at the very beginning of you drive in the tiny space called the MBR. That space is measured in bytes. Not even kilobytes. Just bytes. It is absolutely tiny. So you can't do much with the boot loader stored there. All it does is find the Windows partition and direct the CPU there to finish booting. There is no space on the Windows boot loader to do much of anything else at all. Especially not to mount a drive, find the correct disk image on that drive and then mount and boot from that disk image. It wouldn't come close to fitting in the MBR.

Going back to the EFI partition there may be a chance of fitting enough software on that partition to do all the work necessary to boot from a disk image but again I'm not sure its possible. I'm not familiar enough with the boot process to know if it is. All I know for sure is that the current EFI and boot loader do not support anything like you are asking for.

Making a boot loader that does what you are looking for may be possible but it would require a lot of work and a strong understanding of how the whole boot process works.

The point is it would be a much better use of your time figuring out a better way to partition your hard drive then to try and mount one using a disk image.

I tried to explain things as best as I understand them but I may be wrong. Someone please correct me if I am.

4
  • This is an outstanding answer: it says it's not possible, and explains why, in a way that both novices understand and geeks (like me) learn something more from. It also offers multiple options to do the job needed, and explains what it would take to boot an OS from a disk image. Apr 28, 2017 at 2:21
  • @VaddadiKartick Thank you for the comment! I don't have nearly enough knowledge on the subject to be sure there isn't some glaring flaw in my logic but I believe that I covered it as best I could. I hope to learn more someday and maybe come back and update this answer if I can. I get the feeling that it is technically possible, just hasn't been done yet.
    – RTHarston
    May 1, 2017 at 7:27
  • @VaddadiKartick I'm also a geek that likes to learn from these sorts of answers. Just about everything I know about computers comes from searching the web for answers that are simple enough for novices. I've read too many that may have well be in Latin, but after reading enough well explained answers I've started to move up into understanding the more complicated ones. ;)
    – RTHarston
    May 1, 2017 at 7:33
  • I suppose one can deal with the issue of having limited space in the EFI chip and the MBR by bouncing off a partition on disk that knows how to mount a disk image and boot from it. That, of course, requires a file system that both OSs support natively. The disk image can use NTFS or anything else, but the filesystem the disk image is stored on should be a common one understood by macOS and Windows. May 8, 2017 at 6:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .