我使用 sudo rm * 删除了整个 ubuntu 系统,并且我的主文件夹使用 ecryptfs 加密

我使用 sudo rm * 删除了整个 ubuntu 系统,并且我的主文件夹使用 ecryptfs 加密

我刚刚sudo rm *删除了所有内容。(是的,我知道你的想法,并且我同意你的看法)。

我的SSD是128G,ubuntu 14.10安装在完整分区上,使用 LVM并与/home 目录已加密加密文件系统(这两个设置都是去年安装 Ubuntu 时选择的)。

犯错之后,我关闭了计算机,并用制作了一个磁盘映像dd if=/dev/sda of=/externalDisk/ubuntu14.10.img bs=1M

我有 ecryptfs 的密码(安装带有加密主文件夹的 Ubuntu 时,系统要求我输入此密码)。


赏金:如何恢复和解密使用 ecryptfs 加密的文件?


请参阅下面的回答,看看我迄今为止尝试了什么。

答案1

我恢复了很多 .eCryptfs 文件(88,670) 使用 Photorec。现在,当我尝试使用 ecryptfs 挂载它们时出现错误(请参阅此处:https://askubuntu.com/questions/636764/ecryptfs-mount-wrong-fs-type-bad-option-bad-superblock

加密文件系统

首先,重要的是要了解ecryptfs 的工作原理。关键是它是一个文件系统级加密。这意味着加密包含在每个文件头中,因此我们试图恢复的是加密文件。解密将在恢复之后进行。

eCryptfs 在 Ubuntu 中有 2 种默认模式。

  1. 一种方法是只加密/home/user/Private文件夹,
  2. 第二是加密整个/home/user目录。

它的工作原理如下:/home/user/.Private对于情况 1,加密文件存储在 中,/home/.ecryptfs/user/.Private对于情况 2,加密文件存储在 中(/home/user/.Private然后/home/.ecryptfs/user/.Private对于情况 2,符号链接到 中)。

由于大多数用户的密码少于 10 个字符,因此 ecryptfs 使用其自己的 32 个字符密码加密/解密文件和文件路径。此密码存储在加盐/散列进入名为wrapped-passphrase的文件(位于 中.ecryptfs,即文件夹旁边的文件.Private)。当用户登录时,它会将下层目录( ,加密的目录)挂载到上层目录(在情况 1 中.Private为目标,在情况 2 中为目标)。当用户注销时,它会被卸载。Private/home/user

如果有一天您需要从 liveUSB 或另一台计算机挂载 ecryptfs 加密文件夹,建议您(提前)保存 ecryptfs 密码(因为仅使用您的帐户密码并不总是可以挂载文件夹的选项)。

在 loop0 上挂载镜像

付完钱后,你要做的第一件事就是创建磁盘的 dd 映像。现在我们在 liveUSB 上启动,我们将安装它dd 图像(存储在媒体/胜利者/外部磁盘在我的情况下)。首先需要检查起跑线Linux LVM 分区(501758):

#fdisk -l media/victor/externalDisk/ss9backup.img 
Disk /media/victor/blackWD/ss9backup.img: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00026d62

                              Device Boot      Start         End      Blocks   Id  System
/media/victor/externalDisk/ubuntu14.10.img1   *        2048      499711      248832   83  Linux
/media/victor/externalDisk/ubuntu14.10.img2          501758   250068991   124783617    5  Extended
/media/victor/externalDisk/ubuntu14.10.img5          501760   250068991   124783616   8e  Linux LVM

现在我可以通过指定 [偏移量] = 起始块 [501750] x 块大小 [512] 将分区挂载到循环设备上。

losetup -o 256901120 /dev/loop0 /externalDisk/ubuntu14.10.img 

256901120其中偏移量为。

然后使用以下命令显示结果pvs

#pvs
  PV         VG        Fmt  Attr PSize   PFree
  /dev/loop0 ubuntu-vg lvm2 a--  119,00g    0 

然后使用以下命令激活:

#vgchange -a y ubuntu-vg
2 logical volume(s) in volume group "ubuntu-vg" now active

最后安装(只读)根分区(只是看看里面还剩下什么,但恢复工具不会使用这个挂载):

mount -o ro /dev/ubuntu-vg/root /mnt/Ubuntu14.10/

一旦到达那里,我就可以开始处理我的图像,就像它是设备一样(/dev/ubuntu-vg/root)就像大多数恢复程序一样要求设备从输入中恢复

恢复工具

我尝试了三个恢复程序,删除ext4magic摄影记录. 最后一个恢复了大多数 .eCryptfs 文件

  1. 摄影记录

以下是使用 photorec 的说明(感谢@Germar)

wget http://www.cgsecurity.org/testdisk-7.0.linux26-x86_64.tar.bz2
tar xvjf testdisk-7.0.linux26-x86_64.tar.bz2
cd testdisk-7.0
sudo ./photorec-static /d /home/victor/Downloads/recovery_folder /dev/ubuntu-vg/root

见下文:

在此处输入图片描述

  1. 删除

Extundelete 不如 Photorec 好用,但你可以试试。在 liveUSB 启动的 Ubuntu 上,确保已激活 universe 存储库,然后运行:

apt-get install extundelete

然后cd进入一个文件夹有足够空间的地方(恢复的文件将被复制到那里),然后运行此命令(其中/dev/ubuntu-vg-root是您要从中恢复文件的分区,不应安装,或者最多只读!!!):

extundelete /dev/ubuntu-vg/root --restore-all --after `date -d 'Aug 16 02:35' +%s`

您可以尝试限制程序从特定文件夹恢复(--restore-directory)或限制在特定日期后删除的文件(--after),查看所有命令选项

程序完成后,使用以下方法查找恢复的文件ECRYPTFS_FNEK_ENCRYPTED.XXXXX名字里有“幸福”。拥有的越多,越幸福。

你可以阅读这家伙本文他们都有类似的问题。

我个人没有发现很多加密文件,并且它们的大小都非常小。

解密恢复的文件

请参阅此线程来帮助我解决最后一个问题:https://askubuntu.com/questions/636764/ecryptfs-mount-wrong-fs-type-bad-option-bad-superblock

这是一个维基百科答案,请改进它!

答案2

您将需要一个 livecd: 通过 howtogeek 教程恢复

  1. 装载卷
  2. 打开终端
  3. 进入:sudo ecryptfs-recover-private

根据该链接,这应该是您的解决方案。

如果发生故障:

ecryptfs-unwrap-passphrase

答案3

编辑

哦,我刚刚发现,默认photorec已经可以恢复文件了 :-\ 所以忘记我之前写的内容吧。ecryptfs

您需要做的就是photorechttp://www.cgsecurity.org,提取并运行

wget http://www.cgsecurity.org/testdisk-7.0.linux26-x86_64.tar.bz2
tar xvjf testdisk-7.0.linux26-x86_64.tar.bz2
cd testdisk-7.0
sudo ./photorec-static /d /path/for/recovered/files /media/victor/externalDisk/ubuntu14.10.img

完成后,您将发现许多recup_dir.X文件夹,/path/for/recovered/files其中包含所有恢复的文件。将所有*.eCryptfs这些文件复制到一个.Private文件夹中,然后运行sudo ecryptfs-recover-private此程序,应该会找到.Private并要求您输入挂载密码(32 个字符长,应该在创建加密主目录后备份)

最后,您会在 中找到解密的文件/tmp/ecryptfs.xxxxxx。但所有文件名都消失了。它们被命名为f123456.eCryptfs。但查看 mime-types 您会找到所有重要的文件。


老的

photorec诸如搜索整个驱动​​器以查找已知签名和其他类型的 工具.jpg。由于您已加密文件,因此此方法无效。

但是 ecryptfs 会将自己的标头写入每个文件。我创建了一个加密的 testaccount,并使用十六进制查看器查看了这些文件

十六进制视图

如您所见,每个文件都具有相同的字节,从 到0x20包含0x2800 11 22 33 44 55 66 77 60并且从0x3B0x50包含62 08 5F 43 4F 4E 53 4F 4C 45 00 00 00 00 09 50 C7 5C 1F 2C 69 6E。您的文件可能会有所不同。但由于您已经恢复了一些文件,因此extundelete您可以检查一下。

了解这一点,你可以创建自己的签名以供photorec关注photorec 官方网站上的教程

祝你好运!

答案4

您应该制作一个可启动的 live usb,然后使用 try ubuntu not install,然后从您的备份中 dd 到笔记本电脑,这样您就可以开始了。也就是说,如果您有除错误之后的备份之外的其他备份。但无论如何,您确实使用了 -rf 标志,因此它甚至可以与您拥有的那个一起使用

相关内容