几天前,我遇到了这样的事情。当时我正在床上看电影,转身时不小心拔掉了电脑的电源插头,电脑就突然关机了。
当我重新打开它时,它花了很长时间试图修复一个重大错误,但没能修复,我忽略了这些错误。它继续加载,然后我进入了 Ubuntu 登录页面。我输入了密码并按下回车键,屏幕变黑了,当它恢复时,我又回到了原来的位置:登录页面要求我再次输入密码。
它陷入了循环,每次我输入密码时,它都会再次询问我密码。我无法访问我的会话。从来宾会话中,我尝试访问我的主页,我能够使用 console ctrl++ 。使用该命令,我发现我的 /home/ 除了几个文件夹外是空的。altf1ls -al
目前的文件夹是:
.cache
.ecryptfs
.face
.Private
README.txt
我怀疑 eCryptfs 在强制关机时被损坏,导致我无法访问加密文件。我不记得我是否配置了密码,如果配置了,我也记不清密码是什么了。当然我记得我的登录密码。
此时,我要么想要检索我的数据,然后格式化并重新安装,要么只是修复 eCryptfs 损坏的文件并避免格式化任何内容。
如果您需要帮助,我可以为您提供任何其他信息。
答案1
对于较新版本的 Ubuntu,如果您在初始设置期间将帐户设置为使用加密主目录,它将设置一个名为 /home/.ecryptfs/[your_user_name] 的目录。此目录将有两个子目录,.Private 和 .ecryptfs。挂载到您的主目录的加密文件将保存在 .Private 中;.ecryptfs 包含包装的密码和 ecryptfs 使用的其他配置文件。
当您登录计算机时,/home/.ecryptfs/[your_user_name]/.Private 中的加密文件会自动挂载到 /home/[your_user_name],使用您的登录密码解开 ecryptfs 密码并使用它来正确挂载加密文件,这样您就可以安全地访问您的主目录。
自从您的硬盘崩溃以来,ecryptfs 一直无法正常工作。这可能是由于 /home/.ecryptfs/[your_user_name] 中的一些加密数据损坏,或者更可能是由于运行 Linux 的某些系统文件损坏,因此 ecryptfs 系统(或某些相关系统)不再正常运行。
顺便说一下,这里有几点需要注意:首先,像这样的事情就是备份数据很重要的原因。其次,如果您使用加密的主目录,最好将用于加密主目录的未包装密码的副本保存在安全的地方,而不是那台电脑上(您可以通过运行来查看该密码
ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase
...并在提示时输入您的登录密码)。如果您稍后需要恢复加密数据,此未包装的密码可能会有所帮助。
如果你需要从硬盘恢复加密数据——你可以使用
ecryptfs-recover-private
命令。例如,如果你运行
ecryptfs-recover-private /home/.ecryptfs/[your_user_name]/.Private
...系统将提示您输入登录密码(如果没有可用的包装密码文件,则输入未包装的密码)。然后,您的加密主目录将挂载在 /tmp/ecryptfs.XXXXXXXX(键入 df 以查看确切的目录名称)。然后,您可以访问此目录以获取主目录数据,并将其复制到另一个磁盘。
请注意,如果您将目录 /home/.ecryptfs/[your_user_name] 复制到另一台计算机,您仍然可以在新计算机上运行上述 ecryptfs-recover-private 并在那里恢复数据。
因此,在硬盘损坏并且无法再访问加密的主目录的情况下,您通常可能需要:
- 从 Live CD 启动系统
- 使用 /home 挂载分区
- 将 /home/.ecryptfs/[your_user_name] 目录复制到要保存数据的安全硬盘。您可以使用 rsync,或者如果安全硬盘也已安装,则使用 cp -a。
- 使用 ecryptfs-recover-private 从安全硬盘上的复制目录中恢复数据。
答案2
尝试ls /usr/share/xsessions/
如果您在那里看到 unity.desktop 或类似文件,请执行以下操作sudo apt-get install --reinstall unity
希望这能解决您的登录问题。