在 Ubuntu 中恢复加密的主文件夹

在 Ubuntu 中恢复加密的主文件夹

我尝试升级到 18.04,但重启后,我无法登录,即使在虚拟终端 ( Alt++ ) 上也Ctrl无法登录F1。我不知道具体原因,但我的猜测是 home 空间不足导致它没有响应。

我尝试了各种方法来恢复:修复软件包、登录到 root shell,ETC。我尝试通过 Live USB,但显示ecryptfs-*未找到命令,并且我无法安装encypt-utils

由于 位于/home不同的分区(sda5),我认为不会有任何麻烦,并从 上的 Live USB 重新安装了全新的 Ubuntu sda1。新用户的这个时间/home保留在 sda1 本身上。

安装后,我检查sda5文件并注意到一些指向的符号链接/usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop

hari@hari-Vostro-270s:/media/hari/sda5/hari$ ls -la
total 12
dr-x------ 3 hari hari 4096 Mar  6  2016 .
drwxr-xr-x 6 root root 4096 Apr 24 14:04 ..
lrwxrwxrwx 1 hari hari   56 Mar  6  2016 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
drwx------ 3 hari hari 4096 Jul 14 00:57 .cache
lrwxrwxrwx 1 hari hari   30 Mar  6  2016 .ecryptfs -> /home/.ecryptfs/hari/.ecryptfs
lrwxrwxrwx 1 hari hari   29 Mar  6  2016 .Private -> /home/.ecryptfs/hari/.Private

所以问题是,有什么方法可以恢复这些文件?

目前,我尝试了以下方法:https://help.ubuntu.com/community/EncryptedPrivateDirectory#Recovering_Your_Data_Manually

/media/hari/sda5  sudo ecryptfs-add-passphrase --fnek
Passphrase: 
Inserted auth tok with sig [x1] into the user session keyring
Inserted auth tok with sig [x2] into the user session keyring
/media/hari/fs1  ls
hari  lost+found
/media/hari/sda5  sudo mount -t ecryptfs hari/.Private /media/hari/sda6/Private
Passphrase: 
Select cipher: 
1) aes: blocksize = 16; min keysize = 16; max keysize = 32
2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]: 
Select key bytes: 
1) 16
2) 32
3) 24
Selection [16]: 
Enable plaintext passthrough (y/n) [n]: 
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [x3]: x2
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=x2
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=x3
Mounted eCryptfs

查看文件夹时,我看到:

Error when getting information for file “/media/hari/sda6/home/hari/Downloads/ECRYPTFS_FNEK_ENCRYPTED.FaZDpGgT5TPsrkSs1DMefcCqBFbkbc4LjbP7JXvWgIwh8viAPRHdxH9uEQA3BCl6zOy0opxnxxwj9moqSlFooMTLPDqqLrAlt.e-LrMJZLdyssF7ZGlYJMA5cME2-uUuon-Fy.sd-”: File name too long.

从 CLI 来看,我ls -la这样做的结果如下

ls: cannot access 'ECRYPTFS_FNEK_ENCRYPTED.FWZDpGgT5TPsrkSs1DMefcCqBFbkbc4LjbP7HL3q.4olYwLoHZi74seXAE--': No such file or directory
ls: cannot access 'ECRYPTFS_FNEK_ENCRYPTED.FWZDpGgT5TPsrkSs1DMefcCqBFbkbc4LjbP77AGTg1son88qIRwdejeFu---': No such file or directory
ls: cannot access 'ECRYPTFS_FNEK_ENCRYPTED.FXZDpGgT5TPsrkSs1DMefcCqBFbkbc4LjbP7XXb-PophSPyw.c0ewSMEx0pqOWrvDb2XoytnRZLky---': No such file or directory
ls: cannot access 'ECRYPTFS_FNEK_ENCRYPTED.FWZDpGgT5TPsrkSs1DMefcCqBFbkbc4LjbP7HACG14lCkG2p3vKLYqZDhk--': No such file or directory

有什么办法可以解决这个问题吗?

答案1

这很可能在早期很容易修复,不需要恢复任何东西。不幸的是,尝试恢复它们可能会损坏它们,但这不是肯定的。

最初的问题几乎肯定是您在安装时没有标记/home为的挂载点/dev/sda5,因此它假定您想/home在分区中重新创建/一个。这可以通过以下方式纠正:

  1. 将您想要保留的任何新创建的文件从新/home文件夹备份到 USB 驱动器或云文件备份服务或类似的东西,因为新/home文件夹将无法访问。
  2. 以恢复模式重启
  3. 验证分区是否/dev/sda5存在:

    ls -alF /dev/sda5
    
  4. 假设它存在,暂时挂载/dev/sda5/mnt

    mount /dev/sda5 /mnt
    
  5. 检查是否/mnt有一个带有您的用户名的目录(您的旧主目录):

    ls -alF /mnt
    
  6. 备份自动挂载配置文件:

    cp /etc/fstab /etc/fstab.bak
    
  7. 假设你看到了你的主目录,在将来的启动时自动挂载旧的/home/dev/sda5笔记:它是>>,而不是>;确保有两个大于号):

    echo "UUID=$( findmnt -no UUID /mnt ) /home $( findmnt -no FSTYPE /mnt ) errors=remount-ro 0 2" >> /etc/fstab
    
  8. 检查/etc/fstab确保其中有几行,并且/home最底部有一个新行(如果没有,您可以cp /etc/fstab.bak /etc/fstab恢复/etc/fstab,更正最后一个命令,然后重试):

    cat /etc/fstab
    
  9. 假设一切/etc/fstab看起来不错,并且您已经从新目录备份了所需的一切/home,请卸载/mnt

    umount /mnt
    
  10. 删除新/home目录,因为它将永远无法再访问,并且您可能还会有额外的磁盘空间:

    rm -rf /home
    
  11. 重新创建一个空/home目录作为挂载点:

    mkdir /home
    
  12. 重新挂载所有内容,包括旧/home目录:

    mount -a
    
  13. 检查是否/home有适合您用户名的目录:

    ls -alF /home
    
  14. 如果您的主目录在那里,请重新启动:

    reboot
    

现在,/home重启完成后,您的旧目录应该可用。如果您遇到更多问题,请告诉我们。

答案2

您能否通过 ssh 或 tty 连接并执行:

$ ecryptfs-mount-private 

它可能有助于您在私人文件夹中看到加密文件

第二种方法——恢复您的文件:

sudo ecryptfs-recover-private /$HOME/.Private 

(默认情况下,它们保存在 /tmp/ecryptfs.ХХХХХХХ)

相关内容