humfsify — convert a directory to the format needed by the UML humfs file system
Contents
Arguments
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").
Description
This manual page documents briefly the humfsify command.
This manual page was written for the DebianGNU/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.
Examples
Create a directory on the host and mount it with humfsify
host% mkdiryour-humfs-dir
host% cdhumfs-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% mkdirdir-to-be-humsified
host# mount-olooprootfs/mnt
host% cp-a/mntdir-to-be-humsified/data
host# humfsifyusergroup512M
Then verify it on UML and mount the humfsified directory:
UML# mountnone/your-uml-host-thumfs-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'.
History
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 ownerships.
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 instance.
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.
Name
humfsify — convert a directory to the format needed by the UML humfs file system
See Also
The HostFs(linktoURLhttp://user-mode-linux.sourceforge.net/new/hostfs.html) usage explanation within
the User-Mode-Linux Web Site
Synopsis
humfsify [user] [group] [size]
