Partitionen in QEMU freigeben

Partitionen in QEMU freigeben

Abgesehen von Netzwerk- und Partitionsfreigabe habe ich QEMU so zum Laufen gebracht, wie ich es möchte. Ich habe ein etwas spezielles Setup, ich muss durch und durchgehen /dev/sda. /dev/sda1( /dev/sda2Ist es möglich, durchzugehen /dev/sda, ohne durchzugehen /dev/sda3? Ich kann mit der Verwendung alternativer Methoden leben.)

/dev/sda(MBR) = Windows Bootmgr auf/dev/sda1

/dev/sda1= Systemreservierte Partition (Bootloader von Windows)

/dev/sda2C:/= Partition von Windows 7

/dev/sda3= Arch Linux (Host)

Ich habe /dev/sda3Grub im MBR von installiert /dev/sdc(was bedeutet, dass /dev/sdcich beim Booten meine Arch-Linux-Installation boote und beim Booten /dev/sdaWindows boote). Ich werde auch durchgehen, /dev/sdcaber das ist einfach, da der Host nach dem Booten keinen Zugriff auf dieses Laufwerk benötigt.

Schließlich habe ich eine GPT-Speicherpartition (NTFS), auf /dev/sdb2die ich sowohl vom Host als auch vom Gast gleichzeitig problemlos zugreifen möchte (ich möchte sie zwischen beiden Systemen teilen).

Wie gehe ich mit /dev/sdaund vor /dev/sdb2?

Antwort1

Mit dem Geräte-Mapper können Sie ein Gerät erstellen, das die gewünschten Teile des Originalgeräts enthält. Zum Beispiel:

$ grep . /sys/class/block/sda/**/(size|start)
/sys/class/block/sda/sda1/size:224847
/sys/class/block/sda/sda1/start:63
/sys/class/block/sda/sda2/size:124820514
/sys/class/block/sda/sda2/start:224910
/sys/class/block/sda/size:125045424

Wenn ich willverstecken sda2kann ich ein erstellen, /dev/mapper/no_sda2in dem die Sektoren 224910 bis 125045424 Nullen enthalten:

  • Erstellen Sie zuerst ein Loop-Gerät, da sich sonst dmsetup beschwert, weil /dev/sdaes verwendet wird (while loopbeschwert sich nicht, was für mich nicht sehr konsistent klingt):

    losetup /dev/loop0 /dev/sda
    
  • Dann erstellen /dev/mapper/no_sda2als:

    dmsetup create no_sda2 << EOF
    0 224910 linear /dev/loop0 0
    224910 $((125045424-224910)) zero
    EOF
    

verwandte Informationen