partition

package
v0.5.9 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2024 License: MPL-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package partition provides common utils for system partition format.

Package partition provides common utils for system partition format.

Index

Constants

View Source
const (
	MiB = 1024 * 1024

	EFISize      = 100 * MiB
	BIOSGrubSize = 1 * MiB
	BootSize     = 1000 * MiB
	// EFIUKISize is the size of the EFI partition when UKI is enabled.
	// With UKI all assets are stored in the EFI partition.
	// This is the size of the old EFISize + BIOSGrubSize + BootSize.
	EFIUKISize = EFISize + BIOSGrubSize + BootSize
	MetaSize   = 1 * MiB
	StateSize  = 100 * MiB
)

Partition default sizes.

Variables

This section is empty.

Functions

func Format

func Format(devname string, t *FormatOptions, printf func(string, ...any)) error

Format zeroes the device and formats it using filesystem type provided.

func Locate

func Locate(pt *gpt.GPT, label string) (*gpt.Partition, error)

Locate existing partition on the disk by label.

func Partition

func Partition(pt *gpt.GPT, pos int, device string, partitionOpts Options, printf func(string, ...any)) (string, error)

Partition creates a new partition on the specified device. Returns the path to the newly created partition.

Types

type FileSystemType

type FileSystemType = string

FileSystemType is used to format partitions.

const (
	FilesystemTypeNone FileSystemType = "none"
	FilesystemTypeXFS  FileSystemType = "xfs"
	FilesystemTypeVFAT FileSystemType = "vfat"
)

Filesystem types.

type FormatOptions

type FormatOptions struct {
	Label          string
	FileSystemType FileSystemType
	Force          bool
}

FormatOptions contains format parameters.

func NewFormatOptions

func NewFormatOptions(label string) *FormatOptions

NewFormatOptions creates a new format options.

type Options

type Options struct {
	PartitionLabel     string
	PartitionType      Type
	Size               uint64
	LegacyBIOSBootable bool
}

Options contains the options for creating a partition.

func NewPartitionOptions

func NewPartitionOptions(label string, uki bool) *Options

NewPartitionOptions returns a new PartitionOptions.

type Type

type Type = string

Type in partition table.

const (
	EFISystemPartition  Type = "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"
	BIOSBootPartition   Type = "21686148-6449-6E6F-744E-656564454649"
	LinuxFilesystemData Type = "0FC63DAF-8483-4772-8E79-3D69D8477DE4"
)

GPT partition types.

TODO: should be moved into the blockdevice library.

Jump to

Keyboard shortcuts

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