[Libguestfs] [PATCH 2/2] ntfs-3g: Document problems with symlinks and alternatives (RHBZ#663407).

Richard W.M. Jones rjones at redhat.com
Thu Dec 16 20:29:22 UTC 2010


-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v
-------------- next part --------------
>From 933e970b8ac654586bc3595f56b187fab65b1173 Mon Sep 17 00:00:00 2001
From: Richard W.M. Jones <rjones at redhat.com>
Date: Thu, 16 Dec 2010 20:23:17 +0000
Subject: [PATCH 2/2] ntfs-3g: Document problems with symlinks and alternatives (RHBZ#663407).

---
 src/guestfs.pod |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/guestfs.pod b/src/guestfs.pod
index 9cf66f3..bb90de8 100644
--- a/src/guestfs.pod
+++ b/src/guestfs.pod
@@ -587,6 +587,8 @@ documentation for that function for details).
 Libguestfs can mount NTFS partitions.  It does this using the
 L<http://www.ntfs-3g.org/> driver.
 
+=head3 DRIVE LETTERS AND PATHS
+
 DOS and Windows still use drive letters, and the filesystems are
 always treated as case insensitive by Windows itself, and therefore
 you might find a Windows configuration file referring to a path like
@@ -604,6 +606,8 @@ outside the scope of libguestfs, but something that you can easily do.
 Where we can help is in resolving the case insensitivity of paths.
 For this, call L</guestfs_case_sensitive_path>.
 
+=head3 ACCESSING THE WINDOWS REGISTRY
+
 Libguestfs also provides some help for decoding Windows Registry
 "hive" files, through the library C<hivex> which is part of the
 libguestfs project although ships as a separate tarball.  You have to
@@ -612,6 +616,33 @@ C<hivex> functions.  See also the programs L<hivexml(1)>,
 L<hivexsh(1)>, L<hivexregedit(1)> and L<virt-win-reg(1)> for more help
 on this issue.
 
+=head3 SYMLINKS ON NTFS-3G FILESYSTEMS
+
+Ntfs-3g tries to rewrite "Junction Points" and NTFS "symbolic links"
+to provide something which looks like a Linux symlink.  The way it
+tries to do the rewriting is described here:
+
+L<http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/>
+
+The essential problem is that ntfs-3g simply does not have enough
+information to do a correct job.  NTFS links can contain drive letters
+and references to external device GUIDs that ntfs-3g has no way of
+resolving.  It is almost certainly the case that libguestfs callers
+should ignore what ntfs-3g does (ie. don't use L</guestfs_readlink> on
+NTFS volumes).
+
+Instead if you encounter a symbolic link on an ntfs-3g filesystem, use
+L</guestfs_lgetxattr> to read the C<system.ntfs_reparse_data> extended
+attribute, and read the raw reparse data from that (you can find the
+format documented in various places around the web).
+
+=head3 EXTENDED ATTRIBUTES ON NTFS-3G FILESYSTEMS
+
+There are other useful extended attributes that can be read from
+ntfs-3g filesystems (using L</guestfs_getxattr>).  See:
+
+L<http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/>
+
 =head2 USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES
 
 Although we don't want to discourage you from using the C API, we will
-- 
1.7.3.3



More information about the Libguestfs mailing list