首先,我是 Ubuntu 新手。我想在 Ubuntu 16.04 LTS 32 位系统中使用我的 bit-locker 加密内置硬盘。所以我下载了解除锁定(dislocker-master.zip
)。
解压的 zip 文件根据INSTALL.md
文件中给出的说明在 Ubuntu 上编译并安装了 Dislocker。要使用 Dislocker,他们写道
安装后,请参阅
dislocker(1)
有关如何使用它的详细信息。
但INSTALL.md
我在解压的 zip 文件中找不到dislocker(1)
任何内容。所以我在 Google 上搜索如何使用它,并找到了教程https://www.youtube.com/watch?v=n7XT5fK4iwA。
根据这个,终端的最后一行
sudo mount -o loop /media/drive1/dislocker-file /media/mount1/
显示错误:
ntfs-3g-mount: mount failed: Permission denied
为了解决这个问题,我在 Google 上搜索并找到了一个命令https://github.com/Aorimn/dislocker/issues/86,因此我使用了以下命令:
sudo mount -o ro,loop /media/drive1/dislocker-file /media/mount1/
这会以只读方式打开 Bitlocker 加密的驱动器。但我想要写访问也。我该怎么做?
我尝试过的事情:
$ sudo chown jin:jin drive1
chown: changing ownership of 'drive1': Function not implemented
$ chmod 777 drive1/
error: chmod: changing permissions of 'drive1/': Function not implemented
我也检查过了在 Ubuntu 14.04 LTS 上使用 (Windows) BitLocker 加密驱动器结果(我的密码以 1 开头):
$ sudo dislocker -r -V /dev/sda3 -123*** -- /media/drive1
dislocker: invalid option -- '1'
dislocker by Romain Coltel, v0.7.1 (compiled for Linux/x86)
Usage: dislocker [-hqrsv] [-l LOG_FILE] [-O OFFSET] [-V VOLUME DECRYPTMETHOD -F[N]] [-- ARGS...]
with DECRYPTMETHOD = -p[RECOVERY_PASSWORD]|-f BEK_FILE|-u[USER_PASSWORD]|-k FVEK_FILE|-c
Options:
-c, --clearkey decrypt volume using a clear key (default)
-f, --bekfile BEKFILE
decrypt volume using the bek file (on USB key)
-F, --force-block=[N] force use of metadata block number N (1, 2 or 3)
-h, --help print this help and exit
-k, --fvek FVEK_FILE decrypt volume using the FVEK directly
-l, --logfile LOG_FILE
put messages into this file (stdout by default)
-O, --offset OFFSET BitLocker partition offset, in bytes (default is 0)
-p, --recovery-password=[RECOVERY_PASSWORD]
decrypt volume using the recovery password method
-q, --quiet do NOT display anything
-r, --readonly do not allow to write on the BitLocker volume
-s, --stateok do not check the volume's state, assume it's ok to mount it
-u, --user-password=[USER_PASSWORD]
decrypt volume using the user password method
-v, --verbosity increase verbosity (CRITICAL errors are displayed by default)
-V, --volume VOLUME volume to get metadata and keys from
-- end of program options, beginning of FUSE's ones
ARGS are any arguments you want to pass to FUSE. You need to pass at least
the mount-point.
Tue Aug 22 14:16:09 2017 [CRITICAL] Failed to open : No such file or directory
*** Error in `dislocker': corrupted size vs. prev_size: 0x816bb090 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x67377)[0xb755c377]
/lib/i386-linux-gnu/libc.so.6(+0x6d2f7)[0xb75622f7]
/lib/i386-linux-gnu/libc.so.6(+0x6d6ce)[0xb75626ce]
/lib/i386-linux-gnu/libc.so.6(+0x6e395)[0xb7563395]
/lib/i386-linux-gnu/libc.so.6(_IO_setb+0x61)[0xb7560171]
/lib/i386-linux-gnu/libc.so.6(_IO_file_close_it+0xa3)[0xb755e8b3]
/lib/i386-linux-gnu/libc.so.6(fclose+0x89)[0xb7552a69]
/usr/local/lib/libdislocker.so.0.7(dis_stdio_end+0x2b)[0xb76b1150]
/usr/local/lib/libdislocker.so.0.7(dis_destroy+0x68)[0xb76af4cf]
/usr/local/lib/libdislocker.so.0.7(dis_initialize+0xe6)[0xb76af5c8]
dislocker(main+0xe8)[0x80095eb2]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf7)[0xb750d637]
dislocker(+0x951)[0x80095951]
======= Memory map: ========
80095000-80097000 r-xp 00000000 08:06 550017 /usr/local/bin/dislocker-fuse
80097000-80098000 r--p 00001000 08:06 550017 /usr/local/bin/dislocker-fuse
80098000-80099000 rw-p 00002000 08:06 550017 /usr/local/bin/dislocker-fuse
816bb000-816dc000 rw-p 00000000 00:00 0 [heap]
b6f00000-b6f21000 rw-p 00000000 00:00 0
b6f21000-b7000000 ---p 00000000 00:00 0
b707b000-b7097000 r-xp 00000000 08:06 1588 /lib/i386-linux-gnu/libgcc_s.so.1
b7097000-b7098000 rw-p 0001b000 08:06 1588 /lib/i386-linux-gnu/libgcc_s.so.1
b70ae000-b70b0000 rw-p 00000000 00:00 0
b70b0000-b7103000 r-xp 00000000 08:06 1620 /lib/i386-linux-gnu/libm-2.23.so
b7103000-b7104000 r--p 00052000 08:06 1620 /lib/i386-linux-gnu/libm-2.23.so
b7104000-b7105000 rw-p 00053000 08:06 1620 /lib/i386-linux-gnu/libm-2.23.so
b7105000-b710e000 r-xp 00000000 08:06 1560 /lib/i386-linux-gnu/libcrypt-2.23.so
b710e000-b710f000 r--p 00008000 08:06 1560 /lib/i386-linux-gnu/libcrypt-2.23.so
b710f000-b7110000 rw-p 00009000 08:06 1560 /lib/i386-linux-gnu/libcrypt-2.23.so
b7110000-b7137000 rw-p 00000000 00:00 0
b7137000-b71c1000 r-xp 00000000 08:06 528942 /usr/lib/i386-linux-gnu/libgmp.so.10.3.0
b71c1000-b71c2000 r--p 00089000 08:06 528942 /usr/lib/i386-linux-gnu/libgmp.so.10.3.0
b71c2000-b71c3000 rw-p 0008a000 08:06 528942 /usr/lib/i386-linux-gnu/libgmp.so.10.3.0
b71c3000-b71c4000 rw-p 00000000 00:00 0
b71c4000-b746a000 r-xp 00000000 08:06 535258 /usr/lib/i386-linux-gnu/libruby-2.3.so.2.3.0
b746a000-b746e000 r--p 002a5000 08:06 535258 /usr/lib/i386-linux-gnu/libruby-2.3.so.2.3.0
b746e000-b746f000 rw-p 002a9000 08:06 535258 /usr/lib/i386-linux-gnu/libruby-2.3.so.2.3.0
b746f000-b7476000 rw-p 00000000 00:00 0
b7476000-b74cd000 r-xp 00000000 08:06 535153 /usr/lib/i386-linux-gnu/libmbedcrypto.so.2.2.1
b74cd000-b74ce000 ---p 00057000 08:06 535153 /usr/lib/i386-linux-gnu/libmbedcrypto.so.2.2.1
b74ce000-b74d0000 r--p 00057000 08:06 535153 /usr/lib/i386-linux-gnu/libmbedcrypto.so.2.2.1
b74d0000-b74d1000 rw-p 00059000 08:06 535153 /usr/lib/i386-linux-gnu/libmbedcrypto.so.2.2.1
b74d1000-b74d3000 rw-p 00000000 00:00 0
b74d3000-b74ec000 r-xp 00000000 08:06 1694 /lib/i386-linux-gnu/libpthread-2.23.so
b74ec000-b74ed000 r--p 00018000 08:06 1694 /lib/i386-linux-gnu/libpthread-2.23.so
b74ed000-b74ee000 rw-p 00019000 08:06 1694 /lib/i386-linux-gnu/libpthread-2.23.so
b74ee000-b74f0000 rw-p 00000000 00:00 0
b74f0000-b74f3000 r-xp 00000000 08:06 1574 /lib/i386-linux-gnu/libdl-2.23.so
b74f3000-b74f4000 r--p 00002000 08:06 1574 /lib/i386-linux-gnu/libdl-2.23.so
b74f4000-b74f5000 rw-p 00003000 08:06 1574 /lib/i386-linux-gnu/libdl-2.23.so
b74f5000-b76a5000 r-xp 00000000 08:06 1550 /lib/i386-linux-gnu/libc-2.23.so
b76a5000-b76a7000 r--p 001af000 08:06 1550 /lib/i386-linux-gnu/libc-2.23.so
b76a7000-b76a8000 rw-p 001b1000 08:06 1550 /lib/i386-linux-gnu/libc-2.23.so
b76a8000-b76ab000 rw-p 00000000 00:00 0
b76ab000-b76c7000 r-xp 00000000 08:06 550014 /usr/local/lib/libdislocker.so.0.7.1
b76c7000-b76c8000 r--p 0001b000 08:06 550014 /usr/local/lib/libdislocker.so.0.7.1
b76c8000-b76c9000 rw-p 0001c000 08:06 550014 /usr/local/lib/libdislocker.so.0.7.1
b76c9000-b76f8000 r-xp 00000000 08:06 1587 /lib/i386-linux-gnu/libfuse.so.2.9.4
b76f8000-b76f9000 ---p 0002f000 08:06 1587 /lib/i386-linux-gnu/libfuse.so.2.9.4
b76f9000-b7702000 r--p 0002f000 08:06 1587 /lib/i386-linux-gnu/libfuse.so.2.9.4
b7702000-b7703000 rw-p 00038000 08:06 1587 /lib/i386-linux-gnu/libfuse.so.2.9.4
b7718000-b771b000 rw-p 00000000 00:00 0
b771b000-b771d000 r--p 00000000 00:00 0 [vvar]
b771d000-b771f000 r-xp 00000000 00:00 0 [vdso]
b771f000-b7741000 r-xp 00000000 08:06 1522 /lib/i386-linux-gnu/ld-2.23.so
b7741000-b7742000 rw-p 00000000 00:00 0
b7742000-b7743000 r--p 00022000 08:06 1522 /lib/i386-linux-gnu/ld-2.23.so
b7743000-b7744000 rw-p 00023000 08:06 1522 /lib/i386-linux-gnu/ld-2.23.so
bff87000-bffa8000 rw-p 00000000 00:00 0 [stack]
Aborted (core dumped)
这是什么意思?我尝试了密钥恢复密钥命令,
$ sudo dislocker -r -V /dev/sdaX -p1536987-000000-000000-000000-000000-000000-000000-000000 -- /media/bitlocker
和密码,
$ sudo dislocker -r -V /dev/sda3 -u -- /media/drive1
运行正常,但是命令
$ mount -r -o loop dislocker-file /media/mount
使用-r
选项不是给出任何错误,但打开驱动器只读模式并且不带-r
选项会出现同样的错误:权限被拒绝。
我还查看了评论:
Dislocker 应该支持对某些 Bitlocker 容器/版本的读写 (rw) 访问,“源”链接表示尚不支持 Windows 8 rw 访问”(2014 年),并且有一条评论表示它会默默地安装为 ro(即使安装显示为 rw)”可能会导致安装错误
ntfs-3g-mount: mount failed: Permission denied
。省略-r
Dislocker & mount 选项应该尝试安装 rw
但什么都不明白。这是否意味着使用 Windows 7 的 Bitlocker 加密的驱动器可以以写入模式打开?我尝试使用 Windows 7 的 Bitlocker 加密的驱动器,但它也抛出了相同的错误并且只能以读取模式打开。现在,我如何在 Ubuntu 中启用 Bitlocker 加密驱动器的写入访问权限?
答案1
您可以尝试将 dislocker 文件挂载为循环设备,并授予所有人写入权限吗:
sudo mount -o loop,umask=0,uid=nobody,gid=nobody /media/drive1/dislocker-file /media/mount1
答案2
如果你现在还没搞清楚这一点,
mkdir /media/dislocker mkdir /media/windows
确保这里不使用 -r 选项
dislocker -V /dev/sdax -pxxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx -- /media/dislocker
mount -o loop /media/dislocker/dislocker-file /media/windows
答案3
此外,回答您可以使用任何您喜欢的 uid、gid 来挂载/media/drive1/dislocker-file
,例如:
sudo mount -o loop,uid=<myUserId>,gid=<myGroupId> /media/drive1/dislocker-file /media/mount1
/media/mount1
然后,您可以从您的用户帐户访问任何文件。
答案4
如果sudo mount -o ro,loop /media/drive1/dislocker-file /media/mount1/
是因为ro
意味着只读。请将其更改为它rw
,然后您应获得写访问权限。