Как переместить файлы VirtualBox?

165

По умолчанию VirtualBox хранит все данные в каталоге под домашним каталогом. Я знаю, как это изменить, но как я могу изменить местоположение существующих изображений (без редактирования VirtualBox.xml вручную)?

Я работаю в Windows и не хочу использовать ссылки NTFS .

maaartinus
источник
4
Ой, я собирался предложить символические ссылки (они решают Все ™), но вы заблокировали эту идею ... :(
DMA57361
2
Я не доверяю ссылкам на Windows вообще. Хотя NTFS способна на это, Windows XP ничего не знает об этом, и с этим уже достаточно проблем. Я могу быть излишне трусом ...
maaartinus
Ах, да, я бы не трогал их на XP. Но поддержка на 7 довольно солидна - вам все равно придется собирать их из строки cmd, но это не так уж сложно. Я не уверен насчет Vista ...
DMA57361
Что еще хуже, версия NTFS для XP поддерживает жесткие ссылки, но они не могут охватывать тома . Очевидно, я хотел переместить данные в другой раздел.
Maaartinus
Жесткие ссылки никогда не могут охватывать тома, могут только символические ссылки (и могут использоваться для такого рода вещей, например, все мои пользовательские папки связаны с моим вторым жестким диском). Но лично я бы все же избегал жестких ссылок в XP (даже если бы они были опцией).
DMA57361

Ответы:

138

Если вы хотите переместить всю свою виртуальную машину в совершенно новое место, вам следует просто выполнить следующие 2 ответа:

Копирование поста здесь:

  1. Завершите работу VirtualBox, создайте резервную копию файла .VirtualBox \ VirtualBox.xml.
  2. Найдите существующую папку «Virtualbox VMs» и скопируйте (не перемещайте) всю папку с содержимым на новый диск E:
  3. Запустите VirtualBox, затем по очереди для каждой виртуальной машины:

    3.1 Щелкните правой кнопкой мыши имя виртуальной машины и выберите «Удалить» во всплывающем меню. Ответьте нет на "физически удалить файлы?" вопрос.

    3.1b после удаления виртуальной машины из пользовательского интерфейса необходимо закрыть VirtualBox и оставить его закрытым на достаточно долгое время, чтобы фоновая задача VBoxSVC вышла из строя и также прекратила работу. Затем вы можете снова запустить приложение VirtualBox и использовать Machine | Add, чтобы добавить виртуальные машины, удаленные на предыдущем шаге.

    3.2 Выберите пункт меню Machine | Add .., перейдите к новому расположению виртуальных машин на диске E: и выберите файл .vbox.

    3.3. Повторите для всех оставшихся виртуальных машин.

  4. В File | Preferences установите путь машины по умолчанию к "E: \ VirtualBox VMs"
  5. Проверьте каждую из виртуальных машин. Только после того, как вы убедитесь, что все они работают, удалите старую папку, содержащую виртуальную машину, т.е. удалите «C: \ VirtualBox VM».
Лукас Поттерский
источник
Когда я делаю это для машины связанных клонов, они не запускаются
Nam G VU
1
Это сработало для меня, хотя мне также нужно было обновить пути к каждому жесткому диску и снимку изображения, отредактировав .VirtualBox\VirtualBox.xmlфайл и выполнив поиск / замену. Кроме того , я только переехал Machinesи HardDiskпапки, а не все файлы , содержащиеся под .VirtualBox, так что все глобальные конфигурации и протоколирования и тому подобное.
Дейв Андерсен
4
Для пользователей Mac OS X VirtualBox.xmlнаходится по адресу ~/Library/VirtualBox/VirtualBox.xml. ВМ находятся в ~/VirtualBox VMs.
Сиу Чинг-Понг-Асука Кэндзи -
2
Виртуальная коробка 4.3.0+ решила «Последнее важное», мне даже не нужно было его закрывать - инструкции .
PCaetano
Возможно, вы могли бы добавить командную строку «версия» тоже. 1) Список существующих виртуальных машин через VBoxManage list vms. 2) Рядом с именами виртуальных машин в фигурных скобках указываются их UUID. Скопируйте интересующий вас. Подробности об этом, можно получить через VBoxManage showvminfo UUID. 3) Отмените регистрацию интересующей виртуальной машины через VBoxManage unregistervm UUID. 4) Переместите каталог интересующей виртуальной машины. 5) Наконец, зарегистрируйте машину через VBoxManage register NameOfVM.vbox- очевидно, где NameOfVM означает фактическое имя .vboxфайла виртуальной машины, который будет зарегистрирован.
Никос Александрис
58

У меня была только пара виртуальных машин, и я обнаружил, что могу просто изменить расположение хранилища по умолчанию для VirtualBox и затем клонировать свои виртуальные машины. Клоны были созданы в новом месте на новом HD, где я хотел их. Все в порядке, снимки и нет необходимости переназначать расположение виртуальных HD.

thomthom
источник
3
+1 Я думаю, что это лучший метод. VirtualBox переносит все для вас в небольшой пакетик.
Дейв Андерсен
3
это лучший способ, ручное редактирование cfg не требуется
Bojan Bjelic
Как ты это сделал???
FlipFloop
Это действительно должен быть принятый ответ
theV0ID
1
Предупреждение: Clone не создает идеальную копию и может вызвать необходимость обновления лицензий для установленного программного обеспечения при изменении идентификаторов компьютеров / дисков. Обнаружено это при перемещении старой копии Quicken на ВМ на новый диск.
MZB
36

Самый простой способ не требует удаления виртуальных машин и установки их настроек.

  1. Скопируйте папку виртуальных машин Virtualbox на новый диск.

  2. Запустите диспетчер виртуальных машин. Запустите файл Media Manager -> Virtual Media Manager.

    2а. Выберите виртуальную машину, для которой нужно переместить хранилище. Нажмите кнопку « Отпустить» , а затем кнопку « Удалить» . В следующем диалоговом окне вы можете удалить или оставить виртуальный диск. Закройте менеджер, оставив вас в диспетчере компьютеров Virtualbox.

  3. Выберите виртуальную машину, для которой вы только что удалили носитель, нажмите кнопку « Настройки» , нажмите « Хранилище ». Добавьте контроллер для носителя (обычно SATA), а затем добавьте жесткий диск, выберите существующий диск и выберите виртуальный диск в новом месте.

  4. Повторите для каждой машины вы двигаетесь

Запустите вашу виртуальную машину на новом месте, чтобы проверить. В следующий раз, когда вы зайдете в Virtual Media Manager , при наведении курсора на запись виртуальной машины будет показано, где хранится виртуальный диск.

Убедитесь, что вы изменили папки со снимками, чтобы они указывали на новый диск, если вы их используете. У каждого компьютера есть параметр папки моментальных снимков, а в VM Manager есть параметр « Папка компьютера по умолчанию» в меню «Файл» -> «Параметры», который также необходимо изменить.

Кроме того, мне пришлось изменить путь в XML-файле. После этого все заработало без нареканий.

ПРИМЕЧАНИЕ. С тех пор, как это было написано, все немного изменилось, см. Ответ Роба. Теперь это очень просто.

Fiasco Labs
источник
2
Я думаю, что это самый простой способ сделать это.
Петер Перхач
17

НАМНОГО, НАМНОГО проще. 1) перейти в новое место 2) щелкнуть правой кнопкой мыши по удалению из меню virtualbox 3) выбрать «добавить» из меню машины 4) найти синий значок 8 КБ, который имеет тип «определение машины virtualbox». Выберите его, и он добавится в ваш список виртуальных ящиков. дважды щелкните виртуальную машину, и она работает.

обкрадывать
источник
Еще проще, чем когда вы хотите добавить виртуальные машины обратно в VirtualBox, просто щелкните *.vboxфайл в его папке.
Джоэл Меллон
2
Как все меняется за три года ... В то время было так легко. Добавил примечание к моему ответу, чтобы они увидели этот.
Fiasco Labs
1
Это действительно должно быть выше. Я возился и не мог заставить это работать. Просто удалив «недоступные» из пользовательского интерфейса, а затем дважды щелкнув файл .vbox, снова добавьте его, используя новое местоположение.
Венберт
Не работает на хосте Linux. Получение этой ошибки: Сеанс виртуальной машины был закрыт перед любой попыткой включить его. Код результата: NS_ERROR_FAILURE (0x80004005) Компонент: SessionMachine Интерфейс: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}
Макс. N
1
«Удалить» часть этого метода кажется плохой идеей, которая приведет к потере ваших настроек, но это не так. Этот метод поддерживает все ваши настройки и является самым простым из всех методов, которые я пробовал. Он работал на хосте Windows 10 с гостями Windows 7 и Windows Sever 2016.
Ночная сова
13

На Mac отредактируйте пути в этом файле:

/Users/pleddy/Library//VirtualBox/VirtualBox.xml

Это было легко, Presto!

pcharlesleddy
источник
3
Он использует Windows, и он также не хочет редактировать VirtualBox.xml.
ChrisN
4
Это было полезно для меня, так как этот вопрос все еще можно гуглить, если вы на Mac.
NReilingh
Я пользователь Mac, и Google высадил меня здесь, и это решение самое простое, имеет смысл и сработало для меня :)
Мохит Сингх,
Я нахожусь на Linux, и мне понравился звук этого ответа, но я был отложен предупреждением в верхней части файла. Вы бы по-прежнему рекомендовали редактировать XML напрямую? Предупреждение гласит: ** НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ. Если вы внесете изменения в этот файл во время работы любого приложения, связанного с VirtualBox, ваши изменения будут перезаписаны позже без вступления в силу. Используйте VBoxManage или графический интерфейс VirtualBox Manager для внесения изменений. **
Craq
11

Потратив целый день на эту проблему (используя Virtualbox 5.0.12 в Arch Linux), я, наконец, решил ее так, как предполагает ответ Томтома. Для тех, кто не уверен в точной процедуре, команда, которая клонирует всю машину (включая снимки):

VBoxManage clonevm --mode all --basefolder </new/path/> --register <VM_to_clone>

Получить имя виртуальной машины с помощью

VBoxManage list vms

При необходимости укажите путь и имя.

Наконец, проверьте, все ли хорошо, и удалите оригинал.

Вот и все, правда. Не нужно беспокоиться о XML-файлах или шестнадцатеричном редакторе. Нет необходимости использовать графический интерфейс.

http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevm

Майкл П
источник
Это был единственный ответ, который работал для меня. Должно быть выше.
Макс N
2
VM_to_cloneэто UUID или имя виртуальной машины. С помощью данной команды (с использованием UUID) был создан каталог /new/path/_<UUID>_ Clone, и содержащие файлы также используются в _<UUID>_ Cloneкачестве имени. Чтобы явно иметь более хорошее имя, используйте --name "Your preferred name here"флаг.
Роб W
... и удалить исходную виртуальную машину через интерфейс командной строки VBoxManage unregistervm UUID(UUID виртуальной машины, через которую вы получили VBoxManage list vms, не используйте имя виртуальной машины, потому что если вы используете --nameдля сохранения оригинального имени, то у вас есть несколько виртуальных машин с одинаковым именем)
Роб Вт
Предупреждение: Clone не создает идеальную копию и может вызвать необходимость обновления лицензий для установленного программного обеспечения при изменении идентификаторов компьютеров / дисков. Обнаружено это при перемещении старой копии Quicken на ВМ на новый диск.
MZB
В любом случае, похоже, теперь есть отдельная
Майкл П,
4

Чтобы сделать то же самое, что и в ответе Лукаса Поттерского, но через командную строку (в Windows заменить vboxmanageна VBoxManage.exe):

  1. Список всех виртуальных машин:

    vboxmanage list vms
    

    или только работает:

    vboxmanage list runningvms
    

    который для каждой машины выводит имя и UUID.

    Выполните следующие шаги для каждой машины, которую вы будете перемещать.

  2. Изящно выключите это:

    vboxmanage controlvm UUID acpipowerbutton
    
  3. Отмените:

    vboxmanage unregistervm UUID
    
  4. Переместите папку виртуальной машины на новое место.

  5. Зарегистрируйте его, указав путь к .vboxфайлу:

    vboxmanage registervm /path/to/machine.vbox
    
Mixel
источник
2

Это сработало и для меня с версией VirtualBox для MacOS (версия 4.1.12). Я ждал, пока VirtualBox выйдет 5-10 секунд перед повторным запуском. Я посмотрел в Activity Monitor, чтобы убедиться, что VBoxSVC правильно завершил работу.

Если вы этого не сделаете, вы получите сообщение об ошибке, похожее на следующее (я копирую и вставляю чужое сообщение об ошибке, полученное из Windows). Если вы получаете эту ошибку, это просто потому, что вы не закрыли VirtualBox или не подождали достаточно времени, чтобы VBoxSVC вышел.

Failed to open virtual machine located in E:/<path>/<machine_name>/<machine_name>.vbox.

Cannot register the hard disk 'E:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' {0ece4bff-9185-4cff-9069-b3d1f4536394} 
because a hard disk 'C:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' with UUID {0ece4bff-9185-4cff-9069-b3d1f4536394} already exists.

Result Code: E_INVALIDARG (0x80070057)
Component: VirtualBox
Interface: IVirtualBox {c28be65f-1a8f-43b4-81f1-eb60cb516e66}
withfries2
источник
2

В OS X с VirtualBox v4.3.14 все, что мне нужно было сделать, это дважды щелкнуть .vboxфайл в новом месте, и он открыл VirtualBox и добавил его в список доступных виртуальных машин.

Тайсон Фалп
источник
Пожалуйста, не добавляйте «спасибо» в качестве ответа. Вместо этого проголосуйте за ответы, которые вы считаете полезными.
Скотт
Мой ответ не «спасибо». Я отредактировал формулировку, чтобы сделать это более очевидным. Благодарю.
Тайсон Фалп
2

В настройках VirtualBox есть место для хранения по умолчанию: http://mattvelic.com/default-vm-location/

Теперь мертв. У путевой машины есть содержание:

http://web.archive.org/web/20131116130725/http://mattvelic.com/default-vm-location

... проверить настройки в меню Файл. Вот! Первым элементом на вкладке «Общие» является папка машины по умолчанию. http://web.archive.org/web/20131116130725im_/http://54.225.211.105/wp-content/uploads/2012/11/VB_Preferences.png Я отредактировал расположение, чтобы указать его накопитель, и быстро переделал свой VM. На этот раз VirtualBox создал файлы компьютера и VDI в правильном месте. Настоящий урок здесь заключается в том, что иногда решение не обязательно должно быть техническим. Я думаю, что, как ИТ-специалисты, мы склонны думать, что решение проблемы будет сложным. Следите за очевидными решениями!

Ребекка
источник
Эта ссылка сейчас мертва. Старайтесь не публиковать ссылки в качестве ответов. Когда они умирают, у Су остается грязь для очистки.
Мртшерман
обновлено с сайта archive.org
Ребекка
1

Я не думаю, что это возможно.

Вы можете переместить VDI на новое место, но я не думаю, что вы можете избежать модификации XML. В качестве альтернативы (но на самом деле это то же самое, что и издание XML) будет ли создание новой виртуальной машины с графическим интерфейсом и выбор перемещенного образа в качестве диска, отвечающего вашим потребностям?

M'vy
источник
1
У меня был второй взгляд на XML, и это на самом деле очень просто. Создать новую машину нехорошо, так как я хотел бы сохранить свои настройки (я не помню, что я изменил, это может быть совершенно неважно или нет).
Маартин
1

Я попробовал оригинальный метод (удалить VDI, прикрепить новую копию), получил сообщение о том, что старый все еще существует, и не смог прикрепить новую копию даже после перезапуска ОС (в Mac OS X El Capitan).

Исправление было в меню / File / Virtual Media Manager, удалите существующий VDI. Это работает, даже если есть снимки; просто удалите все VDI снимка в обратном порядке. Нет необходимости закрывать и открывать VirtualBox.

marty39
источник
0

Я никогда не использовал virtualbox в Windows, но в Ubuntu вы перемещаете VDI, а в GUI Virtualbox вы щелкаете правой кнопкой мыши на виртуальной машине и используете Меню конфигурации -> хранилище, где вы можете изменить локализацию VDI, куда вы переместили файл. Что касается определения других машинных файлов, вы перемещаете их, и в GUI вы переходите в Предпочтения и меняете положение машинного каталога по умолчанию на директорию, которую вы переместили.

Laurent
источник
0

Я использую этот метод:

  1. В VirtualBox GUI выберите свою виртуальную машину и удалите подключенный жесткий диск
  2. Скопируйте файл (т.е. VDI) в новое место
  3. Сгенерируйте новый UUID для .vdi в новом месте с помощью команды vboxmanage internalcommands sethduuid "my path to myhdd.vdi" 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC

    (В предыдущем примере используйте свой собственный UUID или не добавляйте его вообще: команда автоматически сгенерирует его. Также, если вы пропустите этот шаг, при добавлении .vdi из нового местоположения вы получите ошибку, что UUID уже существует ).

  4. Теперь вернитесь к графическому интерфейсу VirtualBox, выберите свою виртуальную машину и в разделе «Настройки / Хранилище» прикрепите HD (файл .vdi) из нового местоположения.

и сделано.

Фернандо Гонсалес Санчес
источник
-1

В Oracle VM VirtualBox (протестировано с версией 6.0.4) просто выключите свою ВМ -> щелкните правой кнопкой мыши ВМ в Диспетчере VirtualBox -> нажмите «Переместить ...» -> выберите новый каталог. Это оно!

Сильвио Ягер
источник
@Moreaki: Кстати, «разборчивость» (и «разборчивость») пишется без «D».
Скотт