![如何通过 USB 在另一个 LINUX 操作系统上安装 LUKS 加密 Linux 文件系统解锁分区以检索文件](https://linux22.com/image/204131/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20USB%20%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%20LINUX%20%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%AE%89%E8%A3%85%20LUKS%20%E5%8A%A0%E5%AF%86%20Linux%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E8%A7%A3%E9%94%81%E5%88%86%E5%8C%BA%E4%BB%A5%E6%A3%80%E7%B4%A2%E6%96%87%E4%BB%B6.png)
我一整天都在做这个。我已经搜索过网络和这个板,并尝试了许多解决方案来解决这个问题,但似乎没有任何效果。这里有人问了类似的问题,但解决方案没有帮助。
我觉得我已经接近了,但不知道如何继续下去。拉出我的 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 坚决拒绝在一次更改后进行任何状态更改发现了冲突,直到造成混乱的人意识到他们已经无法应对并开始寻求帮助。)