挂载加密SD卡:/dev/dm-3从何而来?

挂载加密SD卡:/dev/dm-3从何而来?

我试图在 Kubuntu 20.04 上安装加密的 SD 卡。

lsblk给了我这个:

NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0                                           7:0    0  97,9M  1 loop  /snap/core/10577
loop1                                           7:1    0  97,9M  1 loop  /snap/core/10583
loop2                                           7:2    0  55,4M  1 loop  /snap/core18/1932
loop3                                           7:3    0  55,4M  1 loop  /snap/core18/1944
loop4                                           7:4    0  64,8M  1 loop  /snap/gtk-common-themes/1514
loop5                                           7:5    0  64,4M  1 loop  /snap/gtk-common-themes/1513
sda                                             8:0    0 931,5G  0 disk  
├─sda1                                          8:1    0   512M  0 part  /boot/efi
├─sda2                                          8:2    0     1K  0 part  
├─sda5                                          8:5    0   731M  0 part  /boot
└─sda6                                          8:6    0 930,3G  0 part  
  └─sda6_crypt                                253:0    0 930,3G  0 crypt 
    ├─vgkubuntu-root                          253:1    0 929,3G  0 lvm   /
    └─vgkubuntu-swap_1                        253:2    0   976M  0 lvm   [SWAP]
sr0                                            11:0    1  1024M  0 rom   
mmcblk0                                       179:0    0 238,5G  0 disk  
└─mmcblk0p1                                   179:1    0 238,5G  0 part  
  └─luks-da818ea9-1681-4c54-93b4-e2cc6529e8f7 253:3    0 238,5G  0 crypt

创建一个用作挂载点的空目录后,我尝试挂载与 SD 卡相对应的不同 /dev,输出如下。

sudo mount /dev/mmcblk0p1 /media/alex/SDcard
mount: /media/alex/SDcard: unknown filesystem type 'crypto_LUKS'.

sudo mount /dev/mmcblk0 /media/alex/SDcard
mount: /media/alex/SDcard: /dev/mmcblk0 already mounted or mount point busy.

(我不知道为什么它说已安装或安装点繁忙。我之前已经在 Dolphin 文件浏览器中卸载了 SD 卡。)

sudo mount /dev/luks-da818ea9-1681-4c54-93b4-e2cc6529e8f7 /media/alex/SDcard
mount: /media/alex/SDcard: special device /dev/luks-da818ea9-1681-4c54-93b4-e2cc6529e8f7 does not exist.

然而,我只是偶然发现,以下命令可以工作并安装 SD 卡,并且我可以在安装点访问它。

sudo mount /dev/dm-3 /media/alex/SDcard

我现在的问题是这个 /dev/dm-3 从哪里来?或 中均未
提及/dev/dm-3 。如果不是偶然的话,是否还有其他方法可以找到它?lsblkfdisk -lgdisk -l /dev/mmcblk0

答案1

设备加密是使用称为的内核框架实现的设备映射器(这就是它的来源dm-3,它是系统中的第三个设备映射器设备)。 “安装”加密设备有两个步骤:

  1. 解锁/打开设备(在您的情况下是 SD 卡上的第一个分区)。您已经执行了此步骤(或者 KDE 为您执行了此操作),其结果是在分区顶部创建了一个设备映射器设备,从系统角度来看,该设备是一个普通的未加密设备(但之前对它的所有写入都已加密)将数据写入“真实”底层设备)并可以安装。设备映射器设备默认有两个路径 - /dev/dm-X( /dev/dm-3) 和“人类可读”,/dev/mapper/<name>其中“名称”通常是(对于 LUKS/dm-crypt 设备)luks-<UUID>
  2. 挂载步骤 1 中生成的设备映射器设备(或者实际上是其上的文件系统)。要挂载它,您需要使用完整路径,因此或者/dev/dm-3根据/dev/mapper/luks-da818ea9-1681-4c54-93b4-e2cc6529e8f7您的情况。
sudo mount /dev/mmcblk0p1 /media/alex/SDcard

这不起作用,因为加密设备(具有 LUKS/dm-crypt 格式)无法直接安装。

sudo mount /dev/mmcblk0 /media/alex/SDcard

这表示“设备正忙”,因为您尝试挂载的磁盘的分区上有未锁定的 LUKS 设备,因此该磁盘正忙。 (无论如何,安装带有分区而不是分区的磁盘是行不通的。)

sudo mount /dev/luks-da818ea9-1681-4c54-93b4-e2cc6529e8f7 /media/alex/SDcard

这很接近,你错过了mapper路径的一部分。

我现在的问题是这个 /dev/dm-3 从哪里来? lsblk、fdisk -l 或 gdisk -l /dev/mmcblk0 中均未提及 /dev/dm-3。如果不是偶然的话,是否还有其他方法可以找到它?

dm-3是“系统名称”,通常不会向用户显示,因为它在重新启动之间会发生变化,并且通常很难找出哪个设备映射器使用该名称。大多数工具都会显示“好的”/dev/mapper/luks-da818ea9-1681-4c54-93b4-e2cc6529e8f7路径,该路径是符号链接到/dev/dm-3.

如果您想手动挂载加密设备而不是使用 Dolphin(它将解锁并挂载设备)来执行此操作,您需要使用来lsblk识别 UDisks(KDE 用于处理设备的工具)为其提供的名称,然后请记住/dev/mapper本例中的路径前缀。

相关内容