J'essaie, sous Windows 7, d'exécuter une machine virtuelle avec VMWare Player à partir d'un système d'exploitation installé sur une partition physique. Cependant, lorsque je démarre la machine virtuelle, VMWare Player indique qu'il ne peut pas accéder au lecteur physique pour l'écriture.
Cela semble être un problème généralement reconnu dans la communauté VMWare, car Windows Vista a introduit une nouvelle fonctionnalité de sécurité convaincante qui rend impossible l'écriture sur un disque brut sans obtenir au préalable un accès exclusif à celui-ci.
J'ai googlé le problème et trouvé quelques solutions de contournement. Cependant, les plus propres ne semblent fonctionner que sur des disques physiques entiers, et non sur des partitions.
Je serais donc laissé avec la sale solution . En bref, il se mêle du MBR pour effacer toute trace des partitions à utiliser, fait que Windows les oublie, puis restaure le MBR pour que nous puissions lancer la VM.
Je ne suis pas sûr de vouloir faire ça. Existe-t-il un moyen de laisser VMWare acquérir un accès exclusif à la partition sans m'obliger à la supprimer? Ce que je rechercherais, je suppose, est un moyen de mettre uniquement des partitions hors ligne au lieu de disques physiques entiers.
Plus d'infos sur la prime.
J'ai une configuration à double démarrage: Mac OS est mon système d'exploitation principal et Windows est également installé. Autant que je peux exécuter Windows sur une machine virtuelle si je ne veux pas redémarrer, j'aimerais pouvoir exécuter Mac OS sur une machine virtuelle lorsque je suis sous Windows.
Mon objectif est d'exécuter ma principale partition Mac OS à partir de VMWare sous Windows, tout comme j'exécute Windows à partir de VMWare Fusion. (Puisque c'est mon OS principal, je ne prévois pas de patcher le noyau ou quoi que ce soit pour le faire fonctionner dans une machine virtuelle.) J'ai créé la machine virtuelle à partir de VMWare Fusion (car elle a le type de machine virtuelle "Mac OS X Server" ), puis déplacé vers Windows et modifié à partir de VMWare Player. Semble presque fonctionner, car le système d'exploitation arrive à l'écran de chargement, puis la machine virtuelle meurt car elle ne peut pas y accéder \\.\PhysicalDrive0
.
Virtual Box échoue encore plus, car il démarre Mac OS en mode verbeux et se bloque très rapidement (mais semble pouvoir accéder à la partition), donc je pense qu'il serait plus facile d'obtenir VMWare d'accéder à ma partition que d'obtenir Virtual Box pour fonctionner il.
Sur le plan juridique, j'exécuterais une copie de Mac OS X sur une machine labellisée Apple, donc ça va.
Réponses:
Je n'ai rencontré qu'une seule solution possible, en utilisant le pilote de disque virtuel gratuit imdisk avec devio (accès et acquisition à distance). Comme imdisk est un pilote du noyau, il peut être capable d'écrire sur la partition. Malheureusement, comme devio fonctionne en mode utilisateur, je ne sais pas trop si cette approche fonctionnera pour vous.
devio peut acquérir une partition physique et la publier sur le réseau. Par exemple:
publie depuis le premier disque la deuxième partition sur le port TCP 9000 et attend une connexion sur ce port. Mieux vaut désactiver le pare-feu pendant le test et exécuter devio en tant qu'administrateur.
Pour définir cette partition publiée en tant que nouveau disque dur autonome, utilisez:
qui en utilisant localhost va créer un nouveau disque dur appelé R qui n'est pas une partition de quoi que ce soit. Vous pouvez maintenant essayer d'utiliser le prétendu vrai disque dur R dans une machine virtuelle VMware.
Cette approche est expliquée en détail dans Devio: accès et acquisition de lecteur à distance .
Si cela ne fonctionne pas, vous devrez soit:
la source
Cela dépend de votre désespoir pour que cela fonctionne, mais je dirais que c'est possible, avec "juste" deux étapes "faciles" (lire: brutales):
Écrivez un pilote pour contourner la restriction définie par Windows, en utilisant l'indicateur documenté (semi -?)
SL_FORCE_DIRECT_WRITE
.Accrochez
CreateFile
et / ouWriteFile
appelez de VMWare en utilisant une bibliothèque comme EasyHook (je vous ai dit que c'était facile!) Pour communiquer manuellement avec le pilote avec le fichier, peut-être en communiquant avec le pilote en utilisantDeviceIoControl
.En fait, cela ne semble pas si mal, si vous savez où chercher les informations pour contourner les restrictions ... J'ai accroché des applications comme Nero moi-même afin d'examiner les
IOCTL_SCSI_PASS_THROUGH
appels afin que je puisse créer ma propre bibliothèque de graveurs de CD, et cela ne serait pas trop difficile; écrire un pilote sera la partie la plus difficile, mais gérable.Éditer:
Je suppose que vous avez déjà compris cela, mais la structure que vous devez modifier s'appelle FLT_IO_PARAMETER_BLOCK pour
IRP_MJ_READ
. Je ne sais pas à quel point ce sera facile, mais cela ne devrait pas être trop difficile.la source