如何通过 USB 在另一个 LINUX 操作系统上安装 LUKS 加密 Linux 文件系统解锁分区以检索文件

如何通过 USB 在另一个 LINUX 操作系统上安装 LUKS 加密 Linux 文件系统解锁分区以检索文件

我一整天都在做这个。我已经搜索过网络和这个板,并尝试了许多解决方案来解决这个问题,但似乎没有任何效果。这里有人问了类似的问题,但解决方案没有帮助。

我觉得我已经接近了,但不知道如何继续下去。拉出我的 NVME 驱动器并通过 USB 将其连接到我的 Linux Mint 机器。我可以看到该驱动器,并且可以使用密码解锁该驱动器,但无法安装它。解锁的时候不应该挂载吗?

我做错了什么?我该怎么做才能安装它?

我是否必须先解密主 LVM2 物理卷 (LVM2 001)?或者只关注 LUKS 分区?

下面是我尝试过的一些信息和行命令。谢谢你们。任何帮助是极大的赞赏。

$ sudo lsblk -f
NAME        FSTYPE LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINT
sda                                                                            
├─sda1      ext4         a7987e8b-cdc7-43b8-9d3f-0fe58103bd71    160.7M    70% /boot
├─sda2                                                                         
└─sda5      crypto       44697cdf-8332-4595-870d-21296693002e                  
  └─sda5_crypt
            LVM2_m       QXqf19-8D7z-W9pC-QkI2-t8Hc-CCek-XuH9TU                
    ├─mint--vg-root
    │       ext4         bb06e16e-d776-4282-88d2-c91120979c02      1.6T     4% /run/times
    └─mint--vg-swap_1
            swap         25824eea-25c6-453a-8d21-704fd2a4be90                  [SWAP]
sdd                                                                            
├─sdd1      vfat         DCEE-4749                                             
├─sdd2      ext4         71f85328-bae1-4179-9a6a-8cf6661730e7    342.2M    44% /media/t/7
└─sdd3      crypto       2e3b8613-e988-4aff-a4ba-0915ce305bb4                  
  └─crypted_sdd3
            LVM2_m       1UwgAt-xngX-SlvP-bl8w-0rRu-pLGt-XcBHYN 
$ sudo lvs
  LV     VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   mint-vg -wi-------  <1.82t                                                    
  root   mint-vg -wi-ao----  <1.82t                                                    
  swap_1 mint-vg -wi------- 976.00m                                                    
  swap_1 mint-vg -wi-ao---- 976.00m     
$ sudo vgs
  VG      #PV #LV #SN Attr   VSize  VFree
  mint-vg   1   2   0 wz--n- <1.82t    0 
  mint-vg   1   2   0 wz--n- <1.82t    0

我多次尝试挂载 sdd3 但没有成功

$ mount /dev/sdd3
mount: /dev/sdd3: can't find in /etc/fstab.
$ sudo mount /dev/mapper/recoverytarget /mnt/recoverytarget
mount: /mnt/recoverytarget: special device /dev/mapper/recoverytarget does not exist.
$ sudo cryptsetup open /dev/sdd3 luksrecoverytarget --type luks

Enter passphrase for /dev/sdd3: 
Device luksrecoverytarget already exists.
$ sudo lsblk -f /dev/sdd3
NAME FSTYPE LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINT
sdd3 crypto       2e3b8613-e988-4aff-a4ba-0915ce305bb4                  
└─crypted_sdd3
     LVM2_m       1UwgAt-xngX-SlvP-bl8w-0rRu-pLGt-XcBHYN          
$ sudo /dev/mapper/crypted_sdd3 /mnt/2e3b8613-e988-4aff-a4ba-0915ce305bb4 ext4 defaults 0 0
sudo: /dev/mapper/crypted_sdd3: command not found
$ sudo mount -av
/                        : ignored
/boot                    : already mounted
none                     : ignored
$ sudo blkid | grep crypto
/dev/sda5: UUID="44697cdf-8332-4595-870d-21296693002e" TYPE="crypto_LUKS" PARTUUID="5f1dfb0d-05"
/dev/sdc3: UUID="2e3b8613-e988-4aff-a4ba-0915ce305bb4" TYPE="crypto_LUKS" PARTUUID="0be31b07-df9d-43c6-a0d4-ef4e8be65bd0"
$ sudo cryptsetup luksOpen /dev/sdc3/ crypthome
Device /dev/sdc3/ doesn't exist or access denied.
$ sudo vgchange -an --select vg_uuid=f0u7eE-zgoH-mDLS-x7Rs-3RGe-uoob-OFcht2 Volume group "mint-vg" successfully changed 0 logical volume(s) in volume group "mint-vg" now active
$ sudo vgexport --select vg_uuid=f0u7eE-zgoH-mDLS-x7Rs-3RGe-uoob-OFcht2 Volume group "mint-vg" successfully exported
$ sudo pvscan
  Error reading device /dev/mapper/luksrecoverytarget at 0 length 512.
  Error reading device /dev/mapper/luksrecoverytarget at 0 length 4096.
  PV /dev/mapper/luks-2e3b8613-e988-4aff-a4ba-0915ce305bb4    is in exported VG mint-vg [<1.82 TiB / 0    free]
  PV /dev/mapper/sda5_crypt                                  VG mint-vg         lvm2 [<1.82 TiB / 0    free]
  Total: 2 [<3.64 TiB] / in use: 2 [<3.64 TiB] / in no VG: 0 [0   ]
$ sudo vgimport --select vg_uuid=f0u7eE-zgoH-mDLS-x7Rs-3RGe-uoob-OFcht2
  Volume group "mint-vg" successfully imported
$ sudo mkdir -p /mnt/--select vg_uuid=f0u7eE-zgoH-mDLS-x7Rs-3RGe-uoob-OFcht2/users
$ sudo mount /dev/--select vg_uuid=f0u7eE-zgoH-mDLS-x7Rs-3RGe-uoob-OFcht2/users
mount: /home/t/vg_uuid=f0u7eE-zgoH-mDLS-x7Rs-3RGe-uoob-OFcht2/users: special device /dev/--select does not exist.
$ sudo mount /dev/mapper/luks-2e3b8613-e988-4aff-a4ba-0915ce305bb4 /mnt/recoverytarget
mount: /mnt/recoverytarget: unknown filesystem type 'LVM2_member'.
$ sudo mount /dev/sdb3 /mnt/recoverytarget
mount: /mnt/recoverytarget: unknown filesystem type 'crypto_LUKS'.
$ sudo vgimport --select vg_uuid=f0u7eE-zgoH-mDLS-x7Rs-3RGe-uoob-OFcht2 /dev/sdb3
  Volume group "sdb3" not found
  Cannot process volume group sdb3

答案1

您在 LUKS 分区之上的 LVM 之上有一个文件系统。

系统可以自动热插拔磁盘、读取分区表并自动检测分区表,但因为下一层是LUKS,所以自动处理会到此为止。

您需要按顺序继续完成剩余的层。

首先,sudo cryptsetup open /dev/sdd3 luksrecoverytarget --type luks将解锁 LUKS 层并将其以未加密的形式呈现为/dev/mapper/luksrecoverytarget.

但就您而言,它不是一个直接的文件系统,而是一个 LVM 物理卷。在访问文件系统之前,需要先激活 LVM 卷组。

根据您的发行版的 udev 规则,系统可能会也可能不会在创建/dev/mapper/luksrecoverytarget.可以肯定的是,您可以sudo vgscan在解锁 LUKS 层后运行:这样,如果卷组的所有部分都不可访问(例如,如果卷组已扩展到其原始位置的另一个磁盘),您也会看到一条错误消息)。之后,正常过程将运行sudo vgchange -ay以显式尝试激活任何检测到的 LVM 卷组。

但卷组命名冲突似乎会带来额外的复杂性:如果卷组的名称与现有 VG 的名称匹配,则需要先更改 VG 的名称,然后才能激活它。

要消除传输磁盘上 VG 的冲突,您需要通过其 LVM VG UUID 来标识要重命名的 VG。你需要这样的命令:

sudo vgrename f0u7eE-zgoH-mDLS-x7Rs-3RGe-uoob-OFcht2 recoverymint-vg

之后,您应该能够使用以下命令激活 VG

sudo vgchange -ay recoverymint-vg

由于一个LVM卷组可能包含多个文件系统(即使它只是一个LVM物理卷),典型的自动挂载系统可能会认为它对于自动挂载来说过于复杂。因此,下一步是运行例如sudo lvs验证卷组中包含的 LVM 逻辑卷的名称,然后安装它。


在 Linux LVM2(= 当前的非旧版本)中,仅当您计划移动包含已知或怀疑会在目标系统上引起冲突的 VG 的 LVM 磁盘时,才真正需要vgexport/命令。vgimport

vgexport本质上,在移动磁盘之前在源系统上运行将告诉目标系统“我很确定您不需要我;找到另一个同名的系统”。这使得目标系统即使在存在 VG 名称冲突的情况下也能成功引导。

如果通过热插拔将磁盘添加到目标系统,LVM 会足够智能,会优先选择已激活的 VG,而不是突然出现的潜在篡改者(恰好具有相同名称但不同 VG UUID)。

如果 VG 在克隆时处于非活动状态,即使是具有相同 UUID 的克隆 VG 也会被正确处理:已激活的 VG 版本将优先于非活动的额外副本,并且 LVM 命令将大声抱怨输出 - of-sync 额外副本并拒绝对克隆的 VG 进行任何更改,直到通过更改其 UUID 为额外副本赋予独特的身份。

(我必须解决系统中的一些 LVM 卷组冲突,该系统广泛使用基于 SAN 存储的在线快照作为克隆磁盘的第一步。没有丢失任何生产数据,主要是因为 Linux LVM 坚决拒绝在一次更改后进行任何状态更改发现了冲突,直到造成混乱的人意识到他们已经无法应对并开始寻求帮助。)

相关内容