Gibt es eine saubere Möglichkeit, unter Windows exklusiven Zugriff auf eine physische Partition zu erhalten?

11

Ich versuche unter Windows 7, eine virtuelle Maschine mit VMWare Player von einem Betriebssystem aus auszuführen, das auf einer physischen Partition installiert ist. Wenn ich jedoch die virtuelle Maschine starte, gibt VMWare Player an, dass sie zum Schreiben nicht auf das physische Laufwerk zugreifen konnte.

Dies scheint ein allgemein anerkanntes Problem in der VMWare-Community zu sein, da Windows Vista eine überzeugende neue Sicherheitsfunktion eingeführt hat , die es unmöglich macht, auf ein unformatiertes Laufwerk zu schreiben, ohne zuvor exklusiven Zugriff darauf zu erhalten.

Ich habe das Problem gegoogelt und einige Problemumgehungen gefunden. Allerdings ist die sauber diejenigen scheinen nur Arbeit auf ganzen physischen Datenträger und nicht auf Partitionen.

Also würde ich mit der schmutzigen Lösung zurückbleiben . Kurz gesagt, es mischt sich in den MBR ein, um alle Spuren der zu verwendenden Partitionen zu löschen, lässt Windows sie vergessen und stellt dann den MBR wieder her, damit wir die VM starten können.

Ich bin mir nicht sicher, ob ich das machen will. Gibt es eine Möglichkeit, VMWare exklusiven Zugriff auf die Partition zu ermöglichen, ohne dass ich sie entfernen muss? Ich würde wohl nach einer Möglichkeit suchen, nur Partitionen offline zu schalten, anstatt ganze physische Laufwerke.


Weitere Infos zum Kopfgeld.

Ich habe ein Dual-Boot-Setup: Mac OS ist mein primäres Betriebssystem, und ich habe auch Windows installiert. So viel ich Windows in einer virtuellen Maschine ausführen kann, wenn ich nicht neu starten möchte, möchte ich Mac OS in einer virtuellen Maschine ausführen können, wenn ich unter Windows bin.

Mein Ziel ist es, meine Mac OS-Hauptpartition unter VMWare unter Windows auszuführen, genau wie ich Windows unter VMWare Fusion ausführe. (Da dies mein Hauptbetriebssystem ist, habe ich nicht vor, den Kernel oder was auch immer zu patchen, damit er in einer virtuellen Maschine funktioniert.) Ich habe die virtuelle Maschine aus VMWare Fusion erstellt (da sie den VM-Typ "Mac OS X Server" hat ) verschob es dann nach Windows und änderte es von VMWare Player. Scheint fast zu funktionieren, da das Betriebssystem zum Ladebildschirm gelangt und die VM stirbt, weil sie nicht darauf zugreifen kann \\.\PhysicalDrive0.

Virtual Box schlägt noch schwerer fehl, da es Mac OS im ausführlichen Modus startet und sehr schnell abstürzt (aber anscheinend auf die Partition zugreifen kann). Ich denke, es wäre einfacher, VMWare auf meine Partition zuzugreifen, als Virtual Box zum Laufen zu bringen es.

Auf der rechtlichen Seite würde ich eine Kopie von Mac OS X auf einem Apple-Computer ausführen, also bin ich in Ordnung.

zneak
quelle
Interessantes Problem. Funktioniert es, wenn Sie eine leere, unformatierte Partition erstellen?
nhinkle
@nhinkle Ich habe keinen freien Partitionsraum, mit dem ich auf meinem internen Laufwerk testen kann. Nach dem, was ich gelesen habe, scheint Windows jedoch jede Partition zu sperren, die es erkennen kann. und ich kann bestätigen, dass es auch diejenigen sperrt, die keinen Einhängepunkt haben.
Zneak
@zneak: Ich habe in der Vergangenheit TrueCrypt verwendet, um Windows-Einschränkungen zu umgehen. Da es über einen eigenen Festplattentreiber verfügt, kann es möglicherweise auf die Festplatte schreiben. Warum versuchen Sie nicht, die Partition in eine virtuelle TrueCrypt-Festplatte zu verwandeln?
Harrymc
@harrymc Ich habe es nicht versucht. Muss ich meine Mac OS-Partition verschlüsseln?
Zneak
Sie müssen ein TrueCrypt-Volume auf der Partition erstellen (wobei alle Inhalte verloren gehen). Dies kann hilfreich sein, um zu zeigen, wie, aber siehe auch die TrueCrypt-Hilfe.
Harrymc

Antworten:

5

Ich bin nur auf eine mögliche Lösung gestoßen , bei der der kostenlose Treiber für virtuelle Festplatten imdisk zusammen mit devio (Remote Drive Access and Acquisition) verwendet wird. Da imdisk ein Kerneltreiber ist, kann er möglicherweise auf die Partition schreiben. Da devio im Benutzermodus arbeitet, bin ich mir leider nicht sicher, ob dieser Ansatz für Sie funktioniert.

devio kann eine physische Partition erwerben und im Netzwerk veröffentlichen. Beispielsweise:

devio -r 9000 \\.\PhysicalDrive0 2

veröffentlicht von der ersten Festplatte die zweite Partition auf TCP-Port 9000 und wartet auf eine Verbindung auf diesem Port. Deaktivieren Sie die Firewall besser, während Sie dies testen, und führen Sie devio als Administrator aus.

Verwenden Sie Folgendes, um diese veröffentlichte Partition als neue und eigenständige Festplatte zu definieren:

imdisk -a -t proxy -o ip -f 127.0.0.1 -m R:

Durch die Verwendung von localhost wird eine neue Festplatte mit dem Namen R erstellt, die keine Partition von irgendetwas ist. Sie können jetzt versuchen, ob Sie die vorgetäuschte echte Festplatte R in einer virtuellen VMware-Maschine verwenden können.

Dieser Ansatz wird in Devio: Remote Drive Access and Acquisition ausführlich erläutert .

Wenn dies nicht funktioniert, müssen Sie entweder:

  1. Akzeptieren Sie eine gefährliche Lösung, die den MBR ändert.
  2. Geben Sie die Verwendung von MacOS in Win7 als VM auf und verwenden Sie Dateien in der Mac-Partition über Windows-Anwendungen (mit Problemen mit dem Zeilenende).
  3. Verwenden Sie ein Produkt für ein virtuelles Dateisystem wie ELDOS Callback File System , obwohl ich bezweifle, dass dieses Problem für Sie einige tausend Dollar wert ist.
  4. Verlassen Sie Windows 7 und führen Sie ein Downgrade auf XP durch.
  5. Ändern Sie die Quelle von imdisk so, dass als Kerneltreiber eine vorgetäuschte Festplatte direkt auf der physischen Partition erstellt wird, ohne dass Devio erforderlich ist.
harrymc
quelle
Bei ordnungsgemäßer Ausführung sollte die Bearbeitung des MBR keine zu große Bedrohung darstellen. Selbst wenn es beschädigt werden sollte, ist es nicht die primäre Betriebssystempartition. Wen interessiert das? Sie können es leicht beheben!
Durchbruch
@Breakthrough Ich denke, Sie vermissen die Tatsache, dass sich beide Betriebssysteme auf derselben Festplatte befinden.
Zneak
@zneak: Ich denke, @Breakthrough ist richtig - es gibt mehrere Programme, die den MBR im Notfall speichern und dann wiederherstellen können.
Harrymc
Außerdem kann VMWare leider kein virtuelles Laufwerk von imdisk verwenden.
Zneak
Das ist richtig, da ImDisk sich mit dem Steuercode IOCTL_MOUNTMGR_CREATE_POINT nicht korrekt beim NT Mount Manager registriert . Stattdessen wird direkt eine symbolische Verknüpfung für den Laufwerksbuchstaben erstellt, und der Kernel betrachtet dies natürlich nicht als legitimes Volume. Ich habe schon früher versucht, es zum Laufen zu bringen, aber es ist mir nicht viel gelungen. (Es ist der gleiche Grund, warum Sie ein ImDisk-Volume nicht zum Mounten einer VHD verwenden können.)
user541686
2

Es hängt davon ab, wie verzweifelt Sie sind, um dies zum Laufen zu bringen, aber ich würde sagen, dass es mit "nur" zwei "einfachen" (sprich: brutalen) Schritten möglich ist:

  1. Schreiben Sie einen Treiber, um die von Windows festgelegte Einschränkung zu umgehen, indem Sie das (halb -?) Dokumentierte Flag verwenden SL_FORCE_DIRECT_WRITE.

  2. Schließen Sie den CreateFileund / oder WriteFileAnruf von VMWare mit einer Bibliothek wie EasyHook an (ich habe Ihnen gesagt, dass es einfach ist!), Um manuell mit der Datei mit Ihrem Treiber zu kommunizieren, möglicherweise mit dem Treiber über DeviceIoControl.

Es klingt eigentlich nicht so schlecht, wenn Sie wissen, wo Sie nach Informationen suchen müssen, um die Einschränkungen zu umgehen ... Ich habe Anwendungen wie Nero selbst angeschlossen, um IOCTL_SCSI_PASS_THROUGHAnrufe zu untersuchen , damit ich meine eigene CD-Brennerbibliothek erstellen kann, und dies wäre nicht zu schwierig; Das Schreiben eines Treibers ist der schwierigere Teil, aber überschaubar.


Bearbeiten:

Ich vermute, Sie haben dies bereits herausgefunden, aber die Struktur, die Sie ändern müssen, heißt FLT_IO_PARAMETER_BLOCK für IRP_MJ_READ. Ich bin mir nicht sicher, wie einfach es sein wird, aber es sollte nicht zu schwer sein.

user541686
quelle
Klingt lustig. Ich werde das morgen untersuchen.
Zneak
@zneak: Wenn Sie sich meine Antwort ansehen, ist imdisk ein verfügbarer Open-Source-Treiber für virtuelle Festplatten, der fast schon das tut, was Sie wollen.
Harrymc
@Mehrdad Ich habe ein sehr ähnliches Problem, könnten Sie mir helfen? CreateFile: "Zugriff verweigert" auch mit Administratorrechten - Win7
Ali