使用dislocker在Linux上挂载Bitlocker加密的卷

Bitlocker是微软的磁盘加密工具,仅支持Windows Vista以上的Windows操作系统,而微软也未公开其相关参数。

有一开源实现,dislocker,可以实现在Linux上以多种方式(用户密码/恢复密钥/BEK格式的恢复文件…)解密并访问由Bitlocker加密的卷。


  1. 编译安装dislocker
$ git clone https://github.com/Aorimn/dislocker
$ cd dislocker
$ apt install build-essential cmake libfuse-dev libmbedtls-dev ruby-dev
// 修复ruby找不到header文件的问题
# ln -s /usr/include/x86_64-linux-gnu/ruby-2.5.0/ruby/config.h /usr/include/ruby-2.5.0/ruby/ruby/config.h
$ cmake
$ make
# make install

2.使用

假设使用Bitlocker加密的卷为/dev/sda3,且该卷可用密码解密.

# mkdir /mnt/.dislocker-sda3 /mnt/sda3
# dislocker -v -V /dev/sda3 -u -- /mnt/.dislocker-sda3
// 在交互界面输入Bitlocker密码
# mount -o rw /mnt/.dislocker-sda3 /mnt/sda3

解除挂载

# umount /mnt/sda3
# umount /mnt/.dislocker-sda3

3.配合fstab完成自动挂载

在fstab文件中添加一行即可。

/dev/sda3 /mnt/sda3 fuse.dislocker user-password={bitlocker_password},nofail 0 0

警告:在未全盘加密的系统上使用或泄露Bitlocker卷的密码/恢复密钥


4.可能存在的问题

该实现最后一次commit是在2017年2月,不确定其能否支持Windows 10引入的、不提供向前兼容的新Bitlocker算法。

笔者测试时使用的是由Windows 7创建的Bitlocker卷,使用(默认的)AES-128加密,能正常地完成读取和写入,不会造成文件或卷损坏。