尝试挂载旧的加密家目录

我在新的硬盘上安装了全新的Ubuntu 10.10,并希望将旧的主目录挂载到我的新(也是加密的)主目录的子目录中。
我尝试使用以下命令进行挂载:sudo mount -t ecryptfs /mnt/oldhome/me/ /home/me/oldhome,其中/mnt/oldhome是旧系统的/home分区。
之后,~/oldhome目录中包含一个桌面链接文件(Access-Your-Private-Data.desktop),链接到ecryptfs-mount-private,并且有一个README.txt文件,告诉我应该运行ecryptfs-mount-private。我这样做了,但由于不知道应该发生什么,我无法确定是否已经执行并且是否使我更接近访问我的旧主目录。
有什么提示吗?
更新:
this script的帮助下,我成功挂载了我的旧加密主目录。不过,使用ls命令查看时,我遇到了很多类似以下的错误:
ls: cannot access /mnt/oldme/some_file: No such file or directory

其他信息 ls -l 应该显示的内容被问号替代。 更新2 我将旧系统挂载到 /mnt/oldroot,并将 /dev、/sys、/proc 和旧的 home 分区挂载进去。然后我 chroot 到 /mnt/oldroot,使用 su - meecryptfs-mount-private 命令。输入密码后,我得到了以下结果:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect

ecryptfs-unwrap-passphrase 给我相同的密码短语,尽管我使用了不同的。

4个回答


9只是给自己的一个提示,因为这已经是第n次运行这个命令了,每次都要反向工程来弄清楚它的工作原理:跳过整个文件树搜索并打开一个旧的主目录的正确语法是:sudo ecryptfs-recover-private --rw .ecryptfs/<YOUR_USER>/.Private。不需要挖掘出32字节长的密码短语,只需要几次尝试来猜测那台旧电脑的密码。 - Avio
在一个新的帖子上(https://askubuntu.com/questions/1035424/ubuntu-18-04-mount-encrypted-disk)遇到了一些类似但又不同的问题,你觉得你能分享一下你的专业知识吗?谢谢! - Matifou
3有时候即使密码正确,也会出现“错误:解开密码短语并插入用户会话密钥环失败[-5]”的情况。根据https://unix.stackexchange.com/questions/285541/mount-no-such-file-or-directory-with-encrypted-recovery/395391#comment878481_395391上的说明,运行`sudo ecryptfs-manager,然后按4(退出),再次运行ecryptfs-recover-private`会有帮助。 - Turion
我确实这样做了,一开始我以为它成功了,因为我得到了"INFO: Success! Private data mounted at [/tmp/ecryptfs.xxx]."的提示。然而,ecryptfs-recover-private似乎也将我的当前主目录挂载在了/tmp/ecryptfs.xxx下,而不是我从备份中传递给脚本的那个。有什么想法吗? - Peter T.
啊,找到了:从备份目录/home/user/.Private 到我的当前主目录有一个符号链接... - Peter T.

我终于成功地挂载了我的加密家目录,首先通过添加密码短语来实现的。
sudo ecryptfs-add-passphrase --fnek

这给我带来了以下的信息:
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring

那里,我记得 bbbbbbbbbbbbbbbb 并继续挂载相关的 .Private 目录:
sudo mount -t ecryptfs /mnt/oldhome/.ecryptfs/me/.Private /mnt/oldme

很多问题冒出来,我都用默认答案回答,除了一个例外。
Enable filename encryption (y/n) [n]: y

并且

Filename Encryption Key (FNEK) Signature [aaaaaaaaaaaaaaaa]: bbbbbbbbbbbbbbbb

当然,bbbbbbbbbbbbbbbb是我以前记住的签名。简单吧?


3嗨 @rausch!只是一个澄清的问题:当你运行第一个命令(ecryptfs-add-passphrase)时,你是指来自旧的还是新的家目录/系统的密码?而且,你所说的密码是指通过ecryptfs-unwrap-passphrase获取的代码,还是只是登录密码?谢谢!! - Matifou
a) 旧系统,和 a) 这段代码。运作得非常顺利! - Piskvor left the building
@rausch 我注意到在我的 wrapped-passphrase 文件旁边有一个与 ecryptfs-add-passphrase --fnek 得到的 sig 匹配的 Private.sig 文件。所以你可以使用它来确保你输入了正确的所有内容。谢谢! - Eric Twilegar

尝试:

sudo ecryptfs-recover-private /media/<username>/<disk-guid>/home/.ecryptfs/<username>/.Private

如果您知道登录密码,将返回输出结果。
INFO: Found [/media/<username>/<disk.guid>/home/.ecryptfs/<username>/.Private].
Try to recover this directory? [Y/n]: 
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] 
INFO: Enter your LOGIN passphrase...
Passphrase: 
Inserted auth tok with sig [c67c3e3ace421e76] into the user session keyring
INFO: Success!  Private data mounted at [/tmp/ecryptfs.xblDkqNZ].

最后一行显示解密数据的挂载位置

鸣谢 Santiago G. Marín {{link1:在此帖子的评论部分}}


我在将之前的(原始)POSIX用户名重命名为old_user,然后创建一个具有原始(先前用户名的)登录名的新用户之后,遇到了相同的错误ERROR: Failed to mount private data at [/tmp/ecryptfs....]
为了能够挂载old_user的加密家目录,我不得不重新创建其文件夹中.encryptfs和.Private的符号链接(因为它们指向了/home/original_name/)。
之后,以下命令成功地挂载了旧的家目录,没有任何问题。
/usr/bin/ecryptfs-recover-private /home/old_user/.Private

如果由于关键问题(请参阅dmesg或syslog)而导致上述操作失败,例如。
Could not find key with description: [XXX]
process_request_key_err: No key Could not find valid key in user session keyring for sig specified in mount option: [XXX]

然后,尝试手动添加密码短语:在/usr/bin/ecryptfs-manager中选择选项1(它可能会显示密钥已经存在,没关系),然后再次执行ecryptfs-recover-private /home/old_user/.Private