加密分區並允許 qemu 將其用作訪客驅動器
我正在嘗試以
cryptsetup
允許QEMU-KVM
將其用作來賓驅動器的方式加密我的 SSD 上的 25gb 分區。我試過 luksformatting 驅動器:
cryptsetup luksFormat /dev/disk/by-id/...
然後打開它:
cryptsetup luksOpen /dev/disk/by-id/... windows-vm
/dev/mapper/windows-vm
儘管 QEMU 在嘗試使用此腳本訪問設備時被拒絕:#!/bin/bash exec qemu-system-x86_64 \ --enable-kvm \ -netdev user,id=vmnic -device virtio-net,netdev=vmnic \ -usbdevice tablet \ -monitor stdio \ -machine type=pc,accel=kvm \ -cpu host \ -m 4G \ -balloon virtio \ -name Windows \ -smp cores=2 \ -vga std \ -soundhw ac97 \ -drive file=/dev/mapper/windows-vm,cache=none,if=virtio \ "$@"
我也試過掛載它,但掛載抱怨它的 fs 類型錯誤,這是有道理的,因為我沒有
mkfs
在設備上執行。雖然我認為我不需要這樣做,因為 Windows 無論如何都會格式化設備。有什麼方法可以將
cryptsetup
luks 加密與分區配對,這樣一旦打開QEMU-KVM
就可以像普通的 qcow2/raw 映像文件一樣從它讀取/寫入/引導?編輯:事實證明,這可能是
/dev/mapper/windows-vm
塊設備的權限問題,因為當我以 root 訪問權限執行 QEMU 時,安裝過程開始了,而不是給我一個權限被拒絕錯誤。有沒有辦法讓普通使用者直接訪問塊設備?預設情況下,cryptsetup 提供了 `/dev/mapper/windows-vm 設備 root:root 0600。謝謝。
我相信 QEMU 想要一個磁碟映像文件並且
/dev/mapper/windows-vm
是一個塊設備。根據Arch wiki,您可以向 QEMU 傳遞一個分區,但這需要您mkfs
在塊設備上執行。然後 wiki 繼續說這種方法是有問題的,因為您無法將引導載入程序安裝到分區(我認為這不是 100% 準確的)。由於我認為在一定程度上依賴於 QEMU 的 Xen 可以處理塊設備,因此可能會有一些希望讓它工作。如果您不擔心使用原始磁碟映像文件的成本,最簡單的選擇是在分區上創建一個文件系統,然後在該新文件系統中創建一個原始磁碟映像文件。此磁碟映像文件將被加密,因為它位於加密分區上。