¿Hay una manera limpia de obtener acceso exclusivo a una partición física en Windows?

11

Estoy intentando, bajo Windows 7, ejecutar una máquina virtual con VMWare Player desde un sistema operativo instalado en una partición física. Sin embargo, cuando inicio la máquina virtual, VMWare Player dice que no podía acceder a la unidad física para escribir.

Este parece ser un problema generalmente reconocido en la comunidad VMWare, ya que Windows Vista introdujo una nueva y atractiva función de seguridad que hace imposible escribir en una unidad sin procesar sin obtener primero acceso exclusivo a ella.

Busqué en Google el problema y encontré algunas soluciones. Sin embargo, los limpios los parecen único trabajo en todo el disco físico, y no en las particiones.

Entonces me quedaría con la solución sucia . En resumen, se entromete con el MBR para borrar cualquier rastro de las particiones a usar, hace que Windows se olvide de ellas y luego restaura el MBR para que podamos iniciar la VM.

No estoy seguro de querer hacer eso. ¿Hay alguna manera de permitir que VMWare adquiera acceso exclusivo a la partición sin requerir que la elimine? Lo que estaría buscando, supongo, es una forma de desconectar solo particiones en lugar de unidades físicas completas.


Más información relacionada con la recompensa.

Tengo una configuración de arranque dual: Mac OS es mi sistema operativo principal y también tengo Windows instalado. Por mucho que pueda ejecutar Windows en una máquina virtual si no quiero reiniciar, me gustaría poder ejecutar Mac OS en una máquina virtual cuando esté bajo Windows.

Mi objetivo es ejecutar mi partición principal de Mac OS desde VMWare en Windows, al igual que ejecuto Windows desde VMWare Fusion. (Dado que este es mi sistema operativo principal, no planeo parchar el kernel o lo que sea para que funcione en una máquina virtual). Creé la máquina virtual desde VMWare Fusion (ya que tiene el tipo de máquina virtual "Mac OS X Server" ) luego lo movió a Windows y lo modificó desde VMWare Player. Parece que casi funciona, ya que el sistema operativo llega a la pantalla de carga y luego la máquina virtual muere porque no puede acceder \\.\PhysicalDrive0.

Virtual Box falla aún más, ya que inicia Mac OS en modo detallado y se bloquea muy rápidamente (pero parece que puede acceder a la partición), por lo que creo que sería más fácil hacer que VMWare acceda a mi partición que ejecutar Virtual Box eso.

En el aspecto legal, estaría ejecutando una copia de Mac OS X en una máquina etiquetada con Apple, así que estoy bien.

zneak
fuente
Interesante problema ¿Funciona si crea una partición en blanco y sin formato?
nhinkle
@nhinkle No tengo ninguna sala de partición de repuesto con la que pueda probar en mi disco interno. Sin embargo, por lo que leí, parece que Windows bloqueará cualquier partición que pueda reconocer; y puedo confirmar que todavía bloqueará a aquellos que no tienen punto de montaje también.
zneak
@zneak: he utilizado TrueCrypt en el pasado para evitar las restricciones de Windows. Como tiene su propio controlador de disco, puede escribir en el disco. ¿Por qué no intentas convertir la partición en un disco virtual TrueCrypt?
harrymc
@harrymc No lo he intentado. ¿Necesito encriptar mi partición de Mac OS?
zneak
Deberá crear un volumen TrueCrypt en la partición (perder todo el contenido). Esto podría ayudar a mostrar cómo, pero consulte también la ayuda de TrueCrypt.
harrymc

Respuestas:

5

He encontrado una sola solución posible, utilizando el controlador de disco virtual gratuito imdisk junto con devio (acceso y adquisición de unidades remotas). Como imdisk es un controlador de kernel, es posible que pueda escribir en la partición. Desafortunadamente, dado que devio funciona en modo de usuario, no estoy muy seguro de si este enfoque funcionará para usted.

devio puede adquirir una partición física y publicarla en la red. Por ejemplo:

devio -r 9000 \\.\PhysicalDrive0 2

publica desde el primer disco la segunda partición en el puerto TCP 9000, y esperará una conexión en este puerto. Es mejor deshabilitar el firewall mientras se prueba esto, y ejecutar devio como administrador.

Para definir esta partición publicada como un disco duro nuevo e independiente, use:

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

que usando localhost creará un nuevo disco duro llamado R que no es una partición de nada. Ahora puede probar si puede usar el simulado disco duro real R en una máquina virtual VMware.

Este enfoque se explica en detalle en Devio: Acceso y adquisición de unidades remotas .

Si esto no funciona, deberá:

  1. Acepte una solución peligrosa que modifique el MBR.
  2. Abandone el uso de MacOS dentro de Win7 como VM, utilizando archivos en la partición de Mac a través de aplicaciones de Windows (con problemas de caracteres al final de la línea).
  3. Utilice un producto de Sistema de archivos virtual, como el Sistema de archivos de devolución de llamada ELDOS , aunque dudo que este problema le valga unos pocos miles de dólares.
  4. Abandone Windows 7 y descienda a XP.
  5. Modifique la fuente de imdisk para que, como controlador del núcleo, cree un disco simulado directamente en la partición física, sin la necesidad de devio.
harrymc
fuente
Si se hace correctamente, editar el MBR no debería representar una amenaza demasiado grande. Incluso si se corrompiera, no es la partición primaria del sistema operativo, ¿a quién le importa? ¡Puedes arreglarlo fácilmente!
Avance el
@Breakthrough Creo que extrañas el hecho de que ambos sistemas operativos están en el mismo disco.
zneak
@zneak: Creo que @Breakthrough tiene razón: hay varios programas que pueden guardar y luego restaurar el MBR en caso de emergencia.
harrymc
Además, solo para el registro, VMWare desafortunadamente no puede usar una unidad virtual de imdisk.
zneak
Eso es correcto, porque ImDisk no se registra correctamente con el Administrador de montaje de NT utilizando el código de control IOCTL_MOUNTMGR_CREATE_POINT ; en su lugar, crea directamente un enlace simbólico para la letra de la unidad y, por supuesto, el núcleo no lo considera un volumen legítimo. He intentado que funcione antes, pero no he tenido mucho éxito. (Es la misma razón por la que no puede usar un volumen ImDisk para, por ejemplo, montar un VHD.)
user541686
2

Depende de lo desesperado que esté para que esto funcione, pero yo diría que es posible, con "solo" dos "pasos" fáciles (leídos: brutales):

  1. Escriba un controlador para omitir la restricción establecida por Windows, utilizando el indicador (semi -?) Documentado SL_FORCE_DIRECT_WRITE.

  2. Enganche la llamada CreateFiley / o WriteFilellamada de VMWare usando una biblioteca como EasyHook (¡le dije que era fácil!) Para comunicarse con el archivo manualmente con su controlador, quizás comunicándose con el controlador usando DeviceIoControl.

En realidad, no suena tan mal, si sabes dónde buscar la información para evitar las restricciones ... Enganché aplicaciones como Nero para examinar las IOCTL_SCSI_PASS_THROUGHllamadas y poder hacer mi propia biblioteca de grabadora de CD, y esto no sería muy difícil; escribir un controlador será la parte más difícil, pero manejable.


Editar:

Supongo que ya cuenta de esto, pero la estructura tiene que modificar se llama FLT_IO_PARAMETER_BLOCK para IRP_MJ_READ. No estoy seguro de lo fácil que será, pero no debería ser demasiado difícil.

usuario541686
fuente
Suena divertido. Lo investigaré mañana.
zneak
@zneak: Si miras mi respuesta, imdisk es un controlador de disco virtual de código abierto disponible, que casi ya hace lo que quieres.
harrymc
@Mehrdad Tengo un problema muy similar, ¿podrías ayudarme? CreateFile: “Acceso denegado” incluso con privilegios de administrador - Win7
Ali