humfsify — convert a directory to the format needed by the UML humfs
humfsify [user] [group] [size]
This manual page documents briefly the humfsify command.
This manual page was written for the Debian GNU/Linux distribution
because the original program does not have a manual page. Instead, it
has documentation in HTML format; see below.
humfsify is a Perl script necessary to convert a directory to a format
expected by the UML humfs file system.
UMLFS was born with the idea to substitute the Hostfs implementation
with a proper one for the UML purpose: when you manage files with
Hostfs within UML you need to work with two different permission layers
(the Host one and the UML one), which have different ideas of
This becomes evident when you need to create a file as a non-root user
on UML: you first need to interact with the UML file system
implementation, and then with the host side.
The result of a file creation on a mounted hostfs file system is not
what you expected: you can see that the file permissions refer to the
Host side user rather than the UML creator.
The Host side user is to be intended as the UML instance launcher,
meanwhile the UML side user is the one you used to log in the UML
You can encounter a more-critical problem when creating a device node,
operation that usually requires root privileges: you used a common user
to launch the UML and, since the operation is done on the Host, it
fails, even if you logged in as root.
Thus you need a set of tools which requires to bypass the Hostfs
permission checks on the Host side: this is done by separating the file
permissions and the ownership from the host’s files. This is the
concept behind the HumFs and its humfsify implementation.
user This is the user that needs to ’convert’ a directory to the
UML file system to use UML. This is the host user who will
be using this filesystem from within UML. It may be
specified as either a user name or a numeric user id.
group This is the group which your UML user belongs to. This may
be either a group name or a numeric group id
size This is the size of the file system as seen within the UML
instance. It must be expressed in Gigabytes ("G"), Megabytes
("M"), or KiloBytes ("K").
Create a directory on the host and mount it with humfsify
host% mkdir your-humfs-dir
host% cd humfs-dir
Within this directory create a new one where you would like to have a
UML-like hierarchy, i.e. you can loop-mount an UML rootfs
host% mkdir dir-to-be-humsified
host# mount -o loop rootfs /mnt
host% cp -a /mnt dir-to-be-humsified/data
host# humfsify user group 512M
Then verify it on UML and mount the humfsified directory:
UML# mount none /your-uml-host -t humfs -o
where ’/your-uml-mount-point’ is the mount point on UML for the
humfsified file system, and .../dir-to-be-humfsified is the humfsified
directory in the example above. The ’-t’ mount option specifies that
the file system is to be mounted as ’humfs’.
The HostFs (link to URL http://user-mode-
linux.sourceforge.net/new/hostfs.html) usage explanation within the
User-Mode-Linux Web Site
humfsify was written by Jeff Dike.
This manual page was written by Stefano Melchior
firstname.lastname@example.org for the Debian GNU/Linux system, based on
material in the Official User Mode Linux Web Site.