libstorage-ng
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
storage::Partition Class Reference

A partition of a Partitionable, e.g. More...

#include <Partition.h>

Inheritance diagram for storage::Partition:
[legend]
Collaboration diagram for storage::Partition:
[legend]

Public Member Functions

unsigned int get_number () const
 Get the partition number.
 
PartitionType get_type () const
 Get the partition type.
 
void set_type (PartitionType type)
 Set the partition type.
 
unsigned int get_id () const
 Get the partition id.
 
void set_id (unsigned int id)
 Set the partition id.
 
bool is_boot () const
 Query the boot flag of the partition.
 
void set_boot (bool boot)
 Set the boot flag of the partition.
 
bool is_legacy_boot () const
 Query the legacy boot flag of the partition.
 
void set_legacy_boot (bool legacy_boot)
 Set the legacy boot flag of the partition.
 
bool is_no_automount () const
 Query the no-automount flag of the partition.
 
void set_no_automount (bool no_automount)
 Set the no-automount flag of the partition.
 
const std::string & get_label () const
 Get the partition label.
 
void set_label (const std::string &label)
 Set the partition label.
 
const std::string & get_uuid () const
 Get the partition UUID.
 
PartitionTableget_partition_table ()
 Return the partition table the partition belongs to.
 
const PartitionTableget_partition_table () const
 Return the partition table the partition belongs to.
 
Partitionableget_partitionable ()
 Return the partitionable the partition belongs to.
 
const Partitionableget_partitionable () const
 Return the partitionable the partition belongs to.
 
Region get_unused_surrounding_region () const
 Returns the unused region surrounding the partition (including the partition itself).
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
virtual Partitionclone () const override
 
 Partition (Impl *impl)
 
- Public Member Functions inherited from storage::BlkDevice
const std::string & get_name () const
 
void set_name (const std::string &name)
 
const Regionget_region () const
 
void set_region (const Region &region)
 
unsigned long long get_size () const
 Returns the size of the block device.
 
void set_size (unsigned long long size)
 Set the size of the block device.
 
std::string get_size_string () const
 Returns the size of the block device as a localised string.
 
const Topologyget_topology () const
 Get the topology.
 
void set_topology (const Topology &topology)
 Set the topology.
 
bool is_active () const
 
bool is_read_only () const
 Return whether the block device is read-only.
 
const std::string & get_sysfs_name () const
 
const std::string & get_sysfs_path () const
 
const std::vector< std::string > & get_udev_paths () const
 Return the names of the udev by-path links of the blk device.
 
const std::vector< std::string > & get_udev_ids () const
 Return the names of the udev by-id links of the blk device.
 
bool is_usable_as_blk_device () const
 Checks whether the blk device is in general usable as a blk device.
 
RemoveInfo detect_remove_info () const
 Check whether the device can be removed.
 
const std::string & get_dm_table_name () const
 Return device-mapper table name (dm-table-name for short).
 
void set_dm_table_name (const std::string &dm_table_name)
 Set the device-mapper table name (dm-table-name for short).
 
BlkFilesystemcreate_blk_filesystem (FsType fs_type)
 Creates a block filesystem on the block device.
 
bool has_blk_filesystem () const
 Return whether the block device has a block filesystem.
 
BlkFilesystemget_blk_filesystem ()
 Return the block filesystem of the block device.
 
const BlkFilesystemget_blk_filesystem () const
 Return the block filesystem of the block device.
 
BlkFilesystemcreate_filesystem (FsType fs_type) ST_DEPRECATED
 Creates a block filesystem on the block device.
 
bool has_filesystem () const ST_DEPRECATED
 Return whether the block device has a block filesystem.
 
BlkFilesystemget_filesystem () ST_DEPRECATED
 Return the block filesystem of the block device.
 
const BlkFilesystemget_filesystem () const ST_DEPRECATED
 Return the block filesystem of the block device.
 
Encryptioncreate_encryption (const std::string &dm_table_name) ST_DEPRECATED
 Creates an encryption device on the blk device.
 
Encryptioncreate_encryption (const std::string &dm_table_name, EncryptionType type)
 Creates an encryption device on the blk device.
 
void remove_encryption ()
 Removes an encryption device on the blk device.
 
bool has_encryption () const
 Return whether the block device has an Encryption.
 
Encryptionget_encryption ()
 Return the Encryption of the block device.
 
const Encryptionget_encryption () const
 Return the Encryption of the block device.
 
Bcachecreate_bcache (const std::string &name)
 Creates a Bcache on the blk device.
 
bool has_bcache () const
 Return whether the block device has a BCache.
 
Bcacheget_bcache ()
 Return the Bcache of the block device.
 
const Bcacheget_bcache () const
 Return the Bcache of the block device.
 
BcacheCsetcreate_bcache_cset ()
 Creates a BcacheCset on the blk device.
 
bool has_bcache_cset () const
 Return whether the block device has a BcacheCset.
 
BcacheCsetget_bcache_cset ()
 Return the BcacheCset of the block device.
 
const BcacheCsetget_bcache_cset () const
 Return the BcacheCset of the block device.
 
std::vector< MountByTypepossible_mount_bys () const
 Returns the possible mount-by methods to reference the block device.
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
- Public Member Functions inherited from storage::Device
sid_t get_sid () const
 Return the storage id (sid) of the device.
 
bool operator== (const Device &rhs) const
 
bool operator!= (const Device &rhs) const
 
Devicecopy_to_devicegraph (Devicegraph *devicegraph) const
 Copies the device to the devicegraph.
 
bool exists_in_devicegraph (const Devicegraph *devicegraph) const
 Checks if the device exists in the devicegraph.
 
bool exists_in_probed () const
 Checks if the device exists in the probed devicegraph.
 
bool exists_in_staging () const
 Checks if the device exists in the staging devicegraph.
 
bool exists_in_system () const
 Checks if the device exists in the system devicegraph.
 
std::string get_displayname () const
 
ResizeInfo detect_resize_info () const
 Detect the resize info of the device.
 
bool has_children () const
 
size_t num_children () const
 
bool has_parents () const
 
size_t num_parents () const
 
std::vector< Device * > get_children ()
 
std::vector< const Device * > get_children () const
 
std::vector< Device * > get_children (View view)
 Get all children of the device.
 
std::vector< const Device * > get_children (View view) const
 Get all children of the device.
 
std::vector< Device * > get_parents ()
 
std::vector< const Device * > get_parents () const
 
std::vector< Device * > get_parents (View view)
 Get all parents of the device.
 
std::vector< const Device * > get_parents (View view) const
 Get all parents of the device.
 
std::vector< Device * > get_siblings (bool itself)
 
std::vector< const Device * > get_siblings (bool itself) const
 
std::vector< Device * > get_descendants (bool itself)
 
std::vector< const Device * > get_descendants (bool itself) const
 
std::vector< Device * > get_descendants (bool itself, View view)
 
std::vector< const Device * > get_descendants (bool itself, View view) const
 
std::vector< Device * > get_ancestors (bool itself)
 
std::vector< const Device * > get_ancestors (bool itself) const
 
std::vector< Device * > get_leaves (bool itself)
 
std::vector< const Device * > get_leaves (bool itself) const
 
std::vector< Device * > get_roots (bool itself)
 
std::vector< const Device * > get_roots (bool itself) const
 
std::vector< Holder * > get_in_holders ()
 
std::vector< const Holder * > get_in_holders () const
 
std::vector< Holder * > get_out_holders ()
 
std::vector< const Holder * > get_out_holders () const
 
void remove_descendants () ST_DEPRECATED
 
void remove_descendants (View view)
 Remove all descendants of the device.
 
const std::map< std::string, std::string > & get_userdata () const
 Return the userdata of the device.
 
void set_userdata (const std::map< std::string, std::string > &userdata)
 Set the userdata of the device.
 
std::string get_name_sort_key () const
 Get a sort-key based on the device name.
 
Devicegraphget_devicegraph ()
 Return the devicegraph the device belongs to.
 
const Devicegraphget_devicegraph () const
 Return the devicegraph the device belongs to.
 
Impl & get_impl ()
 
const Impl & get_impl () const
 
void save (xmlNode *node) const ST_DEPRECATED
 

Static Public Member Functions

static Partitioncreate (Devicegraph *devicegraph, const std::string &name, const Region &region, PartitionType type)
 Create a device of type Partition.
 
static Partitionload (Devicegraph *devicegraph, const xmlNode *node)
 
static Partitionfind_by_name (Devicegraph *devicegraph, const std::string &name)
 Find a Partition by its name.
 
static const Partitionfind_by_name (const Devicegraph *devicegraph, const std::string &name)
 Find a Partition by its name.
 
static bool compare_by_number (const Partition *lhs, const Partition *rhs)
 Compare (less than) two Partitions by number.
 
- Static Public Member Functions inherited from storage::BlkDevice
static std::vector< BlkDevice * > get_all (Devicegraph *devicegraph)
 Get all BlkDevices.
 
static std::vector< const BlkDevice * > get_all (const Devicegraph *devicegraph)
 Get all BlkDevices.
 
static BlkDevicefind_by_name (Devicegraph *devicegraph, const std::string &name)
 Find a block device by its name.
 
static const BlkDevicefind_by_name (const Devicegraph *devicegraph, const std::string &name)
 Find a block device by its name.
 
static bool exists_by_any_name (const Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info)
 Check if a block device by any name including any symbolic links in /dev.
 
static BlkDevicefind_by_any_name (Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED
 Find a block device by any name including any symbolic links in /dev.
 
static BlkDevicefind_by_any_name (Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info)
 Find a block device by any name including any symbolic links in /dev.
 
static const BlkDevicefind_by_any_name (const Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED
 Find a block device by any name including any symbolic links in /dev.
 
static const BlkDevicefind_by_any_name (const Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info)
 Find a block device by any name including any symbolic links in /dev.
 
static bool compare_by_dm_table_name (const BlkDevice *lhs, const BlkDevice *rhs)
 Compare (less than) two BlkDevices by DM table name.
 
- Static Public Member Functions inherited from storage::Device
static std::vector< Device * > get_all (Devicegraph *devicegraph)
 Get all Devices.
 
static std::vector< const Device * > get_all (const Devicegraph *devicegraph)
 Get all Devices.
 
static bool compare_by_sid (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by sid.
 
static bool compare_by_name (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by name.
 

Additional Inherited Members

- Protected Member Functions inherited from storage::BlkDevice
 BlkDevice (Impl *impl)
 
- Protected Member Functions inherited from storage::Device
 Device (Impl *impl)
 
void create (Devicegraph *devicegraph) ST_DEPRECATED
 Create a device in the devicegraph.
 
void load (Devicegraph *devicegraph) ST_DEPRECATED
 

Detailed Description

A partition of a Partitionable, e.g.

Disk or Md.

Member Function Documentation

◆ clone()

virtual Partition * storage::Partition::clone ( ) const
overridevirtual

Implements storage::Device.

◆ compare_by_number()

static bool storage::Partition::compare_by_number ( const Partition * lhs,
const Partition * rhs )
static

Compare (less than) two Partitions by number.

See also
get_number()

◆ create()

static Partition * storage::Partition::create ( Devicegraph * devicegraph,
const std::string & name,
const Region & region,
PartitionType type )
static

Create a device of type Partition.

Region is sector-based. Usually this function is not called directly. Instead PartitionTable::create_partition() is called.

See also
Device::create(Devicegraph*)

◆ find_by_name() [1/2]

static const Partition * storage::Partition::find_by_name ( const Devicegraph * devicegraph,
const std::string & name )
static

Find a Partition by its name.

Only the name returned by get_name() is considered.

Exceptions
DeviceNotFound,DeviceHasWrongType

◆ find_by_name() [2/2]

static Partition * storage::Partition::find_by_name ( Devicegraph * devicegraph,
const std::string & name )
static

Find a Partition by its name.

Only the name returned by get_name() is considered.

Exceptions
DeviceNotFound,DeviceHasWrongType

◆ get_id()

unsigned int storage::Partition::get_id ( ) const

Get the partition id.

See also
IdNum

◆ get_label()

const std::string & storage::Partition::get_label ( ) const

Get the partition label.

Can be empty. Only available for partitions on GPT.

In the UEFI spec this is called name instead of label. But many tools, e.g. udev and blkid, use label. Also in fstab PARTLABEL= is used.

◆ get_partition_table() [1/2]

PartitionTable * storage::Partition::get_partition_table ( )

Return the partition table the partition belongs to.

Exceptions
WrongNumberOfChildren,DeviceHasWrongType

◆ get_partition_table() [2/2]

const PartitionTable * storage::Partition::get_partition_table ( ) const

Return the partition table the partition belongs to.

Exceptions
WrongNumberOfChildren,DeviceHasWrongType

◆ get_partitionable() [1/2]

Partitionable * storage::Partition::get_partitionable ( )

Return the partitionable the partition belongs to.

Exceptions
WrongNumberOfChildren,DeviceHasWrongType

◆ get_partitionable() [2/2]

const Partitionable * storage::Partition::get_partitionable ( ) const

Return the partitionable the partition belongs to.

Exceptions
WrongNumberOfChildren,DeviceHasWrongType

◆ get_type()

PartitionType storage::Partition::get_type ( ) const

Get the partition type.

See also
PartitionType

◆ get_unused_surrounding_region()

Region storage::Partition::get_unused_surrounding_region ( ) const

Returns the unused region surrounding the partition (including the partition itself).

The returned region is not aligned.

Exceptions
Exception

◆ get_uuid()

const std::string & storage::Partition::get_uuid ( ) const

Get the partition UUID.

Only available for partitions on GPT. Experimental.

◆ set_boot()

void storage::Partition::set_boot ( bool boot)

Set the boot flag of the partition.

Only supported on MS-DOS.

Notes:

  1. To be standard-conformant, setting the boot flag on a partition clears the boot flag on all other partitions of the partition table.
  2. Partitions on GPT have no boot flag, "set <nr> boot on" with parted on GPT partitions only sets the partition type to EFI System Partition.
See also
PartitionTable::is_partition_boot_flag_supported()
Exceptions
Exception

◆ set_id()

void storage::Partition::set_id ( unsigned int id)

Set the partition id.

See also
IdNum, PartitionTable::is_partition_id_supported()
Exceptions
Exception

◆ set_label()

void storage::Partition::set_label ( const std::string & label)

Set the partition label.

See also
get_label()

◆ set_legacy_boot()

void storage::Partition::set_legacy_boot ( bool legacy_boot)

Set the legacy boot flag of the partition.

Only supported on GPT.

See also
PartitionTable::is_partition_legacy_boot_flag_supported()
Exceptions
Exception

◆ set_no_automount()

void storage::Partition::set_no_automount ( bool no_automount)

Set the no-automount flag of the partition.

Only supported on GPT. Requires parted 3.6.

The flag is called "no_automount" by parted and "no-auto" by systemd, see https://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/.

See also
PartitionTable::is_partition_no_automount_flag_supported()
Exceptions
Exception

◆ set_type()

void storage::Partition::set_type ( PartitionType type)

Set the partition type.

See also
PartitionType
Exceptions
Exception

The documentation for this class was generated from the following file: