If I have an encrypted external disk (or an internal disk that is not in fstab), I see an entry for it in Nautilus -- with an entry like "X GB Encrypted Volume". I can click on this volume, and am prompted for a password to decrypt and mount the device.

But how do I do this from the command line?

This wiki page, and other docs I can find, only refer to GUI methods of decrypting the device; but this won't do in the context of headless servers or SSH logins. Is there a simple way to get devices to mount to automatic locations in "/media" just like they would with the GUI?

(I'm not asking about encrypted home directories -- I'm aware of ecryptfs-mount-private. This question is about additional encrypted volumes.)

share|improve this question

10 Answers 10

up vote 31 down vote accepted

The steps in @Georg Schölly's answer did not work for me, as after the sudo mount /dev/mapper/my_encrypted_volume /media/my_device step I got the error:

mount: unknown filesystem type 'LVM2_member'

Here's what worked (/dev/sdb5 is the partition on my hard disk marked as crypt-luks):

udisksctl unlock -b /dev/sdb5
udisksctl mount -b /dev/mapper/ubuntu-root

The commands are executed without sudo. After entering my encryption passphrase after being prompted on the the first step, I then ended up with:

Mounted /dev/dm-1 at /media/dpm/e8cf82c0-f0a3-41b3-ab28-1f9d23fcfa72

From there I could access the data :)

share|improve this answer
1  
I think this is the best answer, because I suspect this is more or less what nautilus does using libudisks2. Also, I've tested this to work well as an unprivileged user. – Jaap Versteegh Aug 24 '15 at 14:52
7  
I unfortunately get the error Object /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem. any advice? – wawa Dec 1 '15 at 14:41
1  
@wawa I had the same problem and solved it in this answer askubuntu.com/a/895508/334823 – raphael Mar 22 '17 at 2:26
    
It's not clear to me what I should type in place of /dev/mapper/ubuntu-root If I simply type it I get an error. "Error looking up object for device /dev/mapper/ubuntu-root" – Selah Sep 27 '17 at 19:20
    
I needed sudo for both udisksctl commands, otherwise I get an error like Error unlocking /dev/sdb1: GDBus.Error:org.freedesktop.UDisks2.Error.NotAuthorized: Not authorized to perform operation. – mwfearnley Oct 24 '17 at 13:15

Your volume is probably encrypted with LUKS, here's how to mount it:

You need:

sudo apt-get install cryptsetup

To decrypt the volume:

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

Now you can mount it as usual:

sudo mkdir /media/my_device
sudo mount /dev/mapper/my_encrypted_volume /media/my_device

To lock the container again, it needs to be unmounted first:

sudo umount /media/my_device
sudo cryptsetup luksClose my_encrypted_volume

To automatically put it in the /media location, use the udisks tool

sudo udisks --mount /dev/mapper/my_encrypted_volume
share|improve this answer
    
So I can't do it as a non-privileged user, either, even though I could via the GUI? – cha Sep 30 '11 at 16:12
    
That actually depends on your system setting. I believe most commands should work as long as your system gives your user access to the devices. – Georg Schölly Sep 30 '11 at 19:45
1  
Ubuntu 15.04 ships the udisks2 package in place of udisks, and the former renames the tool udisksctl. – skierpage Jun 29 '15 at 2:08
    
unfortunately did not work for me with ubuntu 16.04. mount: unknown filesystem type 'LVM2_member' – Selah Sep 27 '17 at 19:06
    
@Selah: Sounds like you're trying to decrypt something which is not a LUKS volume. Maybe you need to use something else than /dev/sda1. – Georg Schölly Sep 27 '17 at 19:14

If you get this error:

mount: unknown filesystem type 'LVM2_member'

run:

sudo apt-get install lvm2
sudo lvscan

then activate all LVM you see

sudo vgchange -ay

then re-run the mount:

sudo mount /dev/mapper/my_encrypted_volume /media/my_device
share|improve this answer
1  
The last line is not necessarily correct, as you may still end up with the same error. Rather, mount one of the drives listed with lvscan instead of /dev/mapper/my_encrypted_volume – Sean Scott Aug 28 '17 at 16:27
    
This did not work for me. Same error mount: unknown filesystem type 'LVM2_member'. Perhaps because I am booting from a flash drive? – Selah Sep 27 '17 at 19:06

One problem i ran into, was duplicate volume groups: Both my recovery system and the drive to be recovered were ubuntu systems with LVM. This is, why I had two ubuntu-vg volume groups (vgdisplay would display both, each with their own UUID, but i couldn't get to their logical volumes).

My solution builds on the answer of Georg:

  • Boot off a live-linux (so that you don't run into the duplicate volume group name)
  • sudo cryptsetup luksOpen /dev/sdaX my_encrypted_volume
  • enter your passphrase when prompted
  • sudo vgscan should now pick up the contained volumes/groups.

  • DRAGONS AHEAD: WE'RE NOW CHANGING THE VOLUME GROUP NAME. YOU WILL NOT BE ABLE TO BOOT THAT DRIVE AFTERWARDS!

    use sudo vgrename ubuntu-vg ubuntu-vg2 to rename the volume group.

    If you need to boot off that drive, you can do these steps again, but rename your volume group back to ubuntu-vg. A different possibility is to alter your boot configuration to the new vg-name.

Now that the duplicate vg-name is resolved, i can boot back into my regular system, redo the cryptsetup..., vgscan and then mount /dev/mapper/ubuntu--vg2-root anywhere you like.

share|improve this answer
2  
Looks like you can also do sudo vgdispay to find the UUID and use that instead of the duplicate name in order to do the rename of just the one volume. That is, grabbing the UUID and then doing sudo vgrename <uuid> old worked for me. – mpontillo May 14 '16 at 0:17
    
I can't test Mike's suggestion right now, but If it works, it's better than renaming the volume group! – amenthes May 15 '16 at 14:52

sdb1 here is an example you should input your device name, none of this commands will require root privileges

unlock encrypted disk

udisksctl unlock -b /dev/sdb1

after inserting the correct passphrase it will output something like this: Unlocked /dev/sdb1 as /dev/dm-3

then mount it to /media/

udisksctl mount -b /dev/dm-3

it should output something like this: Mounted /dev/dm-3 at /media/yourUserName/sdb

to unmount it

udisksctl unmount -b /dev/dm-3

to lock it again

udisksctl lock -b /dev/sdb1
share|improve this answer
1  
disksctl mount -b /dev/dm-4 Object /org/freedesktop/UDisks2/block_devices/dm_2d4 is not a mountable filesystem. – DevilCode Nov 23 '16 at 23:37
    
Sorry did you solve this issue? (with non mountable FS... as I am getting the same) – Oleg Tarasenko Feb 15 '17 at 16:56
1  
Same problem, see this answer for something that worked for me askubuntu.com/a/895508/334823 – raphael Mar 22 '17 at 2:25

I went into several paths from the previous answers and only combination of the previous answers worked for me. He what I did and what went OK, and what went wrong and my workaround.

I have an LUKS encrypted hard disk that I need to mount from a live boot USB for Ubuntu 15.10. To do so I started with the following command,

udisksctl unlock -b /dev/sda3

where sda3 is the encrypted partition. This command didn't work with me and I am not sure why, so I used the following command:

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

it worked with me and I didn't need to install it as it was there in the live boot.

Now, I need to mount the HD, and this was not a straight forward thing: I tried:

sudo mkdir /media/my_device
sudo mount /dev/mapper/my_encrypted_volume /media/my_device

But the second command didn't work with me, and hence I have to find a work around which is the following:

sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root

That was my path .. but you can use the path dev/mapper/ubuntu and then double tab to see the rest of options. This mounted the HDD as:

Mounted /dev/dm-1 at /media/root/03cf6b80-fa7c-411f-90b9-42a3398529ce

Then I used the following command to mount it as /media/my_device as following:

sudo mount /dev/dm-1 /media/my_device/

which worked fine.

In Summery

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume
sudo mkdir /media/my_device
sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root
sudo mount /dev/dm-1 /media/my_device/
share|improve this answer

All answers above took the assumption that the user already knows which partition is the encrypted one. Coming from someone that doesn't like the command line so much, I was expecting some user-friendly answer... So my 2cents here.

  1. Open the "disks" application of ubuntu.
  2. Locate your mounted hard disk in the left panel.
  3. Click on the partition that has "LUKS" in its name: this way you can see its mount point in the "Device" text below (in my case: /dev/sdb4).

Then I tried to mount it like adviced above:

$ sudo cryptsetup luksOpen /dev/sdb4 someNameForMyVolume
Enter passphrase for /dev/sdb4: 

But got this error:

Cannot use device /dev/sdb4 which is in use (already mapped or mounted).

Ok, so I guess nautilus has already tried to mount it (because it actually prompted me for the password as I connected the USB, even if it didn't end up showing the decrypted tree). However, the error message is not really helpful because it doesn't tell me where it's already mapped/mounted. But this command helps in this case:

$ udisksctl unlock -b /dev/sdb4
Passphrase: 
Error unlocking /dev/sdb4: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Device /dev/sdb4 is already unlocked as /dev/dm-3

Aha! So it's /dev/dm-3.

However when trying to mount it, it doesn't work:

$ udisksctl mount -b /dev/dm-3
Object /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem.

After much tinkering, I found out that I was running into the duplicate volume groups problem (described above by @amenthes) because the commands sudo vgscan -v and sudo vgdisplay where showing two entries with the same volume group name. However, I found a better way to deal with it than his method (no need to boot into a LiveCD to rename volumegroups!), in this link, which I'll quote above (just in case that link gets broken...):

If you run ls -la /dev/mapper/ you should see a luks-xxxxxx-xxxxx-xxxx or some such file. That's the mapping that was created when Ubuntu prompted for the encryption password with a dialog but failed to open it (all the dialog did was to call luksOpen and map it to that /dev/mapper/luks-xxx file). Now:

  1. Make sure your physical volume is available by running the sudo pvdisplay command. It should be /dev/mapper/luks-xxx-whatever.
  2. Get the uuid of the volume by running sudo pvs -o +vg_uuid. The uuid will be the value displayed all the way to the right, containing 7 dash-delimited values. Copy those somewhere as we'll be using them in the next step. DO NOT CONFUSE UUIDS AND COPY DOWN THE WRONG ONE. Only copy the one for your current /dev/mapper/luks-xxx-whatever device.
  3. Change the volume group for your old disk by running the following command sudo vgrename UUIDOFYOURDISKHERE oldhd You can change the "oldhd" to whatever you want so long as it's differing from the volume group name of your current disk. Performing this step removes the conflict with volume group names which will allow you to now make volumes available.
  4. Run the command vgchange -a y to make the volumes active.
  5. Create a folder for a mountpoint somewhere, e.g.: sudo mkdir /media/<yourUserName>/someDir
  6. Mount it: sudo mount /dev/oldhd/root /mnt/oldhd.
  7. After working with your files, you should rename your volumegroup back to ubuntu-vg if you want the volume to still be bootable.
share|improve this answer

Was looking for the same...

The mkdir steps were my reason to look further, also I've modified policykit to allow my user to mount without asking first for the root passwd and then for the encrypted volume password, so the sudo was also over kill.

My solution I found was the use of gvfs-mount from the gvfs-bin package. Now with a gvfs-mount -d /dev/sda7 I'm asked for the encrypted password only and it's mounted under /media/VOLUME_LABEL.

share|improve this answer
    
Not getting luck with this. Steps I took: first, cat /proc/partitions to identify the /dev label for the drive. Second, gvfs-mount -d /dev/sdf1. This gives the error "No volume for device file /dev/sdf1". This looks close, though! – cha Jun 20 '12 at 14:18
    
It works for me. Strangely not through /dev/disks/by-label or /by-uuid, but only by /dev/sdxx – Redsandro Mar 4 '13 at 17:55
    
FYI: gvfs-mount -d /dev/sdaX worked perfectly for me in Linux Mint 17.3 -- No password required as with the GUI. – Jonathan Cross May 3 '16 at 19:33

The message "No volume for device file /dev/sdf1" will be present until you delete according device from /etc/fstab.
After that gvfs-mount works as designed

share|improve this answer

On my chromebook with (crouton) Ubuntu Xenial 16.04 I find that when I issue:

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

per the above posting and enter my passphrase, I get "No key available with this passphrase." However, by accident I've found (and very strange it is!) the whole thing works when I add "--debug" to the cryptsetup command! I am then able to mount the volume and access the files.

Asking the file manager Thunar to do the mounting results "Not authorized to perform operation." error. I am unable to figure a way around that, but since I can do the mount at the command line, that's somewhat acceptable.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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