NAME
Sys::Linux::Mount - Bindings for the linux mount syscall.
Provides a nice high-ish level wrapper to make mounting filesystems easier.
SYNOPSIS
use Sys::Linux::Mount ':all'; # or :consts, or any specific constant or function
mount("/dev/source", "/target", "ext4", MS_RDONLY|MS_NOEXEC|MS_NODEV, {noacl=>1, ...});
umount("/target");
REQUIREMENTS
This module requires your script to have CAP_SYS_ADMIN, usually by running as root
. Without that every call will likely fail.
FUNCTIONS
All of these functions closely mirror the calling convetions and options of the respective syscalls, and more details can be found in the manpages for those calls
man 2 mount
man 2 umount
mount
mount(source, target, [filesystem, [flags, [options]]])
Mount a filesystem, mostly mirrors the setup for the syscall, taking in flags as a bitwise combination of MS_*
constants. MS_MGC_VAL
is the magic value to say you have no flags.
options should be a hashref containing the options to give filesystem specific options, things like {uid => 'nobody', gid => 'nogroup'}
for mounting CIFS filesystems. These are typically the things you'd see in mount -o uid=nobody,gid=nogroup,...
except for a few like MS_NOATIME or MS_NODEV that aren't filesystem specific.
umount
umount(mountpoint, [flags])
Unmount a filesystem. Possible flag values are MNT_FORCE, MNT_EXPIRE, MNT_DETACH, UMOUNT_NOFOLLOW.
CONSTANTS
The following constants are available to be exported,
MS_RDONLY MS_NOSUID MS_NODEV MS_NOEXEC MS_SYNCHRONOUS MS_REMOUNT MS_MANDLOCK MS_DIRSYNC MS_NOATIME
MS_NODIRATIME MS_BIND MS_MOVE MS_REC MS_SILENT MS_POSIXACL MS_UNBINDABLE MS_PRIVATE MS_SLAVE MS_SHARED
MS_RELATIME MS_KERNMOUNT MS_I_VERSION MS_STRICTATIME MS_LAZYTIME MS_ACTIVE MS_NOUSER MS_MGC_VAL
MNT_FORCE MNT_DETACH MNT_EXPIRE UMOUNT_NOFOLLOW
For details about what they do, see the man pages for the mount syscall man 2 mount
AUTHOR
Ryan Voots simcop@cpan.org