Mac OS X Panther for Unix Geeks

vndevice

Syntax

vndevice { attach shadow } device pathname vndevice detach device

Description

Attaches or detaches a virtual device node to or from a disk image file. (Note that the functionality of vndevice is incorporated within hdiutil .) Modifications to data on the attached disk image will instead be written to the virtual node, or shadow image , and subsequent access to that data will be from the shadow. This allows effective read/write access to data on a disk image that should not or cannot be modified.

Options/Usage

attach

Attaches a device node to a disk image designated by pathname .

detach

Detaches a device node from a disk image.

shadow

Associates an attached device node to a shadow disk image designated by pathname .

device

The device node filename; e.g., /dev/vn0 .

Examples

Create a disk image, attach a virtual device node to it, and mount it:

% hdiutil create test.dmg -volname test -size 5m -fs HFS+ -layout NONE % sudo vndevice attach /dev/vn0 test.dmg % mkdir mount_point % sudo mount -t hfs /dev/vn0 mount_point

Wait a minute, and then:

% touch mount_point/test_file % ls -l test.dmg

Note that the modification time on the disk image is current, reflecting the change you made by creating a test file.

Now set up shadowing. Unmount the volume first, then create the shadow disk image, attach the virtual node to it, and mount it again:

% sudo umount /dev/vn0 % hdiutil create shadow.dmg -volname shadow -size 5m -fs HFS+ -layout NONE % sudo vndevice shadow /dev/vn0 shadow.dmg % sudo mount -t hfs /dev/vn0 mount_point

Wait a minute, and then:

% rm mount_point/test_file % ls -l test.dmg; ls -l shadow.dmg

The modification time on the test image wasn't updated, but the shadow image reflects the change you just made, indicating that writes are being passed through to the shadow.

Finish up by unmounting the volume and detaching the virtual node:

% sudo umount /dev/vn0 % sudo vndevice detach /dev/vn0

Location

/usr/libexec

Категории