func Mount(device, target, mType, options string) error {
	flag, data := ParseOptions(options)
	if flag&REMOUNT != REMOUNT {
		if mounted, err := Mounted(target); err != nil || mounted {
			return err
		}
	}
	return mount(device, target, mType, uintptr(flag), data)
}
Mount will mount filesystem according to the specified configuration, on the
condition that the target path is *not* already mounted. Options must be
specified like the mount or fstab unix commands: "opt1=val1,opt2=val2". See
flags.go for supported option flags.
package mount
import (
	"sort"
	"strconv"
	"strings"
)
type mountError struct {
	op             string
	source, target string
	flags          uintptr
	data           string
	err            error
}
func (e *mountError) Error() string {
	out := e.op + " "
	if e.source != "" {
		out += e.source + ":" + e.target
	} else {
		out += e.target
	}
	if e.flags != uintptr(0) {
		out += ", flags: 0x" + strconv.FormatUint(uint64(e.flags), 16)
	}
	if e.data != "" {
		out += ", data: " + e.data
	}
	out += ": " + e.err.Error()
	return out
}
func (e *mountError) Cause() error {
	return e.err
}
func (e *mountError) Unwrap() error {
	return e.err
}