Features
=========
*libblockdev* is a C library supporting GObject introspection for manipulation
of block devices. It has a plugin-based architecture where each technology (like
LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly
with multiple implementations (e.g. using LVM CLI or the new LVM DBus
API). Every plugin is also usable as a standalone shared library.
partitions
-----------
:supported technologies:
MBR, GPT, partition manipulation on partitionable devices
:functions:
* mklabel
* create_part
* resize_part
* remove_part
filesystems
------------
:supported technologies:
* DONE: ext4, xfs, vfat
:functions:
* make_FSTYPE
* resize_FSTYPE
* check_FSTYPE
* repair_FSTYPE
* change_label_FSTYPE
* wipefs
* mount
* unmount
* generic_resize [TODO]
LVM
----
:supported technologies:
"plain LVM", LVM Thin Provisioning
:TODO:
* read-only locking and default config
:functions:
* get_global_config
* set_global_config
* get_possible_pe_sizes
* is_supported_pe_size
* get_max_lv_size
* round_size_to_pe
* get_lv_physical_size
* get_thpool_padding
* is_valid_thpool_metadata_size
* is_valid_thpool_chunk_size
* pvcreate
* pvresize
* pvremove
* pvmove
* pvscan
* pvinfo
* pvs
* vgcreate
* vgextend
* vgremove
* vgactivate
* vgdeactivate
* vgreduce
* vginfo
* vgs
* lvorigin
* lvcreate
* lvremove
* lvresize
* lvactivate
* lvdeactivate
* lvsnapshotcreate
* lvsnapshotmerge
* lvinfo
* lvs
* thpoolcreate
* thlvcreate
* thlvpoolname
* thsnapshotcreate
* cache_get_default_md_size
* cache_get_mode_str
* cache_get_mode_from_str
* cache_create_pool
* cache_attach
* cache_detach
* cache_create_cached_lv
* cache_pool_name
* cache_stats
* data_lv_name
* metadata_lv_name
* thpool_convert
* cache_pool_convert
BTRFS
------
:supported technologies:
btrfs as both filesystem and multi-device volume, subvolumes, snapshots
:functions:
* create_volume
* add_device
* remove_device
* list_devices
* create_subvolume
* delete_subvolume
* list_subvolumes
* get_default_subvolume
* set_default_subvolume
* create_snapshot
* filesystem_info
* mkfs
* resize
* check
* repair
* change_label
SWAP
-----
:supported technologies:
swap partitions/LVs, swap files
:functions:
* mkswap
* swapon
* swapoff
* swapstatus
MDRAID
-------
:supported technologies:
all RAID levels supported by the MD RAID
:functions:
* get_superblock_size
* create
* destroy
* activate
* deactivate
* run
* nominate
* denominate
* add
* remove
* examine
* canonicalize_uuid
* get_md_uuid
* detail
* node_from_name
* name_from_node
CRYPTO/LUKS
------------
:supported technologies:
only LUKS encrypted devices
:functions:
* generate_backup_passphrase
* device_is_luks
* luks_uuid
* luks_status
* luks_format
* luks_open
* luks_close
* luks_add_key
* luks_remove_key
* luks_change_key
* luks_resize
* escrow_device
MULTIPATH
----------
:supported technologies:
just very basic functionality
:functions:
* flush_mpaths
* device_is_mpath_member
* get_mpath_members
* set_friendly_names
LOOP
-----
:supported technologies:
basic operations with loop devices
:functions:
* get_backing_file
* get_loop_name
* loop_setup
* loop_teardown
DEVICE MAPPER
--------------
:supported technologies:
basic operations with raw device mapper and DM RAID sets
:functions:
* create_linear
* remove
* node_from_name
* name_from_node
* map_exists
* get_member_raid_sets
* activate_raid_set
* deactivate_raid_set
* get_raid_set_type
s390
-----
:supported technologies:
DASD, zFCP
:functions:
* s390_dasd_format
* s390_dasd_needs_format
* s390_dasd_online
* s390_dasd_is_ldl
* s390_dasd_is_fba
* s390_sanitize_dev_input
* s390_zfcp_sanitize_wwpn_input
* s390_zfcp_sanitize_lun_input
* s390_zfcp_online
* s390_zfcp_scsi_offline
* s390_zfcp_offline
KBD (Kernel Block Devices)
---------------------------
:supported technologies:
bcache, zram
:functions:
* bcache_create
* bcache_destroy
* bcache_attach
* bcache_detach
* bcache_status
* bcache_set_mode
* bcache_get_mode
* bcache_get_backing_device
* bcache_get_cache_device
* zram_create_devices
* zram_destroy_devices
* zram_get_stats
utils
------
Library (not a plugin) providing utility functions usable for multiple plugins
and any third-party code.
:functions:
* exec_and_report_error
* exec_and_capture_output
* size_human_readable
* size_from_spec
* init_logging
* version_cmp
* check_util_version