丢失了我的用户目录,从救援磁盘查看未挂载的分区时所有文件仍然存在,如何恢复?

丢失了我的用户目录,从救援磁盘查看未挂载的分区时所有文件仍然存在,如何恢复?

我使用的是 11.10 (ext4),不知怎么弄丢了/home/myuserid/home在那里,但显示为空。我可以启动到登录提示符并以 Guest 身份登录,但当尝试以 myuserid 登录时,我被路由回登录屏幕。我也可以通过 Grub 启动到恢复模式,然后进入 root 提示符。作为 Guest 和 root,/home显示为空:

root@ubuntu:~$ cd /home
root@ubuntu:/home$ ls -al
total 0
drwxr-xr-x  1 root   root    60 2012-01-13 07:42 .
drwxr-xr-x  1 root   root   240 2012-01-13 07:42 ..
root@ubuntu:/home$ 

但是,当我使用 Ubuntu 安装 USB 启动计算机,从 USB 运行并打开 Nautilus 时,我可以看到它/home/myuserid在那里,并且其中的所有文件都完好无损。我尝试使用分开如上所述Ubuntu 数据恢复页面,但救援开始结束命令没有执行任何操作(甚至没有给出返回代码,只是一个新的提示)。

好像我只是删除了分区表中指向磁盘位置的指针或其他东西,而没有删除实际的分区和文件。有人知道如何恢复吗/home/myuserid

PS - 我已阅读了关于此主题的许多帖子,但它们似乎都侧重于恢复丢失的文件,而不是恢复指向用户文件夹的分区表指针,或修复用户文件夹无法正确安装的问题,或者我在这里所做的其他任何事情。我的文件确实没有丢失,从 USB 驱动器运行时我可以正常查看和打开它们,而且我犹豫是否要尝试 PhotoRec 之类的恢复工具,因为 1) 它们似乎不是 100% 可靠,并且 2) 我怀疑解决方案更简单。

编辑:/home现在没有安装。使用 USB 驱动器启动(我现在正在执行此操作)不会自动安装它。是的,它/home位于其自己的分区上(与/bootswap/和 一样/home,都在单独的分区上)。

答案1

我们不知道您为何或如何丢失了 $HOME,但从您所说的情况来看,它似乎仍然在那里。

Alt您可以通过按++Ctrl轻松地从访客会话切换到 shell F1。从那里使用 登录myuserid。您可能会遇到错误提示No directory: logging in with HOME=/。登录后运行

cd /home/myuserid
ls

如果所有文件都已到位只有那时你可以使用以下命令恢复你的 HOME

sudo usermod -d /home/myuserid myuserid

从访客会话中注销并照常登录您的帐户。

如果您的文件在访客会话中不可见,那么请按照评论中已经建议的方式进行操作。备份您的数据或者尝试挂载 /home 所在的分区。

答案2

OP 自己的回答已从问题中删除:

解决方案:使用 Ubuntu Live USB 启动,在 中找到丢失的用户目录/media,备份它,然后启动到恢复控制台根提示符,运行mount -a以强制挂载 fstab 中的所有内容,然后重新启动并尝试再次登录。详情:

  1. 使用备份 /home/myuserdircp -ax来保留所有链接和属性:

    • 通过 USB 插入外部硬盘或其他备份媒体。
    • 从 USB 启动盘启动。[1][1] [2][2]
    • 打开终端,cd /media
    • 在 /media 中查找未挂载的 /home 分区。它可能被命名为一个长 GUID 字符串而不是 /home。只需cd进入它并查看是否存在丢失的/home/myuserid(或/[GUID]/myuserid)分区。一旦找到它,然后...
    • 使用以下方法将整个用户目录复制到备份媒体[cp -ax以保留链接和属性][3]:
    • ubuntu@ubuntu:/> cd /media/[GUID]
    • ubuntu@ubuntu:/media/[GUID]> cp -ax * /media/backupdrivename/backupdir
    • 这需要一段时间。作为参考,我的 117GB 大约需要 30-40m。
  2. 注销、关机、移除 USB 启动驱动器和备份硬盘。重新启动进入 Ubuntu 恢复控制台。

    • 启动时按住 Shift 键以显示 GRUB 启动菜单。选择恢复控制台启动选项。
  3. 在恢复控制台中,选择进入 Root 提示符的选项。

  4. 在 root 提示符下,运行mount -a以挂载 /etc/fstab 中的所有内容。现在使用 检查 /home ls -al /home。幸运的话 /home/myuserdir现在就在那里。

  5. 使用 重启sudo reboot。如果 Ubuntu 在重启期间启动自动文件系统检查,请让它运行,不要取消。在登录屏幕上,使用普通用户 ID 登录。

  6. 此后我的 /home/userdir 已恢复,我可以正常登录,一切正常。

相关内容