Existe uma maneira limpa de obter acesso exclusivo a uma partição física no Windows?

11

Estou tentando, no Windows 7, executar uma máquina virtual com o VMWare Player a partir de um sistema operacional instalado em uma partição física. No entanto, quando eu inicializo a máquina virtual, o VMWare Player diz que não pode acessar a unidade física para gravação.

Este parece ser um problema geralmente reconhecido na comunidade VMWare, já que o Windows Vista introduziu uma nova segurança atraente recurso que torna impossível gravar em uma unidade bruta sem obter acesso exclusivo a ela primeiro.

Eu pesquisei o problema e encontrei algumas soluções. No entanto, os limpar os a> parece funcionar apenas em discos físicos inteiros, e não em partições.

Então, ficaria com a solução suja . Em suma, ele se intromete com o MBR para apagar qualquer rastro das partições a serem usadas, faz com que o Windows as esqueça e, em seguida, restaura o MBR para que possamos iniciar a VM.

Não tenho certeza se quero fazer isso. Existe uma maneira de deixar o VMWare adquirir acesso exclusivo à partição sem precisar que eu a liberte? O que eu estaria procurando, suponho, é uma maneira de colocar apenas partições offline em vez de unidades físicas inteiras.

Mais informações relacionadas à recompensa.

Eu tenho uma configuração de inicialização dupla: o Mac OS é o meu principal sistema operacional e tenho o Windows instalado também. Por mais que eu possa executar o Windows em uma máquina virtual, se não quiser reiniciar, gostaria de poder executar o Mac OS em uma máquina virtual quando estou sob o Windows.

Meu objetivo é executar minha partição principal do Mac OS a partir do VMWare no Windows, assim como executo o Windows a partir do VMWare Fusion. (Como este é meu sistema operacional principal, não planejo consertar o kernel ou qualquer coisa para que ele funcione em uma máquina virtual.) Eu criei a máquina virtual a partir do VMWare Fusion (como o tipo de máquina virtual "Mac OS X Server"). ) movido para o Windows e modificado do VMWare Player. Parece quase funcionar, como o sistema operacional chega à tela de carregamento e, em seguida, a VM morre porque não pode acessar \.\PhysicalDrive0 .

O Virtual Box falha ainda mais, pois inicia o Mac OS no modo detalhado e trava muito rapidamente (mas parece conseguir acessar a partição), então acho que seria mais fácil obter o acesso VMWare à minha partição do que obter o Virtual Caixa para executá-lo.

Do lado legal, eu estaria executando uma cópia do Mac OS X em uma máquina rotulada pela Apple, então estou bem.

    
por zneak 31.12.2010 / 05:47

2 respostas

5

Eu encontrei apenas uma solução possível, usando o driver de disco virtual gratuito imdisk junto com devio (acesso remoto à unidade e aquisição). Como o imdisk é um driver do kernel, ele pode gravar na partição. Infelizmente, como o devio funciona no modo de usuário, não tenho certeza se essa abordagem funcionará para você.

O

devio pode adquirir uma partição física e publicá-la na rede. Por exemplo:

devio -r 9000 \.\PhysicalDrive0 2

publica do primeiro disco a segunda partição na porta TCP 9000 e aguardará uma conexão nessa porta. Melhor desabilitar o firewall durante o teste e executar o devio como administrador.

Para definir essa partição publicada como um disco rígido novo e autônomo, use:

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

que usando localhost irá criar um novo disco rígido chamado R, que não é uma partição de nada. Agora você pode tentar usar o disco rígido R fingido em uma máquina virtual VMware.

Essa abordagem é explicada em detalhes em Devio: acesso e aquisição de unidade remota .

Se isso não funcionar, você terá que:

  1. Aceite uma solução perigosa que modifique o MBR.
  2. Abandone o uso do MacOS no Win7 como VM, usando arquivos na partição do Mac por meio de aplicativos do Windows (com problemas de caractere de fim de linha).
  3. Use um produto Virtual File System, como o Sistema de arquivos de retorno de chamada ELDOS , embora eu duvido que esse problema valha para você alguns milhares de dólares.
  4. Abandone o Windows 7 e faça o downgrade para o XP.
  5. Modifique a fonte de imdisk para que, como um driver de kernel, ele crie um disco de simulação diretamente a partição física, sem a necessidade de devio.
por 06.01.2011 / 10:10
2

Depende de como você está desesperado para que isso funcione, mas eu diria que é possível, com "apenas" dois passos "fáceis" (leia-se: brutais):

  1. Escreva um driver para ignorar a restrição definida pelo Windows, usando o sinalizador (semi-?) documentado SL_FORCE_DIRECT_WRITE .

  2. Prenda a chamada CreateFile e / ou WriteFile do VMWare usando uma biblioteca como EasyHook (eu lhe disse foi fácil!) comunicar-se com o arquivo manualmente com o seu driver, talvez se comunicando com o driver usando DeviceIoControl .

Na verdade, não parece tão ruim assim, se você souber onde procurar as informações para contornar as restrições ... Eu mesmo enganchei aplicativos como o Nero para examinar IOCTL_SCSI_PASS_THROUGH chamadas para que eu possa fazer o meu próprio Biblioteca de gravadores de CD, e isso não seria muito difícil; escrever um driver será a parte mais difícil, mas gerenciável.

Editar:

Suponho que você já tenha percebido isso, mas a estrutura que você precisa modificar é chamada FLT_IO_PARAMETER_BLOCK para IRP_MJ_READ . Não tenho certeza de como será fácil, mas não deve ser muito difícil.

    
por 07.01.2011 / 10:33