Dysk wewnętrzny dostępu do wirtualnej skrzynki

0

Jak mogę uzyskać dostęp do dysku wewnętrznego z moich systemów gości? Mój host to Windows 7. próbowałem instrukcja , ale gdy dołączę nowy vmdk do gościa z Windows 7, jest on wyświetlany jako niesformatowany z zerowym miejscem na dysku. Komenda tworzenia vmdk to:

VBoxManage.exe internalcommands createrawvmdk -filename C:\Users\me\.Virtualbox\VDI\mydrive.vmdk -rawdisk \\.\PhysicalDrive0

Gdzie numerem za PhysicalDrive jest numer dysku w Computermanagement- & gt; Diskmanagement. Jeśli dobrze rozumiem problem, podręcznik raczej odnosi się do używania dysku twardego jako urządzenia rozruchowego zamiast do przechowywania. Moją motywacją do dodania kolejnego dysku do mojego wirtualnego gościa jest posiadanie dodatkowej pamięci, do której można uzyskać dostęp bez narzutu wirtualizacji. Udostępnianie danych nie stanowi problemu. Sam dysk nie przechowuje ważnych danych, chociaż nie chciałbym go usunąć, jeśli jest to opcja. Na razie użyję folderów współdzielonych, ale w porównaniu z nimi są powolne.

[EDIT] Przepraszamy za zamieszanie, obraz vm, którego użyłem to Windows XP, a nie Windows 7. Stworzyłem nowy vmdk z uprawnieniami administratora, jak sugerowano w komentarzach. Zachowanie się nie zmieniło. Następnie próbowałem uzyskać dostęp do dysku w moim Ubuntu vm. Przy pierwszym uruchomieniu dostałem błąd VERR_ACCESS_DENIED, upewnij się, że jest wystarczająco dużo wolnego miejsca. Po ponownym ponownym uruchomieniu vm mogłem uzyskać dostęp do dysku za pośrednictwem menedżera plików. Próbowałem też uzyskać dostęp do dysku z Windows 7 vm (tak, tym razem naprawdę Windows 7). Wystąpił ten sam błąd VERR_ACCESS_DENIED. W przeciwieństwie do Ubuntu vm pojawił się ponownie za każdym razem, gdy restartowałem (trzy razy).

[EDIT2] Implementacja wydaje się być wadliwa. Napisałem skrypt do zapisu 10 GB plików 1 MB, 10 GB 2 GB i tak dalej. Najpierw dostałem błąd w pliku 6200.th 1MB. W następnym uruchomieniu wystąpił ten sam błąd w pierwszym pliku 3 MB:

/bin/dd: opening `/media/Ultra_/samplefiles/3MB_1': Input/output error

Następnie otrzymuję błąd we / wy podczas próby uzyskania dostępu do katalogu przykładowych plików.

[EDIT3] Oto skrypt testowy do odtworzenia błędu. Jeśli uzyskuję dostęp do dysku przez mój system hosta, nie widzę plików / folderów, które napisałem do niego za pośrednictwem gościa. Na gościu widoczne są pliki, a rozmiar systemu plików surowego systemu plików jest widoczny df -h zmniejsza się, gdy zapisuję do niego pliki. Nadal mogę uzyskać dostęp do innych plików na dysku po wystąpieniu błędu.

    #!/usr/bin/python
"""Generate directory of files for testing."""
import sys, os
import argparse
try:
    import sh
    from sh import dd
except:
    print 'Please install the python sh module first : pip install sh'
    exit(1)

class MyParser(argparse.ArgumentParser):
    def error(self, message):
        print_help()
        sys.exit(1)

def print_help():
   print
   print '  Not enough arguments.\n'
   print '      Example: '
   print '          %s directory_for_generated_files' %  sys.argv[0]
   print '          Generate 10GB worth of 1MB, 2MB, 3MB, 4MB, 5MB, and 6MB files to the directory *directory_for_generated_files*.'
   print

def main():
    parser = MyParser()
    parser.add_argument('directory')
    args = parser.parse_args()
    directory = args.directory
    if not os.path.exists(directory):
        os.makedirs(directory)
    filesize_arr = [1,2,3,4,5,6]
    filequantity_arr = [10000,5000,3333,2500,2000,1667]

    idx = 0 
    for size in filesize_arr:
        for nr in range(1,filequantity_arr[idx]+1):  # from 1 to file quantity
            filename =  directory+'/'+str(size)+'MB_'+str(nr)
            print "writing "+directory+'/'+str(size)+'MB_'+str(nr)
            dd('if=/dev/zero', 'of='+filename, 'bs=1MB', 'count='+str(size))
        idx += 1

if __name__ == '__main__':
    main()

[EDIT4] Zmiany wprowadzone w systemie plików nie są widoczne po ponownym uruchomieniu maszyny wirtualnej.

phobic
źródło
Czy uruchamiasz komendę vboxmanage z prawami administracyjnymi?
K.A
Nie jestem pewien, czy zmienił się, ale kiedyś musiał uruchomić VirtualBox jako administrator, aby mieć dostęp do dysków surowych.
Brian
Dzięki, spróbuję tego wieczorem. Nie byłem pewien co do tego punktu, więc najpierw spróbowałem go bez uprawnień administratora. Ponieważ nie narzekałem, myślałem, że wszystko w porządku.
phobic

Odpowiedzi:

0

Tylko dyski i partycje, które nie są zamontowane w systemie operacyjnym hosta, są dostępne z maszyn wirtualnych. zgaduję \\.\PhysicalDrive0 to dysk, z którego uruchamiasz swój host, więc nie będziesz mógł z niego korzystać. Jest mało prawdopodobne, aby zmieniło się to w przyszłości, ponieważ udostępnienie dysku między dwoma systemami operacyjnymi spowodowałoby szereg problemów, potencjalnie prowadzących do uszkodzenia danych.

Jeśli chcesz udostępniać pliki między systemem operacyjnym hosta a systemem-gościem, powinieneś zainstalować VirtualBox Addons we wnętrzu gościa - w ustawieniach VM pojawi się opcja udostępniania, umożliwiająca skonfigurowanie współdzielonego folderu sieciowego w gościu, który wskaże niektóre foldery hosta .

gronostaj
źródło
Rozumiem, że mój post jest długi, ale wyraźnie stwierdza, że ​​udostępnianie nie jest problemem. Ponadto dysk nie zawiera ważnych danych. Więc nie ma na nim systemu operacyjnego. Czy wiesz, jak „odmontować” dysk w systemie Windows, jeśli uważasz, że jest to problem?
phobic
Przepraszam, przeoczyłem część udostępniania. Aby „odmontować” dysk, myślę, że usunięcie wszystkich liter dysków lub punktów montowania z partycji na tym dysku powinno wystarczyć. Możesz to zrobić w Zarządzanie komputerem okno (kliknij prawym przyciskiem myszy Komputer w menu Start i kliknij Zarządzanie ). Jeśli to nie zadziała, spróbuj z pojedynczymi partycjami zamiast całego dysku (partycja obejmująca cały dysk również powinna działać). Instrukcja VBox obejmuje ten temat . Zauważ, że dyski są indeksowane od 0, ale partycje zaczynają się od 1.
gronostaj
Po odmontowaniu dysku w systemie Windows nadal mogę odtworzyć błąd w powyższym skrypcie.
phobic
Spróbuj ponownie uruchomić komputer. Ponowna instalacja tej samej lub zaktualizowanej wersji VirtualBox też może pomóc, istnieją pewne znane problemy z VMDK, które są rozwiązywane przez ponowną instalację VBox.
gronostaj
Po „naprawie” instalacji najnowszego VB i ponownym uruchomieniu hosta i gościa nadal mogę niezawodnie odtworzyć błąd.
phobic