我刚刚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 种默认模式。
- 一种方法是只加密
/home/user/Private
文件夹, - 第二是加密整个
/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 文件
- 摄影记录
以下是使用 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
见下文:
- 删除
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 教程恢复
- 装载卷
- 打开终端
- 进入:
sudo ecryptfs-recover-private
根据该链接,这应该是您的解决方案。
如果发生故障:
ecryptfs-unwrap-passphrase
答案3
编辑
哦,我刚刚发现,默认photorec
已经可以恢复文件了 :-\ 所以忘记我之前写的内容吧。ecryptfs
您需要做的就是photorec
从http://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
包含0x28
,00 11 22 33 44 55 66 77 60
并且从0x3B
到0x50
包含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 标志,因此它甚至可以与您拥有的那个一起使用