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

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

更新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:~$ 

原问题:

当我插入加密的 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.

有人知道如何纠正这个问题吗?昨天还运行得很好。

答案1

看起来日志已经损坏,在过去几天进行了一些搜索,这在使用 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(添加您认为合适的参数)bscount

  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

答案2

我经常无缘无故地遇到这样的错误,通常只需卸载并重新安装即可修复它。您可以使用以下命令来执行此操作。

卸载 - 我知道它从一开始就没有安装,并且可能会抛出错误,但我会运行以确保运行 luksClose 的干净状态

sudo umount "/media/userone/New Volume"

卢克关闭

sudo cryptsetup luksClose /dev/mapper/luks-04cb4ea7-7bba-4202-9056-a65006fe52d7

现在重新挂载,首先获取 luks 容器所在的分区号:

sudo lsblk 

或者

sudo fdisk -l

然后在这里使用该分区,从您的错误消息来看,您的分区可能是
/dev/dm-3,但我会首先确认sudo lsblk

sudo cryptsetup luksOpen </dev/luks_partition_here> luks_USB

sudo mkdir /media/userone/luks_USB
sudo mount /dev/mapper/luks_USB /media/userone/luks_USB

相关内容