Camping in OS X
Volume Number: 23 (2007)
Issue Number: 02
Column Tag: Virtualization
Camping in OS X
A file sharing primer
By Philip Rinehart
Boot Camp
By now, one would have to have been living on another planet to have not heard of Boot Camp. Quite simply, Boot Camp 'Apple'-fies the process of dual booting an Intel based Macintosh. However, the single largest question that most Boot Camp users encounter is how to work on files in one operating system environment, and then access them in the other operating system environment. A common example: a user works on a file in the Windows XP environment. They then boot or use OS X to mail the file they were working on in the Windows XP environment and need access to that file. This is where many users begin to have questions on how file sharing is most easily accomplished between operating systems. While file sharing is most noticeable in Boot Camp, questions still exist on how to share files in virtualization programs (Parallels, VMWare), or CrossOver. It makes the most sense to begin with Boot Camp, as it is the most complex when sharing files.
Making a choice
Before we begin a discussion of how to share files, a little legwork is in order. Most Mac users are familiar with the file system used in OS X called HFS+. When installing Windows XP, the first decision that may be required is the choice of file system type, FAT32 or NTFS. Huh? Never heard of either? Let's quickly take a look at what each is, and what some of the positive and negative aspects of each are.
FAT32
FAT32 is an evolutionary file system, originally introduced with the release of Windows 98, Second Edition. Originally, the File Allocation Table file system was created to work with 500K floppy disks. Microsoft continued to update the structure to handle larger disk sizes, eventually allowing the file system to access up to 2 TB of space.
There are four main reasons that Windows system administrators might consider FAT32 a less than ideal choice.
1. FAT32 file systems fragment more easily. Initially,fragmentation may be of little consideration, but over timethe drive may encounter reduced performance.
2. FAT32 file systems have low fault tolerance. In practical terms, this lack of tolerance can lead to loss of data, and potentially catastrophic loss of data.
I'll share a little story to illustrate the point. Recently, a support incident was forwarded to my desk. The individual was at a conference, and had shut his computer down between sessions while booted in Windows XP using a FAT32 partition. Upon reopening his laptop, a blue screen of death appeared. After a quick reboot, the entire partition that had XP installed on it was corrupt, and the user had lost all data for his presentation. Ouch!
Is this the norm? Probably not, but it does point out one of the dangers of using a FAT32 file system.
3. Storage efficiency. FAT32 was designed primarily to work with small partition sizes. While it will work for larger partitions, it is best used for partitions of less than 20G.
4. Security. FAT32 has no support for security mechanisms, and files stored on such a volume will be 'world readable'.
So what are some of the advantages? The primary advantage of the FAT32 file system is its compatibility (read/write) with a wide variety of operating systems. The second advantage is the ability to be at least read by almost any modern operating system.
NTFS
The New Technology File System was developed as an improvement over the FAT file system. One of the primary reasons for developing the new file system was to allow the storage of metadata. What type of metadata? Access controls, file names, creation dates, contents are just some examples of metadata recorded by NTFS. Also, the low level plumbing in NTFS allows partition sizes of virtually any size, though the practical limit is 16TB; quite an improvement over FAT32.
So, what are some of the disadvantages of NTFS? From a strictly Windows platform perspective, the disadvantages include:
1. It is not as space efficient on small file partitions, less than 4G. Practically, this limitation may not be much of a consideration, as any partition of 4G for Windows XP limits the flexibility needed to run the operating system and any applications that are installed.
2. Older operating systems do not understand NTFS. If you are installing Windows 9X on your partition, NTFS will not be an option at all.
The advantages of NTFS over FAT32 are where it really shines.
1. It supports the Unicode character set. FAT32 does not support the Unicode character set at all; it only supports< ASCII.
2. It is far more fault tolerant, as it is a journaled file system.
3. Security! NTFS supports both file encryption, as well as access controls.
4. Compression. When space is running low, an NTFS file< system can be compressed to regain space. FAT32 file systems cannot.
OK The brief tour of file systems is over!
The heart of it
Confused yet? Understanding the choices at installation time can potentially be difficult for a user who has never used Windows before. Why do some choose to use the FAT32 file system?
The primary reason that FAT32 is used when installing Boot Camp is the inability of OS X to write files to an NTFS partition [Ed. Note see this month's "Letter From the Editor"]. Often, Boot Camp users cite the need to write files while booted in OS X to the Windows side of the house. Many users consider not being able to write to an NTFS partition a deal breaker. Is there an alternative? Or a solution?
And the twain shall meet...
By default, when installing Boot Camp, the Assistant creates a single partition. Many enterprising individuals have devised ways around the Assistant's behavior. If more than one partition exists, Boot Camp refuses to continue with installation. Never fear, there are ways to get around this limitation. In this article, we are going to use Boot Camp Assistant to create the initial partition. However, once this partition is created, and the machine reboots, we will be altering the standard installation choices. So, if you haven't already, get Boot Camp, start the Assistant, and partition your drive!
The next step is to actually change the way the drive is partitioned by Boot Camp. By default, Boot Camp will create a 200MB partition at the beginning of the disk, as well as the partition needed for installation. To make this solution work, we begin with the deletion of the 200MB partition at the beginning of the disk. At the time of this writing, it appears to have no use. Figure 1 shows a screen that is similar to what should be shown. Select the 200MB partition, and type D as shown in Figure 1.
Figure 1
Note, Figure 1 does not show the 200MB partition. Figure 2 shows the second screen, asking for confirmation when deleting a partition.
Figure 2
Press L, and the partition is deleted. Next, delete the C:\ partition. This partition was also created by Boot Camp. Be certain you do not delete your OS X partition. Typically, it is labeled a letter higher than C. For example, when following this option on my machine, the partition was shown as letter G.
The next few steps are the most important. A screen similar to Figure 3 will appear.
Figure 3
Type C to create the first partition. The XP installation disk does not name the partition, but will simply create it. By default, the first partition created is the installation partition! Usually, more space is allocated to the first partition. As an example, if a partition size of approximately 20G is desired, enter 20000M. After creating the first partition, create another partition in the same way that the first partition was created. Both partitions will display as "[New (Raw)]". What does that mean? It indicates that the partition has been created, but no file system structure exists (yet). It should be labeled C: Create the second partition in the same way. It is may be labeled D: After both partitions have been created, select the C: partition, and hit the Enter button. Doing this causes the XP installation disk to kick off installation. The installer then gives four choices for formatting. For this option, select NTFS. We'll get to why a little bit later...
Question though what are the differences between quick and normal formatting? The Microsoft Knowledge base says it best:
"When you choose to run a regular format on a volume, files are removed from the volume that you are formatting and the hard disk is scanned for bad sectors. The scan for bad sectors is responsible for the majority of the time that it takes to format a volume.
If you choose the Quick format option, format removes files from the partition, but does not scan the disk for bad sectors. Only use this option if your hard disk has been previously formatted and you are sure that your hard disk is not damaged. "
Generally, it is safe to select the quick format unless you have reasons to believe the hard disk is damaged in some way. Once finished, the formatting process starts, followed by the installation of Windows. Now is the time to go and have a cup of coffee, as the installation of Windows can take a few minutes. When prompted to restart windows, simply let it do so. It will continue and finish the installation of Windows.
A by-product of deleting the 200MB partition is the re-appearance of a boot menu. After the installation and setup are finished, the return of the boot delay can be minimized in short order. For this operation, the computer should be booted into Windows XP. After booting into Windows, reconfigure the boot menu, here's how:
1. Select the Start menu
2. Select Run
3. Type bootcfg /timeout 1
Reboot the machine to verify that the configuration has been updated. On reboot, the computer should briefly display the boot menu, and then proceed to boot into Windows XP.
Let's now make our FAT32 sharing partition visible to both operating systems. This action can be accomplished in either operating system, but I find it easier to do in OS X.
First, open Disk Utility to get the device name of the partition that will be erased. In my case, it was shown as disk0s5
Next, open a Terminal, and type the following command:
diskutil eraseVolume "MS-DOS FAT32" ¬
sharingdrive /dev/disk0s5
This command formats the third partition using FAT32. The computer is now set to share files using this partition. So, why all this trouble? Couldn't the Windows partition simply be formatted using FAT32? Certainly! However, the primary reason we are going to the extra trouble to create the third partition is for the reliability, security, and metadata support of the NTFS file system. A system configured in this way should provide a more enduring and reliable solution over the long term.
An added benefit of using NTFS for installation of the Windows operating system is that the install partition will appear in the OS X file system without allowing a user to accidentally delete or modify essential Windows files.
Other Options?
Are there other options? One of the most used alternative options is the use of an available file server. It requires no additional configuration, and has the benefit of using the default Boot Camp installation method.
Another option is third party HFS+ drivers written for the Windows environment. Most products allow full read and write access to the OS X partition within Windows. However, this method has the distinct disadvantage of allowing a compromised Windows operating system to affect the OS X file system, deleting, corrupting or overwriting important OS X system files.
The last, and perhaps simplest, option is the use of removable media. As both operating environments can use USB keys, firewire drives, or CDs and DVDs, this way of sharing files is quite often the quickest and least fussy method of sharing files. This method could also be used to share files in any virtual environment, or with CrossOver.
A Quick Note
Though the focus has been on how to share files from the Windows XP environment to an OS X partition, the above method could potentially be used to share files from any other operating system that understands FAT32, such as any BSD-based operating system, or Linux.
Virtual sharing
What about virtualization? The options are generally far simpler as Parallels and VMware both provide the option of using Shared folders. Quickly, let's take a look at how Parallel's does it.
Figure 4
Figure 4 shows Parallels' implementation of shared folders for the XP environment. It is fairly straightforward. Enter the full path of the folder that is shared, or choose the folder with the Choose button. Note that you can also choose to make it a Read Only folder, which could be important depending on the contents of the folder.
However, a shared folder is primarily aimed at Windows file sharing, not other operating systems. What can be done? Fortunately, OS X provides an elegant solution right out of the box!
Like Falling Off a Log
That's how easy it is! Really... Most modern operating systems understand the Samba (SMB) file sharing protocol, which is provided by default on OS X. Simply turn on Windows File Sharing in OS X. A quick review of the steps needed to turn on Windows (SMB) sharing:
1. Open System Preferences
2. Select the Sharing preference pane .
3. Turn Windows file sharing on by checking the box as shown in Figure 5
4. Click the Start button to start file sharing
5. Next, enable the accounts for sharing files. This step is easily omitted, as OS X requires that specific accounts have Windows file sharing enabled.
Figure 5
You are done! Windows file sharing is now active. Fire up your virtual environment, and access the file share being hosted by the OS X file system. As an example, if the OS X machine's primary IP address is 192.168.1.100, and account enabled is user1, it would be easy to access user1's file space by typing in \\192.168.1.100\user1 in Windows XP. After authenticating, the file share should appear, allowing file sharing between the virtual machine and the OS X machine. Any operating system that understands the SMB protocol should be able to use this file sharing method to allow access. Note that in this example the virtual instance is using shared networking. For the most part, shared networking is the most effective networking mode to use when running a virtual instance.
Samba can be configured to share any mount point on the OS X file system either by hand editing the configuration file, or using various third party applications the typical choice being SharePoints by Hornware.
Crossover
Though still in beta, CrossOver provides the simplest method of accessing the OS X file system. No configuration is required, no special tweaking, no unique setup, it simply works. The entire OS X file system is exposed, and can be written and read. Figure 6 shows what it looks like.
Figure 6
Notice that the entire file system is exposed as drive Z. Any file is accessible using the Windows Open dialog box. Pretty cool!
A Brave New World
Who knew with the announcement of the transition to an Intel based Macintosh that a whole new world of possibilities would open to the Mac user? Boot Camp, Parallels, VMWare, CrossOver...none of these products were available for the PowerPC based Macintosh computer. Now that they are, there is more demand than ever to share files on the same machine! With the new knowledge you now possess, solving any file sharing problems should be a snap!
Philip Rinehart is co-chair of the steering committee leading the Mac OS X Enterprise Project (macenterprise.org) and is the Lead Mac Analyst at Yale University. He has been using Macintosh Computers since the days of the Macintosh SE, and Mac OS X since its Developer Preview Release. Before coming to Yale, he worked as a Unix system administrator for a dot-com company. He can be reached at: philip.rinehart@yale.edu.