VirtualDisk is a Syllable driver for mounting virtual hard disks created by Microsoft Virtual PC. It provides full read-write support, although only for 'Fixed-size' disks. (The alternatives are 'Dynamically-expanding' or 'Differencing' disks, which are not currently supported.)
--> Download it here! <--
How to install it - How to use it - Known issues & bugs
How to install it:
- Download the .zip file and extract it to /Applications/VirtualDisk
- Copy the file virtualdisk to /system/drivers/dev/disk ; this is the driver.
- Use the command-line util mountvhd to mount & unmount virtual disks; see below.
- To uninstall it, delete the file /system/drivers/dev/disk/virtualdisk and the directory /Applications/VirtualDisk.
Use the command-line tool 'mountvhd' to mount or unmount virtual disks. (The .vhd file must already be on your Syllable system; ie it must be stored on a filesystem that you can mount and read in Syllable.)
For example, suppose you want to access files on a FAT filesystem, on the first partition on the virtual disk file ~/virtual-hard-disk.vhd:
- Open a Terminal window
- Mount the virtual disk with the following commands:
cd /Applications/VirtualDisk mountvhd -m ~/virtual-hard-disk.vhd
This creates a directory /dev/disk/virtual/virtual-hard-disk.vhd/, with a raw node (referring to the entire disk), and nodes 0, 1 etc for each valid partition on the disk. Any number of virtual disks can be mounted concurrently; they each get a directory /dev/disk/virtual/filename. -
Mount the filesystem on the first partition:
mkdir /MountPoint mount /dev/disk/virtual/virtual-hard-disk.vhd/0 /MountPoint
Now, the files should be accessible under /MountPoint. -
To unmount the virtual disk, first unmount the filesystem:
unmount /MountPoint
then unmount the virtual disk:mountvhd -u ~/virtual-hard-disk.vhd
- Only fixed-size disks created by Microsoft Virtual PC are supported
- There is a limit of 16 partitions - any after the 16th partition table entry won't be accessible.
- In Syllable 0.6.4, if you attempt to mount an ext2 filesystem on the virtual disk, and the mount fails, then you won't be able to unmount the virtual disk. (This happens if you don't specify the filesystem to use in the mount command, and the ext2 driver probes the partition to find out what kind of filesystem it is). This is a bug in the ext2 driver. To avoid it, either disable the ext2 driver (move it from /system/drivers/fs) or specify the correct filesystem with a -t option when mounting. This is fixed in Syllable 0.6.5 and later.
- I haven't tested it very thoroughly - there are probably more bugs to be found. In particular, I have only tested it with .vhd files created by Virtual PC 6.0 on my Windows Vista system. Also, I haven't tested it with more than two virtual disks mounted.