
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/sda2
Ist 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/sda2
C:/
= Partition von Windows 7
/dev/sda3
= Arch Linux (Host)
Ich habe /dev/sda3
Grub im MBR von installiert /dev/sdc
(was bedeutet, dass /dev/sdc
ich beim Booten meine Arch-Linux-Installation boote und beim Booten /dev/sda
Windows boote). Ich werde auch durchgehen, /dev/sdc
aber 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/sdb2
die 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/sda
und 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 sda2
kann ich ein erstellen, /dev/mapper/no_sda2
in dem die Sektoren 224910 bis 125045424 Nullen enthalten:
Erstellen Sie zuerst ein Loop-Gerät, da sich sonst dmsetup beschwert, weil
/dev/sda
es verwendet wird (whileloop
beschwert sich nicht, was für mich nicht sehr konsistent klingt):losetup /dev/loop0 /dev/sda
Dann erstellen
/dev/mapper/no_sda2
als:dmsetup create no_sda2 << EOF 0 224910 linear /dev/loop0 0 224910 $((125045424-224910)) zero EOF