Linux

如何在磁碟映像內的加密 lvm 內掛載分區?

  • April 25, 2019

在我以前的電腦上,我在加密的 lvm 內有我的 //home 和 swap,而在 lvm 之外我有 /boot 和 /boot/efi。然後我創建了一個圖像。我我確實喜歡這樣:dd if=/dev/sda of=lvm.img bs=4M但我不記得了。如果我可以先解密圖像,我可以在 .bash_history 中檢查它…

我一直在嘗試遵循本指南:https ://gist.github.com/talaj/721d50791e95ea585316ea0571822fa7

首先我檢查了文件:

# file lvm.img 
lvm.img: DOS/MBR boot sector; partition 1 : ID=0xee, start-CHS (0x0,0,2), end-CHS 

(0x3ff,254,63), startsector 1, 250069679 sectors, extended partition table (last)

# fdisk -lu lvm.img
Disk lvm.img: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 9FEF2EAF-1AE7-47B1-A446-7B3EBCB24A54

Device       Start       End   Sectors   Size Type
lvm.img1      2048   3907583   3905536   1.9G EFI System
lvm.img2   3907584   7813119   3905536   1.9G Linux filesystem
lvm.img3   7813120 250068991 242255872 115.5G Linux LVM

所以它看起來肯定包含它應該包含的內容。我應該如何查看裡面的分區lvm.img3並掛載它們?

我從這個開始:

# kpartx -av lvm.img 
add map loop0p1 (253:3): 0 3905536 linear 7:0 2048
add map loop0p2 (253:4): 0 3905536 linear 7:0 3907584
add map loop0p3 (253:5): 0 242255872 linear 7:0 7813120

繼續這個:

# cryptsetup luksOpen /dev/mapper/loop0p3 mylvm

嗯?我不需要輸入密碼?任何。繼續引導。

# vgscan
 Reading volume groups from cache.
 Found volume group "fedora" using metadata type lvm2
 Found volume group "fedora_desktop-ld77fgg" using metadata type lvm2

# vgchange -a y fedora_desktop--ld77fgg
 Volume group "fedora_desktop--ld77fgg" not found
 Cannot process volume group fedora_desktop--ld77fgg

現在我被困住了……

我正在使用 Fedora,但如果這很重要,我可以切換到另一個發行版。

編輯:

正如電信公司在回答中指出的那樣,我犯了一個非常愚蠢的錯誤,我不明白怎麼做。儘管如此,我仍然有問題。我通過將雙破折號更改為單破折號更正了我的最後一個命令:

# vgchange -a y fedora_desktop-ld77fgg
 4 logical volume(s) in volume group "fedora_desktop-ld77fgg" now active

進而

# mount /dev/fedora_desktop-ld77fgg/03 /tmp/hej
mount: /tmp/hej: unknown filesystem type 'crypto_LUKS'.
 Found volume group "fedora_desktop-ld77fgg" using metadata type lvm2

# vgchange -a y fedora_desktop--ld77fgg

vgscan命令告訴您 VG 的名稱時,您可以在命令中按原樣使用它vgchange- 您不必加倍破折號。

邏輯捲管理器 (LVM) 的小總結:

  • 為了使用 LVM,您可以將分區或整個磁碟初始化為 LVM 物理卷 (PV)…
  • …並且您使用一個或多個 PV 創建一個卷組 (VG),它基本上被視為一堆統一的原始儲存空間,然後您可以自由地將其分割成…
  • ..一個或多個 LVM 邏輯卷 (LV)。單個 LV 可以跨越多個 PV:即使它由許多不相交的部分組成,放置在其上的文件系統也會將其視為單個邏輯上連續的儲存單元。並且 LV 可以在 VG 內從一個地方遷移到另一個地方,同時 LV 已安裝並正在使用中。

您只需要使用路徑名來執行此操作:由於格式為/dev/mapper/<VG name>-<LV name>,因此路徑名中任何未修改的單個破折號都會使其不明確:任何處理該名稱的程序都不會知道哪個破折號是名稱的一部分以及哪個破折號將 the<VG name><LV name>彼此的部分。


看起來您認為容器的順序是:

disk -> partition -> LUKS wrapper -> PV -> LV -> filesystem

但是在嘗試執行時不需要指定密碼片語cryptsetup luksOpen和嘗試掛載時的錯誤消息/dev/fedora_desktop-ld77fgg/03表明事情的實際順序是:

disk -> partition -> PV -> LV -> LUKS wrapper -> filesystem

要確認這一點,請查看您是否cryptsetup luksOpen /dev/mapper/loop0p3 mylvm實際創建了/dev/mapper/mylvm設備。我懷疑它可能根本沒有做任何事情。

相反,您現在應該這樣做:

# cryptsetup luksOpen /dev/fedora_desktop-ld77fgg/03 myfs
<answer the passphrase prompt>
# mount /dev/mapper/myfs /tmp/hej

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