Esiste un modo pulito per ottenere l'accesso esclusivo a una partizione fisica in Windows?


11

Sto cercando, sotto Windows 7, di eseguire una macchina virtuale con VMWare Player da un sistema operativo installato su una partizione fisica. Tuttavia, quando avvio la macchina virtuale, VMWare Player afferma che non è possibile accedere all'unità fisica per la scrittura.

Questo sembra essere un problema generalmente riconosciuto nella comunità VMWare, poiché Windows Vista ha introdotto una nuova avvincente funzionalità di sicurezza che rende impossibile scrivere su un'unità raw senza ottenere prima l'accesso esclusivo ad essa.

Ho cercato su Google il problema e ho trovato alcune soluzioni alternative. Tuttavia, quelli puliti sembrano funzionare solo su interi dischi fisici e non su partizioni.

Quindi sarei rimasto con la soluzione sporca . In breve, si intromette con l'MBR per cancellare qualsiasi traccia delle partizioni da usare, fa dimenticare Windows a loro, quindi ripristina l'MBR in modo da poter avviare la VM.

Non sono sicuro di volerlo fare. Esiste un modo per consentire a VMWare di acquisire l'accesso esclusivo alla partizione senza richiedere che io lo annulli? Quello che avrei cercato, suppongo, è un modo per mettere offline solo partizioni anziché intere unità fisiche.


Ulteriori informazioni relative alla taglia.

Ho una configurazione a doppio avvio: Mac OS è il mio sistema operativo principale e ho installato anche Windows. Per quanto sia possibile eseguire Windows in una macchina virtuale se non desidero riavviare, mi piacerebbe poter eseguire Mac OS in una macchina virtuale quando sono in Windows.

Il mio obiettivo è eseguire la mia partizione principale di Mac OS da VMWare in Windows, proprio come eseguo Windows da VMWare Fusion. (Poiché questo è il mio sistema operativo principale, non ho intenzione di patchare il kernel o altro per farlo funzionare in una macchina virtuale.) Ho creato la macchina virtuale da VMWare Fusion (in quanto ha il tipo di VM "Mac OS X Server" ), quindi spostato su Windows e modificato da VMWare Player. Sembra quasi funzionare, poiché il sistema operativo arriva alla schermata di caricamento e quindi la VM muore perché non può accedervi \\.\PhysicalDrive0.

Virtual Box fallisce ancora di più, poiché avvia Mac OS in modalità dettagliata e si blocca molto rapidamente (ma sembra essere in grado di accedere alla partizione), quindi penso che sarebbe più facile ottenere VMWare accedere alla mia partizione piuttosto che far funzionare Virtual Box esso.

Dal punto di vista legale, avrei eseguito una copia di Mac OS X su una macchina con etichetta Apple, quindi sto bene.


Problema interessante. Funziona se si crea una partizione vuota, non formattata?
nhinkle

@ninkink Non ho spazio di partizione di riserva con cui posso provare sul mio disco interno. Tuttavia, da quello che ho letto, sembra che Windows bloccherà qualsiasi partizione che può riconoscere; e posso confermare che bloccherà comunque anche quelli che non hanno un mount point.
zneak,

@zneak: ho usato TrueCrypt in passato per aggirare le restrizioni di Windows. Poiché ha il proprio driver del disco, potrebbe essere in grado di scrivere sul disco. Perché non provi a trasformare la partizione in un disco virtuale TrueCrypt?
harrymc,

@harrymc Non ho provato. Devo crittografare la mia partizione Mac OS?
zneak,

Dovrai creare un volume TrueCrypt sulla partizione (perdendo tutto il contenuto). Questo potrebbe aiutare a mostrare come, ma consultare anche la guida di TrueCrypt.
harrymc,

Risposte:


5

Mi sono imbattuto in una sola possibile soluzione, utilizzando l' imdisk del driver del disco virtuale gratuito insieme a devio (accesso e acquisizione da remoto). Poiché imdisk è un driver del kernel, potrebbe essere in grado di scrivere sulla partizione. Sfortunatamente, poiché devio funziona in modalità utente, non sono troppo sicuro che questo approccio funzioni per te.

devio può acquisire una partizione fisica e pubblicarla sulla rete. Per esempio:

devio -r 9000 \\.\PhysicalDrive0 2

pubblica dal primo disco la seconda partizione sulla porta TCP 9000 e attenderà una connessione su questa porta. Meglio disabilitare il firewall durante il test ed eseguire devio come amministratore.

Per definire questa partizione pubblicata come un nuovo disco rigido autonomo, utilizzare:

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

che usando localhost creerà un nuovo disco rigido chiamato R che non è una partizione di nulla. Ora puoi provare se puoi usare il finto disco rigido reale R in una macchina virtuale VMware.

Questo approccio è spiegato in dettaglio in Devio: accesso e acquisizione da remoto .

Se questo non funziona, dovrai o:

  1. Accetta una soluzione pericolosa che modifica l'MBR.
  2. Abbandonare l'utilizzo di MacOS in Win7 come VM, utilizzando i file nella partizione Mac tramite applicazioni Windows (con problemi di carattere di fine riga).
  3. Utilizzare un prodotto di file system virtuale, come ELDOS Callback File System , anche se dubito che questo problema valga alcune migliaia di dollari.
  4. Abbandona Windows 7 e esegui il downgrade a XP.
  5. Modifica l' origine di imdisk in modo che come driver del kernel crei un disco pretendente direttamente sulla partizione fisica, senza la necessità di devio.

Se eseguita correttamente, la modifica dell'MBR non dovrebbe costituire una minaccia troppo grande. Anche se dovesse essere danneggiato, non è la partizione del sistema operativo principale, quindi a chi importa? Puoi risolverlo facilmente!
Sfondamento

@Breakthrough Penso che ti manchi il fatto che entrambi i sistemi operativi si trovano sullo stesso disco.
zneak,

@zneak: Penso che @Breakthrough abbia ragione: ci sono diversi programmi che possono salvare e ripristinare l'MBR in caso di emergenza.
harrymc,

Inoltre, solo per la cronaca, purtroppo VMWare non può utilizzare un'unità virtuale da imdisk.
zneak,

È corretto, poiché ImDisk non si registra correttamente con NT Mount Manager utilizzando il codice di controllo IOCTL_MOUNTMGR_CREATE_POINT ; crea invece direttamente un collegamento simbolico per la lettera di unità, e ovviamente il kernel non lo considera un volume legittimo. Ho provato a farlo funzionare prima, ma non ci sono riuscito molto. (È lo stesso motivo per cui non è possibile utilizzare un volume ImDisk per, per esempio, montare un
disco rigido

2

Dipende da quanto sei disperato per farlo funzionare, ma direi che è possibile, con "solo" due "facili" (leggi: brutali) passaggi:

  1. Scrivi un driver per aggirare la restrizione impostata da Windows, usando il flag (semi -?) Documentato SL_FORCE_DIRECT_WRITE.

  2. Aggancia CreateFilee / o WriteFilechiama da VMWare usando una libreria come EasyHook (ti ho detto che è stato facile!) Per comunicare manualmente con il file con il tuo driver, magari comunicando con il driver usando DeviceIoControl.

In realtà non suona così male, se sai dove cercare le informazioni per aggirare le restrizioni ... Ho agganciato applicazioni come Nero stesso per esaminare le IOCTL_SCSI_PASS_THROUGHchiamate in modo da poter creare la mia libreria di masterizzatore CD, e questo non sarebbe troppo difficile; scrivere un driver sarà la parte più difficile, ma gestibile.


Modificare:

Immagino che tu l'abbia già capito, ma la struttura che devi modificare si chiama FLT_IO_PARAMETER_BLOCK per IRP_MJ_READ. Non sono sicuro di quanto sarà facile, ma non dovrebbe essere troppo difficile.


Sembra divertente. Lo esaminerò domani.
zneak,

@zneak: se guardi la mia risposta, imdisk è un driver di disco virtuale open source disponibile, che quasi fa già quello che vuoi.
harrymc,

@Mehrdad Ho un problema molto simile, potresti aiutarmi? CreateFile: "Accesso negato" anche con privilegi di amministratore - Win7
Ali
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.