diff options
Diffstat (limited to 'morphlib/fsutils.py')
-rw-r--r-- | morphlib/fsutils.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/morphlib/fsutils.py b/morphlib/fsutils.py index 87b4cf3b..84bae8cb 100644 --- a/morphlib/fsutils.py +++ b/morphlib/fsutils.py @@ -59,6 +59,21 @@ def mount(runcmd, partition, mount_point, runcmd(['mount', partition, mount_point] + fstype + options) +def overlay_mount(runcmd, partition, mount_point, + lowerdir, upperdir, workdir, method): # pragma: no cover + if method == 'overlayfs': + options = '-olowerdir=%s,upperdir=%s,workdir=%s' % \ + (lowerdir, upperdir, workdir) + mount(runcmd, partition, mount_point, 'overlay', options) + elif method == 'unionfs-fuse': + if not os.path.exists(mount_point): + os.mkdir(mount_point) + dir_string = '%s=RW:%s=RO' % (upperdir, lowerdir) + runcmd(['unionfs', '-o', 'cow', dir_string, mount_point]) + else: + raise Exception('Union filesystem %s not supported' % method) + + def unmount(runcmd, mount_point): # pragma: no cover runcmd(['umount', mount_point]) |