在Ubuntu上使用(Windows)BitLocker加密的硬盘

如何在Ubuntu上挂载我的BitLocker加密驱动器?
我已经查看了Wine的网站,但它不支持BitLocker,而且我也不知道如何在我的计算机上安装Dislocker。
我无法解除加密,因为学校的电脑使用的是Windows操作系统而不是Linux操作系统。另外,我之所以安装Ubuntu是因为我的Windows操作系统无法工作。
6个回答

自Ubuntu 18.04起,Dislocker已经包含在Ubuntu Universe软件包中。可以使用以下命令进行安装:
sudo apt install dislocker

你可能需要
sudo add-apt-repository universe
sudo apt update

首先,我们创建两个文件夹,/media/bitlocker/media/mount
sudo mkdir /media/bitlocker /media/mount
然后,下载并解压Dislocker
您需要安装一些所需的软件包:
sudo apt-get install libfuse-dev
要安装它,我们需要切换到dislocker文件夹:
cd dislocker 根据您的操作系统,您需要选择其中之一:
对于基于Debian Jessie或Ubuntu 14.04或更旧的类似Debian的发行版:
aptitude install gcc cmake make libfuse-dev libpolarssl-dev ruby-dev
对于基于Debian Stretch或Ubuntu 16.04或更高版本的类似Debian的发行版:
aptitude install gcc cmake make libfuse-dev libmbedtls-dev ruby-dev
现在我们最终安装dislocker:
cmake . make sudo make install
在这里,我们需要找到我们的分区,以免意外删除所有驱动器。
sudo fdisk -l

如果我们有一个恢复密码,我们可以使用它来解密。
sudo dislocker -r -V /dev/sdaX -p 1536987-000000-000000-000000-000000-000000-000000-000000 -- /media/bitlocker

PS: 你应该用你的恢复密码 1536987-000000-000000-000000-000000-000000-000000-000000 替换它。
如果你知道你的密码,我们也可以直接使用。
sudo dislocker -r -V /dev/sdaX -u yourPassword -- /media/bitlocker

如果您的磁盘挂载到sdb,请使用选项sdb1。
如果您正在使用恢复文件进行解密,请改用"path/to/.BEK"。
sudo dislocker-fuse -V /dev/sdcX -f /media/user/usb-drive/00000000-0X0X-0XX0-XXX0-XXXX0XXX00XX.BEK -- /media/bitlocker

现在,我们终于装载我们的文件:
sudo -i
cd /media/bitlocker
mount -r -o loop dislocker-file /media/mount

(如果上面的挂载失败并显示“权限被拒绝”,请添加-r选项并重试。)
现在您可以进入/media/mount文件夹,查看解密后的数据。
阅读源链接以获取更多信息和详细内容。

我没有恢复密码。而且我不确定从哪里获得它。你能告诉我关于这个的情况吗? - Ejaz Karim
1我也需要这个:sudo apt-get install libpolarssl-dev - 否则 make 会失败。 - friederbluemle
3这个功能是否也允许对BitLocker加密的驱动器进行写入操作,而不仅仅是读取? - Samir
nazar@android:~/dislocker$ cmake . -- C编译器标识为GNU 6.2.0 -- 检查C编译器是否可用:/usr/bin/cc -- 检查C编译器是否可用:/usr/bin/cc -- 可用 -- 检测C编译器ABI信息 -- 检测C编译器ABI信息 - 完成 -- 检测C编译特性 -- 检测C编译特性 - 完成 -- 找不到POLARSSL(缺失:) - nazar2sfive
nazar@android:~/dislocker$ sudo apt-get install libpolarssl-dev 正在读取软件包列表... 完成 正在构建依赖关系树
正在读取状态信息... 完成 E: 无法找到软件包 libpolarssl-dev
- nazar2sfive
1在Ubuntu 16.10上失败了。 - nazar2sfive
sudo fdisk -l 列出了 /dev/sdb1/dev/sdb3,尽管在 USB-Stick 上没有分区。此外,dislocker 命令在它们上面都无法工作。 - Thorsten Niehues
1dislocker应该支持对某些BitLocker容器/版本的读写(rw)访问。"the source"链接中提到,在2014年时,尚不支持Windows 8的rw访问,并且有一条评论说它会“以只读方式挂载(即使挂载显示为可读写)”,这可能导致挂载错误“ntfs-3g-mount: mount failed: Permission denied”。省略dislocker和mount命令中的-r选项,可以尝试以可读写方式进行挂载。 - Xen2050
我认为这种方法对于在Windows 10中引入的更新版本Bitlocker加密的光盘已经不再适用了。sudo fdisk -l甚至无法识别磁盘驱动器。我只能想到这就是原因。 - emrecnl
如果你遇到了和我一样的错误信息 /usr/include/ruby-2.5.0/ruby/ruby.h:24:10: fatal error: ruby/config.h: No such file or directory #include "ruby/config.h",只需执行以下命令 sudo cp /usr/include/x86_64-linux-gnu/ruby-2.5.0/ruby/config.h /usr/include/ruby-2.5.0/ruby/ - Qohelet
在基于Debian的系统上,有一种更简单的安装方法:使用sudo apt install dislocker。 - gdbdable
非常感谢!:) - Romanzhivo
在Ubuntu 20.04上也运行得很好!非常感谢你。 - Pereira

你需要使用Dislocker来使用BitLocker加密的驱动器。你可以从这里下载它,或者也可以在GitHub上找到一个代码库
安装它需要以下几个步骤:
  • 一个编译器,GCC 或者 Clang
  • Make(或者对于FreeBSD来说是gmake);
  • FUSE的头文件;
  • PolarSSL的头文件;
  • 一个使用BitLocker加密的分区,来自Windows Vista、7或8。
详细的安装说明,请参考这个页面或者查看下载的Dislocker存档中的install.txt文件。

7你真的有必要链接到GitHub的维基百科页面吗? - Vercas

非常好的教程,但是有一个问题。由于文件是只读的,你需要使用只读标志:
mount -ro loop dislocker-file /media/mount

还有一个选项 -u (--user-password),可以使这个过程变得更加简单。
sudo dislocker -r -V /dev/sdaX -u -- /media/mount
Enter the user password:▯ 

如果你想在同一个文件夹中再次挂载,请使用以下命令:
sudo dislocker -r -V /dev/sdaX -u -- -o nonempty /media/mount

(其中X应该被您的加密驱动器的编号替换,例如/dev/sda7)

3另外,不要使用make uninstall命令来卸载此软件包。这会破坏你的符号链接,并且看起来好像你的/usr/bin目录已被删除,你可能会认为需要重新安装你的发行版,但实际上在重启后文件都还在那里。我找不到帮助我解决这个问题的页面,但是Makefile中还存在其他问题,维护者应该注意到这一点。 - technop

现代版本的Ubuntu/Kubuntu可以在没有额外软件的情况下解密BitLocker分区。

至少我在Kubuntu 22.04中进行了测试(一切正常)。


我最近安装了dislocker,并运行脚本cmake .时触发了错误,尝试找到已安装的polarssl
偶然间,我最终成功安装了它:你不应该在第一次回复中提到的/dislocker/src目录下运行cmake(也许过去可以),而应该:
cd /dislocker
cmake .

或许在dislocker/src目录下使用make命令可以成功,而使用cmake命令则不行? - Xen2050

libpolarssl的新软件包名称是:libmbedtls-dev。
因此,您可以通过安装它来为cmake安装libpolarssl组件。
apt-get install libmbedtls-dev

然后cname和其他一切都会正常工作

所以这个方案和所有旧的解决方案都意味着加密密钥完全存储在驱动器上,而不是像 BitLocker 本身那样只存储在主板上的 TPU 的一部分,对吗? - matanster