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).
![[Note]](../images/note.png) 
          Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://github.com/storaged-project/libblockdev/releases/download/3.4.0/libblockdev-3.4.0.tar.gz
Download MD5 sum: b796b839c6971917718caedbdc165487
Download size: 1.1 MB
Estimated disk space required: 16 MB
Estimated build time: 0.1 SBU
GLib-2.86.1 (GObject Introspection required for GNOME)
cryptsetup-2.8.1, keyutils-1.6.3, libatasmart-0.19, libbytesize-2.11, libnvme-1.15, and LVM2-2.03.36
btrfs-progs-6.17, GTK-Doc-1.35.1, JSON-GLib-1.10.8, mdadm-4.4, parted-3.6, smartmontools-7.5, volume_key, ndctl, and targetcli (for tests)
Install libblockdev by running the following commands:
./configure --prefix=/usr      \
            --sysconfdir=/etc  \
            --with-python3     \
            --without-escrow   \
            --without-gtk-doc  \
            --without-lvm      \
            --without-lvm_dbus \
            --without-nvdimm   \
            --without-tools    \
            --without-smartmontools &&
make
        The test suite requires targetcli, which is not a part of BLFS.
          Now, as the root user:
        
make install
          --without-escrow: This
          switch allows building libblockdev
          without volume_key installed.
        
          --without-lvm --without-lvm_dbus --without-tools: The combination of
          these switches allows building libblockdev without parted-3.6
          installed. Remove it if you've installed parted-3.6 and wish
          to build the lvm-cache-stats or vfat-resize utilities, or wish
          libblockdev to support logical
          volumes.
        
          --without-smartmontools:
          This switch allows building libblockdev without JSON-GLib-1.10.8 or
          smartmontools-7.5 installed. Remove it if
          you have both packages installed.
        
          --without-btrfs --without-mdraid
          --without-tools: The combination of these switches allows
          building libblockdev without
          libbytesize-2.11 installed. The --without-mdraid option will break UDisks-2.10.2, so
          don't use it unless you really know what you are doing.
        
          --without-crypto: This switch allows
          building libblockdev without
          cryptsetup-2.8.1 or keyutils-1.6.3
          installed. This switch will break UDisks-2.10.2, so don't
          use it unless you really know what you are doing.
        
          --without-dm --without-lvm --without-lvm_dbus
          --without-mpath: The combination of these switches allows
          building libblockdev without
          LVM2-2.03.36 installed. The --without-dm and --without-mpath options are not in the instructions
          provided by the book because LVM2-2.03.36 is
          required for cryptsetup-2.8.1 and cryptsetup-2.8.1 is a recommended dependency
          of libblockdev anyway.
        
          --without-nvme: This switch allows
          building libblockdev without
          libnvme-1.15 installed. This switch will break
          UDisks-2.10.2, so don't use it unless you
          really know what you are doing.