как получить доступ к внутреннему диску из гостевых систем? Мой хост-Windows 7.
Я пытался руководство, но когда я подключаю новый vmdk к гостевому компьютеру Windows 7, он отображается как неформатированный с нулевым дисковым пространством. Команда для создания vmdk:
VBoxManage.exe internalcommands createrawvmdk -filename C:Usersme.VirtualboxVDImydrive.vmdk -rawdisk .PhysicalDrive0
, где число за PhysicalDrive является номером диска в Computermanagement - >Diskmanagement.
Если я правильно понимаю проблему, руководство, скорее, рассматривает использование жесткого диска в качестве загрузки устройство вместо хранилища.
Моя мотивация просто добавить еще один диск в виртуальную гостевую систему заключается в том, что у меня есть дополнительное хранилище, к которому можно получить доступ без издержек виртуализации. Обмен данными не является проблемой. Сам диск не хранит данные, которые важны, хотя я бы не хотел удалять его, если это вариант. Сейчас я собираюсь использовать общие папки, но afaik они медленные по сравнению.
[EDIT] извините за путаницу, образ виртуальной машины, который я использовал, - это Windows XP, а не Windows 7. Я создал новый vmdk с правами администратора, как предложено в комментариях. В bahavior не изменила. Затем я попытался получить доступ к диску в виртуальной машине Ubuntu. При первом запуске я получил ошибку VERR_ACCESS_DENIED, убедитесь, что достаточно свободного места. После принудительного перезапуска виртуальной машины я мог получить доступ к диску через Диспетчер файлов. Я также попытался получить доступ к диску с виртуальной машины Windows 7 (да, на этот раз действительно Windows 7). Там же произошла ошибка VERR_ACCESS_DENIED. В отличие от на виртуальной машине Ubuntu он появлялся каждый раз, когда я перезагрузки (три раза).
[EDIT2] реализация кажется некорректной. Я написал скрипт для записи 10Гб 1Мб файлов, 10ГБ 2ГБ и так далее. Сначала я получил ошибку на 6200.th 1 МБ файла. В следующий раз, та же ошибка, на первый 3МБ файл:
/bin/dd: opening `/media/Ultra_/samplefiles/3MB_1': Input/output error
после этого, я получаю ошибку ввода-вывода при попытке доступа к каталогу samplefiles в любом случае.
[EDIT3] вот тестовый скрипт для воспроизведения ошибки. Если я обращаюсь к диску через мою хост-систему, я не вижу файлы / папки, которые я написал к нему через гостя. На самой гостевой машине файлы видны, а размер файловой системы сырой файловой системы виден через df-h уменьшается по мере записи файлов. Я все еще могу получить доступ к другим файлам на диске после возникновения ошибки.
#!/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] изменения, внесенные в файловую систему, не отображаются после перезапуска виртуальной машины.