Czy istnieje czysty sposób na uzyskanie wyłącznego dostępu do partycji fizycznej w systemie Windows?

11

Próbuję w systemie Windows 7 uruchomić maszynę wirtualną z VMWare Player z systemu operacyjnego zainstalowanego na partycji fizycznej. Jednak gdy uruchamiam maszynę wirtualną, VMWare Player mówi, że nie mógł uzyskać dostępu do dysku fizycznego w celu zapisu.

Wydaje się, że jest to powszechnie uznany problem w społeczności VMWare, ponieważ system Windows Vista wprowadził nową, atrakcyjną funkcję bezpieczeństwa, która uniemożliwia zapis na dysku surowym bez uprzedniego uzyskania do niego wyłącznego dostępu.

Poszukałem problemu i znalazłem kilka obejść. Jednak czyste te wydają się tylko pracy na całych dysków fizycznych, a nie na partycje.

Więc zostałbym z brudnym rozwiązaniem . Krótko mówiąc, wtrąca się w MBR, aby usunąć wszelkie ślady używanych partycji, sprawia, że ​​Windows zapomina o nich, a następnie przywraca MBR, abyśmy mogli uruchomić maszynę wirtualną.

Nie jestem pewien, czy chcę to zrobić. Czy istnieje sposób, aby umożliwić VMWare uzyskanie wyłącznego dostępu do partycji bez konieczności odszukiwania go? Przypuszczam, że to, czego szukałem, to sposób na wyłączenie tylko partycji zamiast całych fizycznych dysków.


Więcej informacji związanych z nagrodą.

Mam konfigurację podwójnego rozruchu: Mac OS jest moim głównym systemem operacyjnym i mam również zainstalowany system Windows. O ile mogę uruchomić system Windows na maszynie wirtualnej, jeśli nie chcę restartować, chciałbym móc uruchomić system Mac OS na maszynie wirtualnej, gdy jestem pod Windows.

Moim celem jest uruchomienie mojej głównej partycji Mac OS z VMWare pod Windows, tak jak ja uruchamiam Windows z VMWare Fusion. (Ponieważ jest to mój główny system operacyjny, nie planuję łatać jądra ani nic takiego, aby działało ono na maszynie wirtualnej). Stworzyłem maszynę wirtualną z VMWare Fusion (ponieważ ma ona typ maszyny wirtualnej „Mac OS X Server” ), a następnie przeniósł go do systemu Windows i zmodyfikował z VMWare Player. Wydaje się prawie działać, ponieważ system operacyjny przechodzi do ekranu ładowania, a następnie maszyna wirtualna umiera, ponieważ nie może uzyskać dostępu \\.\PhysicalDrive0.

Virtual Box zawiesza się jeszcze bardziej, ponieważ uruchamia Mac OS w trybie gadatliwym i bardzo szybko ulega awarii (ale wydaje się, że jest w stanie uzyskać dostęp do partycji), więc myślę, że łatwiej byłoby uzyskać dostęp do VMWare do mojej partycji niż uruchomienie Virtual Boxa to.

Po stronie prawnej uruchomiłbym jedną kopię Mac OS X na jednym komputerze Apple, więc nic mi nie jest.

skradać się
źródło
Ciekawy problem. Czy to działa, jeśli utworzysz pustą, niesformatowaną partycję?
nhinkle
@nhinkle Nie mam wolnego miejsca na partycje, z którym mogę testować na moim dysku wewnętrznym. Jednak z tego, co przeczytałem, wydaje się, że Windows zablokuje każdą rozpoznaną partycję; i mogę potwierdzić, że nadal będzie blokować również te, które nie mają punktu montowania.
zneak
@zneak: W przeszłości użyłem TrueCrypt do obejścia ograniczeń systemu Windows. Ponieważ ma własny sterownik dysku, może być w stanie zapisywać na dysku. Dlaczego nie spróbujesz przekształcić partycji w dysk wirtualny TrueCrypt?
harrymc
@harrymc Nie próbowałem. Czy muszę szyfrować moją partycję Mac OS?
zneak
Konieczne będzie utworzenie wolumenu TrueCrypt na partycji (utrata całej zawartości). Może to pomóc pokazać, jak to zrobić, ale zobacz także pomoc TrueCrypt.
harrymc

Odpowiedzi:

5

Natknąłem się tylko na jedno możliwe rozwiązanie, używając darmowego imdisku sterownika dysku wirtualnego wraz z devio (zdalny dostęp i akwizycja dysku). Ponieważ imdisk jest sterownikiem jądra, może być w stanie pisać na partycji. Niestety, ponieważ devio działa w trybie użytkownika, nie jestem zbyt pewien, czy to podejście będzie dla ciebie skuteczne.

devio może uzyskać partycję fizyczną i opublikować ją w sieci. Na przykład:

devio -r 9000 \\.\PhysicalDrive0 2

publikuje z pierwszego dysku drugą partycję na porcie TCP 9000 i czeka na połączenie na tym porcie. Lepiej wyłącz zaporę podczas testowania tego i uruchom devio jako administrator.

Aby zdefiniować tę opublikowaną partycję jako nowy i autonomiczny dysk twardy, użyj:

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

który za pomocą localhost utworzy nowy dysk twardy o nazwie R, który nie jest partycją czegokolwiek. Możesz teraz spróbować sprawdzić, czy możesz użyć udawanego prawdziwego dysku twardego R na maszynie wirtualnej VMware.

Podejście to wyjaśniono szczegółowo w Devio: Zdalny dostęp do dysku i akwizycja .

Jeśli to nie zadziała, albo musisz:

  1. Zaakceptuj niebezpieczne rozwiązanie, które modyfikuje MBR.
  2. Porzuć używanie MacOS w Win7 jako VM, używanie plików na partycji Mac przez aplikacje Windows (z problemami ze znakami końca linii).
  3. Skorzystaj z produktu Virtual File System, takiego jak ELDOS Callback File System , chociaż wątpię, aby ten problem był dla ciebie wart kilka tysięcy dolarów.
  4. Porzuć system Windows 7 i zmień wersję na XP.
  5. Zmodyfikuj źródło imdisku , aby jako sterownik jądra utworzył udawany dysk bezpośrednio na partycji fizycznej, bez potrzeby devio.
harrymc
źródło
Prawidłowe wykonanie edycji MBR nie powinno stanowić zbyt dużego zagrożenia. Nawet jeśli miałby zostać uszkodzony, nie jest to podstawowa partycja systemu operacyjnego, więc kogo to obchodzi? Możesz to łatwo naprawić!
Przełom
@Breakthrough Myślę, że brakuje ci faktu, że oba systemy operacyjne są na tym samym dysku.
zneak
@zneak: Myślę, że @Breakthrough ma rację - istnieje kilka programów, które mogą zapisać, a następnie przywrócić MBR w nagłych wypadkach.
harrymc
Ponadto, dla przypomnienia, VMWare niestety nie może korzystać z wirtualnego dysku z imdisku.
zneak
To prawda, ponieważ ImDisk nie rejestruje się poprawnie w NT Mount Manager przy użyciu kodu kontrolnego IOCTL_MOUNTMGR_CREATE_POINT ; zamiast tego tworzy bezpośrednio symboliczne łącze do litery dysku i oczywiście jądro nie uważa tego za prawidłowy wolumin. Próbowałem już go uruchomić, ale niewiele mi się udało. (To ten sam powód, dla którego nie można używać wolumenu ImDisk do, powiedzmy, montowania
dysku
2

To zależy od tego, jak bardzo jesteś zdesperowany, aby to zadziałać, ale powiedziałbym, że jest to możliwe dzięki „tylko” dwóm „łatwym” (czytaj: brutalnym) krokom:

  1. Napisz sterownik, aby ominąć ograniczenia ustawione przez system Windows, używając udokumentowanej flagi (pół -?) SL_FORCE_DIRECT_WRITE.

  2. Podłącz CreateFilei / lub WriteFilewywołanie z VMWare za pomocą biblioteki takiej jak EasyHook (mówiłem, że to proste!), Aby ręcznie komunikować się z plikiem ze sterownikiem, być może komunikując się ze sterownikiem za pomocą DeviceIoControl.

Właściwie to nie brzmi tak źle, jeśli wiesz, gdzie szukać informacji na temat omijania ograniczeń ... Sam podłączyłem aplikacje takie jak Nero, aby sprawdzić IOCTL_SCSI_PASS_THROUGHpołączenia, aby móc stworzyć własną bibliotekę nagrywarki CD, i to nie byłoby zbyt trudne; napisanie sterownika będzie trudniejszą częścią, ale wykonalną.


Edytować:

Zgaduję już zdobione ten, ale struktura trzeba zmodyfikować nazywa FLT_IO_PARAMETER_BLOCK dla IRP_MJ_READ. Nie jestem pewien, jakie to będzie łatwe, ale nie powinno być zbyt trudne.

użytkownik541686
źródło
Brzmi zabawnie. Zajmę się tym jutro.
zneak
@zneak: Jeśli spojrzysz na moją odpowiedź, imdisk jest dostępnym sterownikiem wirtualnego dysku typu open source, który prawie robi już to, co chcesz.
harrymc
@ Mehrdad Mam bardzo podobny problem, czy możesz mi pomóc? CreateFile: „Odmowa dostępu” nawet przy uprawnieniach administratora - Win7
Ali