Skip to content
  • Mike Fleetwood's avatar
    Add initial loading of LUKS mapping details (#760080) · b77a6be7
    Mike Fleetwood authored and Curtis Gedak's avatar Curtis Gedak committed
    Load basic details of active Device-mapper encryption mappings from the
    kernel.  Use dmsetup active targets.
    
        # cryptsetup luksFormat /dev/sdb5
        # cryptsetup luksFormat /dev/sdb6
        # cryptsetup luksOpen /dev/sdb6 sdb6_crypt
        # ls -l /dev/mapper/sdb6_crypt /dev/dm-0
        lrwxrwxrwx. 1 root root 7 Nov 15 09:03 /dev/mapper/sdb6_crypt -> ../dm-0
        brw-rw----. 1 root disk 253, 0 Nov 15 09:03 /dev/dm-0
        # ls -l /dev/sdb6
        brw-rw----. 1 root disk 8, 22 Nov 15 09:02 /dev/sdb6
        # dmsetup table --target crypt
        sdb6_crypt: 0 1044480 crypt aes-cbc-essiv:sha256 0000000000000000000000000000000000000000000000000000000000000000 0 8:22 4096
    
    So far just load the mapping name and underlying block device reference
    (path or major, minor pair).
    
    Note that all supported kernels appear to report the underlying block
    device as major, minor pair in the dmsetup output.  Underlying block
    device paths are added to the cache when found during a search to avoid
    stat(2) call on subsequent searches for the same path.
    
    Prints debugging to show results, like this:
    
        # ./gpartedbin
        ======================
        libparted : 2.4
        ======================
        DEBUG: /dev/sdb5: LUKS closed
        DEBUG: /dev/sdb6: LUKS open mapping /dev/mapper/sdb6_crypt
    
    Bug 760080 - Implement read-only LUKS support
    b77a6be7