我如何挂载/恢复我的 ecryptfs 加密主页?

我如何挂载/恢复我的 ecryptfs 加密主页?

我最近在我的 ecryptfs 加密主文件夹中发现了一个旧磁盘,里面有我想恢复的文件。但是我无法启动系统,因为它无法启动。我需要将旧磁盘连接到我的新计算机并从 CLI 恢复文件。

我如何才能访问我的旧文件?

答案1

网上有很多帖子,但没有一篇涵盖我从旧主文件夹恢复文件所需的所有步骤。在我的例子中,我将旧磁盘连接到虚拟机,但这在物理机上也应该以同样的方式工作。

(安装原始系统时,我使用了默认分区方案,其中主文件夹放在单独的分区上。因此将涵盖这一点。如果不是这种情况,您可以跳过第二次安装sdb4。)

通过这些步骤,我能够恢复我的文件:(我的旧登录名是daniel记住你的会有所不同)

1)成为rootsudo -s

2)将磁盘连接到虚拟机计算机,以便您使用以下命令查看分区:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   127G  0 disk
├─sda1   8:1    0   512M  0 part /boot/efi
└─sda2   8:2    0 126.5G  0 part /               <-- This is the root parition from my LIVE/current system
sdb      8:16   0 465.8G  0 disk
├─sdb1   8:17   0   512M  0 part
├─sdb2   8:18   0  31.3G  0 part
├─sdb3   8:19   0 131.9G  0 part                 <-- This is my old /-partition
└─sdb4   8:20   0 151.4G  0 part                 <-- This is my old /home-partition

3)挂载旧文件系统/mnt并做好一切准备chroot

$ mount /dev/sdb3 /mnt/          <-- mount your original root
$ mount /dev/sdb4 /mnt/home      <-- mount your original home
$ mount --rbind /dev /mnt/dev    <-- prepare the chroot with the defaut sysfs-stuff
$ mount --rbind /proc /mnt/proc
$ mount --rbind /sys /mnt/sys

4)chroot进旧机:

$ chroot /mnt
$ ls -lah /home/
total 32K
drwxr-xr-x  5 root   root   4.0K Nov 11  2016 .
drwxr-xr-x 51 root   root   4.0K Aug  7 10:06 ..
dr-x------  5 daniel daniel 4.0K Aug  7 09:51 daniel
drwxr-xr-x  3 root   root   4.0K Apr 26  2014 .ecryptfs     <-- here is my ecryptfs stuff
drwx------  2 root   root    16K Apr 26  2014 lost+found

5) 确认我们有一个wrapped-passphrase文件。此文件是使用原始登录密码登录所必需的。还有另一个东西叫做密码,我猜它是用于加密文件的原始密钥。在设置 ecryptfs 时,计算机会要求您写下密码,但我没有,所以我需要该文件。

ls -l /home/daniel/.ecryptfs/
total 20
-rw-r--r-- 1 daniel daniel 8192 Aug  7 10:43 auto-mount
-rw-r--r-- 1 daniel daniel    0 Apr 26  2014 auto-umount
-rw------- 1 daniel daniel   13 Apr 26  2014 Private.mnt
-rw------- 1 daniel daniel   34 Apr 26  2014 Private.sig
-rw------- 1 daniel daniel   58 Jul  8  2016 wrapped-passphrase   <-- This file is important, make sure it exists and is not empty

6)现在使用包装的密码文件,我们可以使用登录密码恢复密码:

$ ecryptfs-unwrap-passphrase /home/daniel/.ecryptfs/wrapped-passphrase
Passphrase:
[ENTER YOUR LOGIN-PASSWORD]
<32 char alphanumerical all lowercase passpharse>

现在写下您的密码。你可能不需要它但如果你确实有,那么你现在就已经拥有它了。

7)现在我们需要将密码添加到内核密钥环,以便内核可以使用该密码解密我们的文件:

$ ecryptfs-insert-wrapped-passphrase-into-keyring /home/daniel/.ecryptfs/wrapped-passphrase
Passphrase:
[ENTER YOUR LOGIN-PASSWORD]
Inserted auth tok with sig [254199733df62f80] into the user session keyring

8) 现在,我们要挂载旧文件。为此,我们需要使用 sudo 成为原始用户:

$ sudo -u daniel bash
Signature not found in user keyring
Perhaps try the interactive 'ecryptfs-mount-private' <-- Just ignore this message, it cause the home has not yet been decrypted

$ whoami
daniel      <-- make sure you are the original user!

9)现在我们可以挂载我们的主目录:

$ ecryptfs-mount-private
Enter your login passphrase:
[ENTER YOUR LOGIN-PASSWORD]
Inserted auth tok with sig [254199733df62f80] into the user session keyring

$ cd
$ ls
<All your old files should be there>

恭喜!您刚刚挂载了 ecryptfs 加密的主文件夹,并重新获得了对所有文件的访问权限。尽情享受吧!

相关内容