salt.modules.parted

Module for managing partitions on POSIX-like systems.

depends:
  • parted, partprobe, lsblk (usually parted and util-linux packages)

Some functions may not be available, depending on your version of parted.

Check the manpage for parted(8) for more information, or the online docs at:

http://www.gnu.org/software/parted/manual/html_chapter/parted_2.html

In light of parted not directly supporting partition IDs, some of this module has been written to utilize sfdisk instead. For further information, please reference the man page for sfdisk(8).

salt.modules.parted.align_check(device, part_type, partition)

Check if partition satisfies the alignment constraint of part_type. Type must be "minimal" or "optimal".

CLI 范例:

salt '*' partition.align_check /dev/sda minimal 1
salt.modules.parted.check(device, minor)

Checks if the file system on partition <minor> has any errors.

CLI 范例:

salt '*' partition.check 1
salt.modules.parted.cp(device, from_minor, to_minor)

Copies the file system on the partition <from-minor> to partition <to-minor>, deleting the original contents of the destination partition.

CLI 范例:

salt '*' partition.cp /dev/sda 2 3
salt.modules.parted.exists(device='')

Check to see if the partition exists

CLI 范例:

salt '*' partition.exists /dev/sdb1
salt.modules.parted.get_block_device()

Retrieve a list of disk devices

2014.7.0 新版功能.

CLI 范例:

salt '*' partition.get_block_device
salt.modules.parted.get_id(device, minor)

Prints the system ID for the partition. Some typical values are:

 b: FAT32 (vfat)
 7: HPFS/NTFS
82: Linux Swap
83: Linux
8e: Linux LVM
fd: Linux RAID Auto

CLI 范例:

salt '*' partition.get_id /dev/sda 1
salt.modules.parted.list(device, unit=None)

Prints partition information of given <device>

CLI范例:

salt '*' partition.list /dev/sda
salt '*' partition.list /dev/sda unit=s
salt '*' partition.list /dev/sda unit=kB
salt.modules.parted.mkfs(device, fs_type)

Makes a file system <fs_type> on partition <device>, destroying all data that resides on that partition. <fs_type> must be one of "ext2", "fat32", "fat16", "linux-swap" or "reiserfs" (if libreiserfs is installed)

CLI 范例:

salt '*' partition.mkfs /dev/sda2 fat32
salt.modules.parted.mklabel(device, label_type)

Create a new disklabel (partition table) of label_type.

Type should be one of "aix", "amiga", "bsd", "dvh", "gpt", "loop", "mac", "msdos", "pc98", or "sun".

CLI 范例:

salt '*' partition.mklabel /dev/sda msdos
salt.modules.parted.mkpart(device, part_type, fs_type=None, start=None, end=None)

Make a part_type partition for filesystem fs_type, beginning at start and ending at end (by default in megabytes). part_type should be one of "primary", "logical", or "extended".

CLI范例:

salt '*' partition.mkpart /dev/sda primary fs_type=fat32 start=0 end=639
salt '*' partition.mkpart /dev/sda primary start=0 end=639
salt.modules.parted.mkpartfs(device, part_type, fs_type, start, end)

Make a <part_type> partition with a new filesystem of <fs_type>, beginning at <start> and ending at <end> (by default in megabytes).

<part_type> should be one of "primary", "logical", or "extended". <fs_type> must be one of "ext2", "fat32", "fat16", "linux-swap" or "reiserfs" (if libreiserfs is installed)

CLI 范例:

salt '*' partition.mkpartfs /dev/sda logical ext2 440 670
salt.modules.parted.name(device, partition, name)

Set the name of partition to name. This option works only on Mac, PC98, and GPT disklabels. The name can be placed in quotes, if necessary.

CLI 范例:

salt '*' partition.name /dev/sda 1 'My Documents'
salt.modules.parted.probe(*devices)

Ask the kernel to update its local partition data. When no args are specified all block devices are tried.

Caution: Generally only works on devices with no mounted partitions and may take a long time to return if specified devices are in use.

CLI范例:

salt '*' partition.probe
salt '*' partition.probe /dev/sda
salt '*' partition.probe /dev/sda /dev/sdb
salt.modules.parted.rescue(device, start, end)

Rescue a lost partition that was located somewhere between start and end. If a partition is found, parted will ask if you want to create an entry for it in the partition table.

CLI 范例:

salt '*' partition.rescue /dev/sda 0 8056
salt.modules.parted.resize(device, minor, start, end)

Resizes the partition with number <minor>.

The partition will start <start> from the beginning of the disk, and end <end> from the beginning of the disk. resize never changes the minor number. Extended partitions can be resized, so long as the new extended partition completely contains all logical partitions.

CLI 范例:

salt '*' partition.resize /dev/sda 3 200 850
salt.modules.parted.rm(device, minor)

Removes the partition with number <minor>.

CLI 范例:

salt '*' partition.rm /dev/sda 5
salt.modules.parted.set(device, minor, flag, state)

Changes a flag on the partition with number <minor>.

A flag can be either "on" or "off". Some or all of these flags will be available, depending on what disk label you are using.

Valid flags are: bios_grub, legacy_boot, boot, lba, root, swap, hidden, raid,
LVM, PALO, PREP, DIAG

CLI 范例:

salt '*' partition.set /dev/sda 1 boot on
salt.modules.parted.set_id(device, minor, system_id)

Sets the system ID for the partition. Some typical values are:

 b: FAT32 (vfat)
 7: HPFS/NTFS
82: Linux Swap
83: Linux
8e: Linux LVM
fd: Linux RAID Auto

CLI 范例:

salt '*' partition.set_id /dev/sda 1 83
salt.modules.parted.system_types()

List the system types that are supported by the installed version of sfdisk

CLI 范例:

salt '*' partition.system_types
salt.modules.parted.toggle(device, partition, flag)
Toggle the state of <flag> on <partition>. Valid flags are the same as
the set command.

CLI 范例:

salt '*' partition.toggle /dev/sda 1 boot