mount

package
v0.12.0-beta.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2021 License: MPL-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Mount added in v0.5.0

func Mount(mountpoints *Points) (err error)

Mount mounts the device(s).

func Move added in v0.5.0

func Move(mountpoints *Points, prefix string) (err error)

Move moves the device(s). TODO(andrewrynhard): We need to skip calling the move method on mountpoints that are a child of another mountpoint. The kernel will handle moving the child mountpoints for us.

func PrefixMountTargets added in v0.7.0

func PrefixMountTargets(mountpoints *Points, targetPrefix string) error

PrefixMountTargets prefixes all mountpoints targets with fixed path.

func SystemPartitionMount added in v0.7.0

func SystemPartitionMount(r runtime.Runtime, label string, opts ...Option) (err error)

SystemPartitionMount mounts a system partition by the label.

func SystemPartitionUnmount added in v0.7.0

func SystemPartitionUnmount(r runtime.Runtime, label string) (err error)

SystemPartitionUnmount unmounts a system partition by the label.

func Unmount added in v0.5.0

func Unmount(mountpoints *Points) (err error)

Unmount unmounts the device(s).

func UnmountAll added in v0.8.2

func UnmountAll() error

UnmountAll attempts to unmount all the mounted filesystems via "self" mountinfo.

Types

type Flags added in v0.9.0

type Flags uint

Flags is the mount flags.

const (
	// ReadOnly is a flag for setting the mount point as readonly.
	ReadOnly Flags = 1 << iota
	// Shared is a flag for setting the mount point as shared.
	Shared
	// Resize indicates that a the partition for a given mount point should be
	// resized to the maximum allowed.
	Resize
	// Overlay indicates that a the partition for a given mount point should be
	// mounted using overlayfs.
	Overlay
	// SkipIfMounted is a flag for skipping mount if the mountpoint is already mounted.
	SkipIfMounted
	// SkipIfNoFilesystem is a flag for skipping formatting and mounting if the mountpoint has not filesystem.
	SkipIfNoFilesystem
)

func (Flags) Check added in v0.9.0

func (f Flags) Check(flags Flags) bool

Check checks if all provided flags are set.

func (Flags) Intersects added in v0.9.0

func (f Flags) Intersects(flags Flags) bool

Intersects checks if at least one flag is set.

type Hook added in v0.9.0

type Hook func(p *Point) error

Hook represents pre/post mount hook.

type Option

type Option func(*Options)

Option is the functional option func.

func WithEncryptionConfig added in v0.9.0

func WithEncryptionConfig(cfg config.Encryption) Option

WithEncryptionConfig partition encryption configuration.

func WithFlags added in v0.9.0

func WithFlags(flags Flags) Option

WithFlags is a functional option to set up mount flags.

func WithPostUnmountHooks added in v0.9.0

func WithPostUnmountHooks(hooks ...Hook) Option

WithPostUnmountHooks adds functions to be called after unmounting the partition.

func WithPreMountHooks added in v0.9.0

func WithPreMountHooks(hooks ...Hook) Option

WithPreMountHooks adds functions to be called before mounting the partition.

func WithPrefix

func WithPrefix(o string) Option

WithPrefix is a functional option for setting the mount point prefix.

type Options

type Options struct {
	Loopback         string
	Prefix           string
	MountFlags       Flags
	PreMountHooks    []Hook
	PostUnmountHooks []Hook
	Encryption       config.Encryption
}

Options is the functional options struct.

func NewDefaultOptions

func NewDefaultOptions(setters ...Option) *Options

NewDefaultOptions initializes a Options struct with default values.

type Point

type Point struct {
	*Options
	// contains filtered or unexported fields
}

Point represents a Linux mount point.

func NewMountPoint

func NewMountPoint(source, target, fstype string, flags uintptr, data string, setters ...Option) *Point

NewMountPoint initializes and returns a Point struct.

func SystemMountPointForLabel added in v0.5.0

func SystemMountPointForLabel(device *blockdevice.BlockDevice, label string, opts ...Option) (mountpoint *Point, err error)

SystemMountPointForLabel returns a mount point for the specified device and label.

func (*Point) Data

func (p *Point) Data() string

Data returns the mount points data field.

func (*Point) Flags

func (p *Point) Flags() uintptr

Flags returns the mount points flags field.

func (*Point) Fstype

func (p *Point) Fstype() string

Fstype returns the mount points fstype field.

func (*Point) GrowFilesystem added in v0.2.0

func (p *Point) GrowFilesystem() (err error)

GrowFilesystem grows a partition's filesystem to the maximum size allowed. NB: An XFS partition MUST be mounted, or this will fail.

func (*Point) IsMounted added in v0.4.0

func (p *Point) IsMounted() (bool, error)

IsMounted checks whether mount point is active under /proc/mounts.

func (*Point) Mount added in v0.2.0

func (p *Point) Mount() (err error)

Mount attempts to retry a mount on EBUSY. It will attempt a retry every 100 milliseconds over the course of 5 seconds.

func (*Point) Move added in v0.2.0

func (p *Point) Move(prefix string) (err error)

Move moves a mountpoint to a new location with a prefix.

func (*Point) ResizePartition added in v0.2.0

func (p *Point) ResizePartition() (resized bool, err error)

ResizePartition resizes a partition to the maximum size allowed.

func (*Point) Source

func (p *Point) Source() string

Source returns the mount points source field.

func (*Point) Target

func (p *Point) Target() string

Target returns the mount points target field.

func (*Point) Unmount added in v0.2.0

func (p *Point) Unmount() (err error)

Unmount attempts to retry an unmount on EBUSY. It will attempt a retry every 100 milliseconds over the course of 5 seconds.

type PointMap

type PointMap = map[string]*Point

PointMap represents a unique set of mount points.

type Points

type Points struct {
	// contains filtered or unexported fields
}

Points represents an ordered set of mount points.

func BPFMountPoints added in v0.5.0

func BPFMountPoints() (mountpoints *Points, err error)

BPFMountPoints returns the bpf mount points.

func CGroupMountPoints added in v0.5.0

func CGroupMountPoints() (mountpoints *Points, err error)

CGroupMountPoints returns the cgroup mount points.

func NewMountPoints

func NewMountPoints() *Points

NewMountPoints initializes and returns a Points struct.

func OverlayMountPoints added in v0.5.0

func OverlayMountPoints() (mountpoints *Points, err error)

OverlayMountPoints returns the mountpoints required to boot the system. These mountpoints are used as overlays on top of the read only rootfs.

func PseudoMountPoints added in v0.5.0

func PseudoMountPoints() (mountpoints *Points, err error)

PseudoMountPoints returns the mountpoints required to boot the system.

func PseudoSubMountPoints added in v0.5.0

func PseudoSubMountPoints() (mountpoints *Points, err error)

PseudoSubMountPoints returns the mountpoints required to boot the system.

func SquashfsMountPoints added in v0.5.0

func SquashfsMountPoints(prefix string) (mountpoints *Points, err error)

SquashfsMountPoints returns the mountpoints required to boot the system.

func SystemMountPointsForDevice added in v0.5.0

func SystemMountPointsForDevice(devpath string, opts ...Option) (mountpoints *Points, err error)

SystemMountPointsForDevice returns the mountpoints required to boot the system. This function is called exclusively during installations ( both image creation and bare metall installs ). This is why we want to look up device by specified disk as well as why we don't want to grow any filesystems.

func (*Points) Get

func (p *Points) Get(key string) (value *Point, ok bool)

Get gets an ordered value.

func (*Points) Iter

func (p *Points) Iter() *PointsIterator

Iter initializes and returns a mount point iterator.

func (*Points) IterRev

func (p *Points) IterRev() *PointsIterator

IterRev initializes and returns a mount point iterator that advances in reverse.

func (*Points) Len added in v0.7.0

func (p *Points) Len() int

Len returns number of mount points.

func (*Points) Set

func (p *Points) Set(key string, value *Point)

Set sets an ordered value.

type PointsIterator

type PointsIterator struct {
	// contains filtered or unexported fields
}

PointsIterator represents an iteratable group of mount points.

func (*PointsIterator) Err

func (i *PointsIterator) Err() error

Err returns an error.

func (*PointsIterator) Key

func (i *PointsIterator) Key() string

Key returns the current key.

func (*PointsIterator) Next

func (i *PointsIterator) Next() bool

Next advances the iterator to the next value.

func (*PointsIterator) Value

func (i *PointsIterator) Value() *Point

Value returns current mount point.

type RetryFunc added in v0.2.0

type RetryFunc func(*Point) error

RetryFunc defines the requirements for retrying a mount point operation.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL