Mount

如何在另一個 LINUX 作業系統上通過 USB 掛載 LUKS 加密 Linux 文件系統解鎖分區以檢索文件

  • March 29, 2022

我整天都在這。我已經搜尋了網路和該板,並嘗試了許多解決此問題的方法,但似乎沒有任何效果。這裡有人問了類似的問題,但解決方案沒有幫助。

我覺得我很接近,但不知道如何跟進。拉出我的 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

您在 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 為額外副本賦予了不同的身份。

(我不得不在一個廣泛使用基於 SAN 儲存的線上快照作為複製磁碟的第一步的系統中解決一些 LVM 卷組衝突。沒有失去生產數據,主要是因為 Linux LVM 堅決拒絕進行任何狀態更改一次檢測到衝突,直到負責混亂的人意識到他們陷入困境並開始尋求幫助。)

引用自:https://unix.stackexchange.com/questions/697054