Доступ к внутреннему диску Virtualbox

как получить доступ к внутреннему диску из гостевых систем? Мой хост-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] изменения, внесенные в файловую систему, не отображаются после перезапуска виртуальной машины.

10
задан phobic
27.12.2022 1:00 Количество просмотров материала 2685
Распечатать страницу

1 ответ

из виртуальных машин доступны только диски и разделы, которые не смонтированы в ОС хоста. Я думаю \.\PhysicalDrive0 - Это диск, с которого вы загружаете свой хост, поэтому вы не сможете его использовать. Это вряд ли изменится в будущем, так как совместное использование диска между двумя операционными системами вызовет ряд проблем, потенциально приводящих к повреждению данных.

Если вы хотите поделиться файлами между хост-ОС и гостевой ОС, вы должны установить VirtualBox аддоны в гостевой-появится опция обмена в настройках виртуальной машины, что позволяет настроить общую сетевую папку в гостевой, которая будет указывать на некоторые из папок хоста.

0
отвечен gronostaj 2022-12-28 08:48

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх