我使用 加密了 Linux/home
分区ecryptfs
,我的 Linux 安装不再工作,我想从 Windows 访问存储在该分区上的文件。是否有允许我执行此操作的工具/程序?
答案1
加密文件系统是 Linux 内核内置的文件系统。无法从 Windows 中解密此数据。
但是,你可以启动 Ubuntu LiveCD,解密并恢复数据(假设你有所需的密钥),使用ecryptfs-恢复-私有公用事业。
完整说明可在此处找到:
全面披露:我是加密文件系统。
答案2
当提出这个问题时,在 Windows 上使用 ecryptfs 是不可能的,然而从那时起情况发生了变化。
WSL(Windows Subsystem for Linux)已经发展成为运行真实 Linux 内核的轻量级虚拟机。微软构建的该内核的默认版本不包含 ecryptfs 支持,但这个问题相对容易解决。
要在 Windows 上使用 ecryptfs:
答案3
由于 ecryptfs 是作为内核模块编写的,因此执行此操作的“工具”就是 Linux 内核。
但是我们仍然必须将数据复制到 Windows 或从 Linux 内部读取数据。
幸运的是,我们可以使用自动化工具在 Windows 中下载、安装、设置和运行 Linux 内核,只需使用一些精明的 Windows shell 命令即可。Vagrant 可以轻松处理 Windows 和 Ubuntu 之间的共享文件夹,并且可以通过 Windows 中的几个命令进行安装
在我们开始之前,如果你想将加密文件(包括元目录)从 ext4 分区复制到 NTFS,我建议磁盘内部 Linux 阅读器但是如果你熟悉 unixmount
命令,你可以跳过这一步(我只是更喜欢 GUI 而不是命令mount
)
安装流浪汉通过官方安装程序(不推荐使用 chocolatey 端口)
在 Windows 管理员提示符下(按 Windows 键并输入命令,然后右键单击以管理员身份运行):
安装巧克力味然后重新启动管理员命令提示符并输入:
choco install Cygwin cyg-get
在 cygwin 提示符下(按 Windows 键并输入 cygwin):
cyg-get install
# ASSUMING you copied all the decrypted files to windows, otherwise use mount method below
cd /cygdrive/c/<path to where encryptfs folder is located in windows>
# Either way:
vagrant init ubuntu/xenial64
vagrant up
vagrant ssh
您现在应该通过虚拟机进入 ubuntu shell:
sudo apt update
sudo apt install ecrypt-utils tree -y
# At this point you can use mount command, or if you just have the raw files on disk:
cd /vagrant/.ecryptfs
ls
cd myusername
ls .Private
# Either way, let's decrypt
# This WILL fail the first time due a strange bug,
ecrypt-recover-private .Private
# We will start and cancel a mount to fix the bug.
# Choose defaults for everything except passphrase (just press ENTER repeatedly)
sudo mount -t ecryptfs .Private/ decrypted
# Then cancel the mount
Would you like to proceed with the mount (yes/no)? : no
# Now that we fixed the bug with a canceled mount, let's actually recover:
ecrypt-recover-private .Private
# Now that should succeed, so see your data with this
tree /tmp
如果失败,您可能需要确保您有包装的密码文件(sudo updatedb && locate wrapped-passphrase
)或查看将包装好的密码插入密钥环
仍有问题?尝试 mount 方法。您还可以尝试以下方法(更多详细信息请点击此处):
sudo mount -t ecryptfs /dev/mydevicehere decrypted
请注意,您无需将任何文件从 ext4 复制到 NTFS 即可执行此挂载,并跳过一些步骤。
一旦成功,如果您希望 Windows 可以访问这些文件,只需/vagrant
使用cp
命令将它们复制到其中 - 请注意,这样做会复制数据。
都完成了吗?开心吗?输入 退出 Ubuntu VM exit
,然后输入 关闭它vagrant halt
,输入 删除 VMvagrant destroy