我尝试升级到 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
在分区中重新创建/
一个。这可以通过以下方式纠正:
- 将您想要保留的任何新创建的文件从新
/home
文件夹备份到 USB 驱动器或云文件备份服务或类似的东西,因为新/home
文件夹将无法访问。 - 以恢复模式重启。
验证分区是否
/dev/sda5
存在:ls -alF /dev/sda5
假设它存在,暂时挂载
/dev/sda5
到/mnt
:mount /dev/sda5 /mnt
检查是否
/mnt
有一个带有您的用户名的目录(您的旧主目录):ls -alF /mnt
备份自动挂载配置文件:
cp /etc/fstab /etc/fstab.bak
假设你看到了你的主目录,在将来的启动时自动挂载旧的
/home
(/dev/sda5
)笔记:它是>>
,而不是>
;确保有两个大于号):echo "UUID=$( findmnt -no UUID /mnt ) /home $( findmnt -no FSTYPE /mnt ) errors=remount-ro 0 2" >> /etc/fstab
检查
/etc/fstab
确保其中有几行,并且/home
最底部有一个新行(如果没有,您可以cp /etc/fstab.bak /etc/fstab
恢复/etc/fstab
,更正最后一个命令,然后重试):cat /etc/fstab
假设一切
/etc/fstab
看起来不错,并且您已经从新目录备份了所需的一切/home
,请卸载/mnt
:umount /mnt
删除新
/home
目录,因为它将永远无法再访问,并且您可能还会有额外的磁盘空间:rm -rf /home
重新创建一个空
/home
目录作为挂载点:mkdir /home
重新挂载所有内容,包括旧
/home
目录:mount -a
检查是否
/home
有适合您用户名的目录:ls -alF /home
如果您的主目录在那里,请重新启动:
reboot
现在,/home
重启完成后,您的旧目录应该可用。如果您遇到更多问题,请告诉我们。
答案2
您能否通过 ssh 或 tty 连接并执行:
$ ecryptfs-mount-private
它可能有助于您在私人文件夹中看到加密文件
第二种方法——恢复您的文件:
sudo ecryptfs-recover-private /$HOME/.Private
(默认情况下,它们保存在 /tmp/ecryptfs.ХХХХХХХ)