0

I have a computer running Windows 8 and I would like to run a Linux VM on it. I would, preferably, like to create a partition which both Linux (Ubuntu) and Windows can access to hold my source code on it.

I would like to have the linux VM read a hardware partition instead of a virtual HD and have Windows also be able to read it (thus, being able to run the same code from both OSes).

If I do this, what is the best filesystem to use? Is there a FS which will run optimally for both Windows 8 and Linux?

2
  • Possibly a FAT32 partition as a server share or something similar, I am not sure exactly how to configure that, or a Windows share and use Samba.
    – cutrightjm
    Commented Jul 14, 2013 at 0:56
  • I really don't think this is a duplicate. I am not asking about dual booting a system. I know how to make a filesystem which more than one OS can read in a dual boot configuration. I am asking if there is a FS which two OSes can access simultaneously (one through a guest VM) and how that would affect performance of each OS.
    – drjrm3
    Commented Jul 14, 2013 at 17:36

3 Answers 3

4

You didn't mention which virtualization software you are planning to use. Both VMWare and Virtualbox (probably others as well) support the concept of sharing folders. This means that you can setup your guest to have access to the host's file system. This is a simple solution and you will not have to make any special partitions to share between the systems. The feature was designed for the reason you mention.

6
  • 1
    I agree, this is the most simple and flexible method for sharing data between your host and guest. No partitioning needed. Just create multiple shared folders for whatever directories you want to access in your guest, or you can create a single "Shared" folder with symbolic links to folders and files in your host, which is what I prefer. Commented Jul 14, 2013 at 21:45
  • interesting, so the shared folder is the best bet? For some reason I thought that a shared folder would be too 'virtualized' and thus, read/writes to a shared folder would be slower than read/writes to actual disk space. Whatever I do (shared folder, partitioned HD, etc). I will be needing at least 500 GB because I have a lot of source code and data I am working with.
    – drjrm3
    Commented Jul 15, 2013 at 2:03
  • I will be using virtualBox btw. Assume any given file will have max size 40GB and there will be no more than 600,000 files in any give directory (I am doing high performance computing with massive data mining- this is why I am a bit worried about speed/efficiency of the shared folder concept ... I want it to be as much like it is reading/writing to a 5400 RPM HD as possible for prototyping my code on linux machines)
    – drjrm3
    Commented Jul 15, 2013 at 2:05
  • I would recommend you try it out to see what the performance will be. Overall, I have had no problems with performance.
    – cmevoli
    Commented Jul 15, 2013 at 4:31
  • Also, I don't recommend 600,000 files in one directory. There are no efficient indexes for that sort of thing in a file system. Maybe you should be looking to use a database for what you are trying to accomplish.
    – cmevoli
    Commented Jul 15, 2013 at 4:32
2

Samba is the simplest answer. Create real partition Make sure it gets a drive letter activate file sharing and give everyone full access (You can setup security on your own)

Launch your virtual linux and install samba mount or smbmount your file share.

(detailed instructions upon request)

2
  • This may be the sort of thing I was looking for although it seems a bit more complicated than I was hoping. If I understand correctly, using Samba, I can edit files in one OS and use those files in another OS. Whether it is editing source code in linux and running it in Windows? Perhaps even editing photography in one OS and then previewing it in the other? Something like that is the sort of simultaneous functionality I would like. How will this affect performance of my code? If my OS has to go through the Samba layer before it sees the code, will this slow down performance?
    – drjrm3
    Commented Jul 14, 2013 at 17:42
  • Depends on your network speeds. If you have virtual gigabit the performance hit will be minimal. Performance wise: Compiling may be a little bit slower. Running the compiled results,open pictures, and etc should see very little performance difference. That is unless you don't have enough CPU or memory to accommodate the host and the VM together. Mounting the windows file share in linux is a 1 line command so it is not complicated. Creating a windows file share should take less than 5 minutes and probably less than 1.
    – cybernard
    Commented Jul 14, 2013 at 19:17
0

If you are only needing to use it with 1 OS at a time, and are able to control which OS has access to it, you should be able to get away with a single FAT32/VFAT or NTFS partition and assign it to the VM (and mount it on the host when the VM is down). This is dangerous though because if you forget and mount the same partition on both OS's at the same time you will get data corruption.

If you are needing to access the partition from both OS's simultantaneously your best bet is probably to use SAMBA in the linux partition and do filesharing - which is probably not what you want to here. (In order to provide you with the answer you want you would need to run a filesystem which is designed for it - and the ones I'm aware of don't work under windows AFAIK. (GFS and GLUSTERFS)

1
  • In fact, I would like to be able to access files simultaneously from both OSes. A simple example might be to write the code in linux and run the code in Windows (assuming I can compile correctly which will not be a problem since I am simply editing code in linux and can compile it in whichever OS I choose). This is a simplified example of some things I would like to do, but this case is broad enough to meet my requirements.
    – drjrm3
    Commented Jul 14, 2013 at 17:40

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