自动挂载 LUKS 加密的 USB 闪存驱动器时挂载错误

osh*_*nen 5 ubuntu usb encryption automounting luks

更新1:

userone@desktop:~$ sudo umount "/media/userone/New Volume"
umount: /media/userone/New Volume: mountpoint not found

userone@desktop:~$ sudo cryptsetup luksClose /dev/mapper/luks-04cb4ea7-7bba-4202-9056-a65006fe52d7
Device /dev/mapper/luks-04cb4ea7-7bba-4202-9056-a65006fe52d7 is not active.

userone@desktop:~$ sudo lsblk 
NAME                    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sdb                       8:16   1 29.5G  0 disk  
??sdb1                    8:17   1 29.5G  0 part  
  ??luks_USB            252:3    0 29.5G  0 crypt 
sr0                      11:0    1 1024M  0 rom   

userone@desktop:~$ sudo cryptsetup luksOpen /dev/sdb1 luks_USB
Device luks_USB already exists.

userone@desktop:~$ sudo mkdir /media/userone/luks_USB
mkdir: cannot create directory ‘/media/userone/luks_USB’: File exists

userone@desktop:~$ sudo mount /dev/mapper/luks_USB /media/userone/luks_USB
mount: wrong fs type, bad option, bad superblock on /dev/mapper/luks_USB,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

userone@desktop:~$ dmesg | tail
[20639.663250] JBD2: no valid journal superblock found
[20639.663257] EXT4-fs (dm-3): error loading journal
[20828.133606] JBD2: no valid journal superblock found
[20828.133613] EXT4-fs (dm-3): error loading journal
[20832.682397] JBD2: no valid journal superblock found
[20832.682405] EXT4-fs (dm-3): error loading journal
[20851.042343] JBD2: no valid journal superblock found
[20851.042349] EXT4-fs (dm-3): error loading journal
[21053.115711] JBD2: no valid journal superblock found
[21053.115718] EXT4-fs (dm-3): error loading journal

userone@desktop:~$ 
Run Code Online (Sandbox Code Playgroud)

原问题:

当我插入加密的 USB 驱动器时,我在 GNOME 对话框中收到此消息:

Error mounting /dev/dm-3 at /media/userone/New Volume: 
Command line 
    mount -t "ext4" \
          -o "uhelper=udisks2,nodev,nosuid" \
          "/dev/dm-3" "/media/userone/New Volume"'
exited with non-zero exit status 32:
    mount: wrong fs type, bad option, bad superblock on
           /dev/mapper/luks-04cb4ea7-7bba-4202-9056-a65006fe52d7,
           missing codepage or helper program, or other error.

In some cases, useful info is found in syslog - try dmesg | tail or so.
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何纠正这种情况?昨天工作正常。

for*_*are 6

看起来好像日志已经损坏了,这几天做了一些搜索,这在使用 LUKS 的设备上似乎并不少见。

您可以尝试fsck在设备上运行,确认之后可能无法访问设备上的任何数据 - 您可能希望dd在此之前使用它来制作驱动器的副本。

一个常见的解决方案似乎是从头开始创建 EXT4 文件系统,并使用mke2fs -t ext4 -O ^has_journal /dev/device. 显然,这样做会失去拥有日志文件系统的优势,并且会丢失设备上的任何数据!


问题

此问题是 EXT4 文件系统的日志已损坏。由于设备已加密并且文件系统驻留在加密“内部”这一事实,问题可能变得有点模糊。

解析度

下面有一系列评论,但是我认为这里的摘要对将来可能遇到此问题的任何人都会更有益。

  1. 解密设备,这使我们能够获得 EXT4 文件系统所在的设备: sudo cryptsetup luksOpen /dev/sdb1 luks_USB

  2. 创建在上一步中创建的设备的映像。我们需要这样做是因为文件系统检查实用程序通常不适用于已安装的设备,尽管未安装 EXT4 的设备,但它的“父级”已安装。 sudo dd if=/dev/dm-3 of=/tmp/USBimage.dd(添加bs和count争论,你认为合适)。

  3. 现在我们有了一个映像,我们可以运行文件系统检查:sudo e2fsck /tmp/USBimage.dd发现的任何问题都可以根据需要进行评估和修复。

  4. 您可以通过尝试挂载映像来检查您的文件系统是否已修复: sudo mount -o loop /tmp/USBimage.dd /mnt

此时 OP 能够访问他们的文件。

虽然我建议擦除 USB 记忆棒并重新开始(回到已知状态等),但我认为可以卸载图像/mnt,然后将其复制到损坏的设备上:sudo dd if=/tmp/USBimage.dd of=/dev/dm-3