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.
źródło
Odpowiedzi:
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 .
źródło