When I initially set up my new laptop, I opted for dual boot, assuming that from time to time in client work I’d need to be able to get to windows applications. Now that I’m moving to virtualization, I’ve run into an issue with my shared partition.
Hoping to avoid significant “I can’t get to that file now” problems, and not wanting to try out read/write mount of NTFS+ in Linux, I took a multi-partition approach, breaking up the hard drive thusly:
- ext3 format, onto which Ubuntu is installed
- ntfs format, onto which Windows XP is installed
- vfat (aka Fat32) format, as a shared partition accessible from Windows or Linux
- small linux swap partition, ignored by windows
This was great, as it enabled me to put things like firefox profiles on the shared drive, and then whether I booted Windows or Kubuntu I ended up with the same set of bookmarks, cookies, and the like.
It also meant all my “documents” (client folders, project folders, and so on) went to the shared partition. (In windows I mapped “My Documents” to point to what it sees as the E: drive, and in Linux mapped the mounted drive to /media/shared/).
Since then, however, I’ve decided that rather than dual booting I should move windows into a virtualization container, and run Windows XP inside VMWare Player without having to reboot.
(Experienced virtualization users at this point have likely already anticipated the problem).
Using a number of online guides (see here and here – the latter was more useful for my case), I was able to get WindowsXP booting inside VMWare using the existing WindowsXP installation on the NTFS partition. Very nice. That triggers, unfortunately, a bunch of windows activation hooey, but you can eliminate that as well.
Now, to the problem. When Windows boots inside VMWare, it mounts the E: drive. Problem is that partition is also already mounted in Linux. Now we have two different operating systems, both of which are potentially reading and writing to a single VFAT / FAT32 partition, and neither of which “knows” about the other’s access. Surely a recipe for trouble.
So what are my options?
Here are some I’ve considered – let me know if there are others:
- Make windows forget that the VFAT partition exists. Not sure how to effectively do this – won’t windows keep trying to “discover” the drive and assign it a drive letter when it boots up?
- Trigger (via script) unmounting of the VFAT partition in Linux whenever the Windows VMWare player is booted. That way Linux would let go of the partition while I’m using windows, and I could then remount it when I close the VM.
- Backup the partition and reformat it as ext3. Windows will now ignore it, and I can enable a samba share on the linux side which the Windows OS inside the VM will see as a network share and access appropriately.