68

I installed Ubuntu 11.10 with the alternate CD and encrypted the whole system (except boot) with the encrypted LVM. Everything works great as before, but I would like to change the password of the encrypted LVM. I tried to follow the Tips and Tricks of this article, but it does not work. After typing:

sudo cryptsetup luksDump /dev/sda5

It says: "Device /dev/sd5 doesn't exist or access denied." I thought the encrypted partition is /dev/sda5. Any help how to change the password?

  • 1
    Oops, it was indeed a typo! I always typed /dev/sd5 instead of /dev/sd5. Thanks Hamish for the hint. So I answer the question with the information from Andreas Härter (blog.andreas-haerter.com/2011/06/18/ubuntu-full-disk-encryption-lvm-luks#tips_and_tricks) – Filbuntu Mar 5 '12 at 12:53
  • 2
    possible duplicate of How to change LUKS passphrase? – Gilles 'SO- stop being evil' Jul 11 '12 at 23:09
68

Here is the answer that worked for me, after Hamish helped me to realize my typo.

WARNING (for older Ubuntu versions, newer (e.g. 19.04) should be bug-fixed but be careful anyway): If you only have one key and remove it before adding another, you will render your disk inaccessible after rebooting! This also means you can not add a new key anymore afterwards. Thanks waffl and khaimovmr for these helpful comments.

First, you need to find out which is the encrypted LVM partition, it may be sda3, but it can also be sda5 (default on Ubuntu LVM), sdX2, ...:

cat /etc/crypttab

To add a new password, use luksAddKey:

sudo cryptsetup luksAddKey /dev/sda3

To remove an existing password, use luksRemoveKey:

sudo cryptsetup luksRemoveKey /dev/sda3

View currently used slots of the encrypted partition:

sudo cryptsetup luksDump /dev/sda3

Cited from this blog. Thanks.

In Ubuntu 18.04 there is another possibility, using (Gnome) Disks. Thanks for the hint, Greg Lever, after clicking around I found what Greg mentioned:
1. Open Gnome Disks.
2. Choose/Click on the main physical hard drive in the left panel.
3. Click on the LUKS encrypted partition, in this example it is Partition 3: Screenshot Gnome Disks
4. Click on the edit icon (cogs, gear wheels) and choose "Change Paraphrase".

  • 1
    does this imply you can have more than one password to unencrypt the disk? – bph Jan 18 '16 at 16:05
  • 6
    You can. I tested it out – bph Jan 25 '16 at 22:31
  • 2
    There are slots - eight of them I believe. Each slot is an unlock option. Could be 8 passwords if you wanted. – Cookie Jul 31 '16 at 14:44
  • 4
    WARNING There should be a disclaimer above this answer that if you remove the only key before adding another, you will render your disk inaccessible after rebooting! – waffl May 3 '19 at 23:56
  • 2
    WARNING The disk is not only unusable AFTER THE REBOOT, when you've deleted the last key, but you CANNOT ADD A NEW KEYS AFTER THAT AS WELL! – KhaimovMR Aug 11 '19 at 13:30
29

Download "Disks" from Software Manager. Run it. Select your encrypted device partition. Click gear icon. Select "Change passphrase". That's it

14

Without thinking I set the passphrase to be really long, and it became a pain to type. I ended up using the following to change it to something more manageable.

sudo cryptsetup luksChangeKey /dev/sda5
14

To see the slots used:

sudo cryptsetup luksDump /dev/sda5

And to find out which partition to use

cat /etc/crypttab

And if it is listed by uuid, use

ls -l /dev/disk/by-uuid/{insert your uuid here}

Then use

sudo cryptsetup luksAddKey /dev/sda5
sudo cryptsetup luksRemoveKey /dev/sda5

or

sudo cryptsetup luksChangeKey /dev/sda5

and for faster reference (assuming only 1 entry in /etc/crypttab)

sudo cryptsetup luksAddKey /dev/disk/by-uuid/$(cat /etc/crypttab | sed -e "s|\(.*\) UUID=\(.*\) none.*|\2|g")
sudo cryptsetup luksChangeKey /dev/disk/by-uuid/$(cat /etc/crypttab | sed -e "s|\(.*\) UUID=\(.*\) none.*|\2|g")
  • +1 for explaining what to do when cat /etc/crypttab lists uuid. – Antony Mar 7 '19 at 11:38
6

The encrypted partition may well be using /dev/sda5 (note the a in sda5) and that is the device you probably need to use (unless that is just a typo in your question).

However the encrypted device itself will have another name - something like /dev/mapper/cryptroot. For the device name you could:

  • look in the file /etc/crypttab - this will have both the partition and the mapper name in it, but only for permanent partitions
  • run mount and see what the mapper name is - this is useful when you have plugged in an encrypted disk via USB. (Though I'm not sure how you then find the actual underlying device name).
2

On Ubuntu 18.04 run gnome-disks and you can point and click to change the passphrase for the encryption.

1

I had issues locating partition name, so created this guide:

  1. Locate your LMV partition

    # install jq if you don't have it
    sudo apt-get install jq
    
    # find LVM partition
    LVMPART=$(lsblk -p --json | jq -r '.blockdevices[] | select(.children) | .children[] | select(.children) as $partition | .children[] | select(.type == "crypt") | $partition.name')
    
    # check if it was found
    echo $LVMPART
    
        # (optional)
        # if above output is empty, locate it in a tree view using this command
        lsblk -p
    
        # partition `/dev/some_name` should be the parent object of the one with TYPE of `crypt`, set it
        LVMPART=`/dev/some_name`
    
  2. Check LVM partition meta by dumping it

    sudo cryptsetup luksDump $LVMPART
    
  3. Add new key (you can have multiple keys)

    sudo cryptsetup luksAddKey $LVMPART
    
  4. After dumping it again, you should see multiple keys

    sudo cryptsetup luksDump $LVMPART
    
  5. Delete old key if desired

    sudo cryptsetup luksRemoveKey $LVMPART
    

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.