Як перемістити файли VirtualBox?


165

За замовчуванням VirtualBox зберігає всі дані в каталозі під домашнім каталогом. Я знаю, як це змінити, але як я можу змінити розташування існуючих зображень (без редагування VirtualBox.xml вручну)?

Я працюю в Windows і не хочу намагатися використовувати будь-які посилання NTFS .


4
Awww, я збирався запропонувати посилання (вони вирішують все ™), але ви заблокували цю ідею ... :(
DMA57361

2
Я взагалі не вірю посиланням на Windows. Хоча NTFS на це здатний, Windows XP нічого про це не знає, і з цим вже досить проблем. Я, можливо, буду
бездарним

Ага, так, я б не торкнувся їх на XP. Але підтримка на 7 досить солідна - вам все одно доведеться будувати їх з cmd-лінії, але це не дуже важливо. Я не впевнений у Vista…
DMA57361

Ще гірше, що версія XP NTFS підтримує жорсткі посилання, але вони не можуть охоплювати обсяги . Очевидно, я хотів перенести дані в інший розділ.
maaartinus

Жорсткі посилання ніколи не можуть охоплювати томи, лише символьні посилання можуть (і їх можна використовувати для подібних речей, наприклад, мої папки користувача всі посилання на мій другий жорсткий диск). Але особисто я все-таки уникав жорстких посилань у XP (навіть якщо вони були опцією).
DMA57361

Відповіді:


137

Якщо ви маєте намір перемістити весь свій VM на абсолютно нове місце, просто слід дотримуватися цих 2 відповідей:

Копіювання публікації тут:

  1. Вимкніть VirtualBox, створіть резервну копію файлу .VirtualBox \ VirtualBox.xml.
  2. Знайдіть наявну папку «Віртуальні віртуальні вікна» та скопіюйте (не переміщуйте) всю папку із вмістом на новий привід E:
  3. Запустіть VirtualBox, а потім для кожного VM по черзі:

    3.1 Клацніть правою кнопкою миші ім'я VM та виберіть "Видалити" зі спливаючого меню. Відповідь ні на "фізично видалити файли?" питання.

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

    3.2 Виберіть пункт меню Machine | Add .., перейдіть до нового місця VM на диску E :, і виберіть .vbox файл.

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

  4. У файлі | Налаштування, встановіть машинний шлях за замовчуванням на "E: \ VirtualBox VMs"
  5. Перевірте кожну з ВМ. Лише після того, як ви впевнені, що всі вони працюють, видаліть стару папку, що містить VM, тобто видаліть "C: \ VirtualBox VMs".

Коли я це роблю для машини з підключеним клоном, вони не запускаються
Nam G VU

1
Це працювало для мене, хоча мені також потрібно було оновити шляхи до кожного жорсткого диска та знімка, відредагувавши .VirtualBox\VirtualBox.xmlфайл та зробивши пошук / заміну. Крім того , я тільки переїхав Machinesі HardDiskпапки, а не всі файли , що містяться під .VirtualBox, так що все глобальні зміни і протоколювання і тому подібне.
Дейв Андерсен

4
Для користувачів Mac OS X VirtualBox.xmlзнаходиться за адресою ~/Library/VirtualBox/VirtualBox.xml. ВМ розташовані в ~/VirtualBox VMs.
Сіу Чін Понг -Асука Кенджі-

2
Virtual Box 4.3.0+ вирішив "Останню важливу річ", мені навіть не потрібно було її закривати - інструкції .
PCaetano

Можливо, ви також можете додати командний рядок "версія". 1) Перерахуйте наявні VM через VBoxManage list vms. 2) Поруч із назвами ВМ, у фігурних дужках, посилаються їх UUID. Скопіюйте цікавий. Деталі про нього можна отримати за допомогою VBoxManage showvminfo UUID. 3) Скасувати реєстрацію VM відсотків через VBoxManage unregistervm UUID. 4) Перемістіть каталог цікавого VM. 5) Нарешті, зареєструйте машину через VBoxManage register NameOfVM.vbox- очевидно, де NameOfVM мається на увазі фактичне ім'я .vboxфайла VM, який потрібно зареєструвати.
Нікос Олександріс

58

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


3
+1 Я думаю, що це найкращий метод. VirtualBox переміщує все для вас в охайному маленькому пакеті.
Дейв Андерсен

3
це найкращий спосіб, не потрібно вручну редагувати cfg
Bojan Bjelic

як ти це робиш ???
FlipFloop

Це справді має бути прийнята відповідь
theV0ID,

1
Попередження: Клон не створює ідеальної копії і може викликати необхідність оновлення ліцензій на встановлене програмне забезпечення у міру зміни ідентифікаторів машин / дисків. Зустрівся з цим під час переміщення старої копії Quicken на VM на новий диск.
MZB

36

Найпростіший метод не вимагає видалення ваших віртуальних машин і приглушення їх налаштувань.

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

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

    2а. Виберіть VM для переміщення пам’яті. Натисніть кнопку " Відпустити", а потім кнопку " Видалити" . У наступному діалоговому вікні ви можете видалити або зберегти віртуальний диск. Закрийте менеджера, залишивши вас у своєму менеджері віртуальної машини.

  3. Виберіть VM, для якого ви тільки що видалили носій, натисніть кнопку Налаштування , Клацніть розділ Зберігання . Додайте контролер для носія (зазвичай SATA), а потім додайте жорсткий диск і виберіть існуючий диск та виберіть VD у новому місці.

  4. Повторіть для кожної машини, на якій рухаєтесь

Відключіть вашу віртуальну машину на новому місці, щоб перевірити. Наступного разу, коли ви відвідаєте Менеджер віртуальних медіа , наведення курсора миші на запис VM покаже, де зберігається VD.

Переконайтеся, що ви змінили папки знімків, щоб вказати на новий диск, якщо ви їх використовуєте. На кожному апараті встановлено папку знімків, а VM Manager має параметр "Машина за замовчуванням " у меню Файл -> Налаштування, яке також потрібно змінити.

Крім того, мені довелося також змінити шлях до файлу xml. Після цього воно працювало бездоганно.

ПРИМІТКА: З моменту написання справи щось змінилося, див. Відповідь Роба. Зараз це надзвичайно просто.


2
Я думаю, що це набагато найпростіший спосіб зробити це.
Пітер Пергач

17

МНОГО, МНОГО простіше. 1) перехід до нового місця 2) Клацніть правою кнопкою миші видалити з меню віртуальної скриньки 3) Виберіть "додати" з меню машини 4) Знайдіть значок синього кольору 8 Кб, який має тип "визначення віртуальної машини". Виберіть його, і він додасться до вашого списку віртуальних скриньок. двічі клацніть віртуальну машину, і вона працює.


Навіть простіше, ніж це, коли ви хочете додати VM назад до VirtualBox, просто натисніть *.vboxфайл у його папці.
Джоел Меллон

2
Як все змінюється за три роки ... Бажання було так легко тоді. Додано примітку до моєї відповіді, щоб вони приїхали подивитися цю.
Лабораторії Фіаско

1
Це дійсно повинно бути вище. Я хитався і не міг змусити його працювати. Просто видаліть "недоступні" в інтерфейсі користувача, а потім двічі клацніть файл .vbox знову додавши його, використовуючи нове місце.
Венберт

Не працює на хості Linux. Отримання цієї помилки: перед будь-якою спробою ввімкнути сеанс VM було закрито. Код результату: NS_ERROR_FAILURE (0x80004005) Компонент: SessionMachine Interface: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}
Макс N

1
Частина "видалити" цей метод вважає поганою ідеєю, що призведе до втрати ваших налаштувань, але це не так. Цей метод підтримує всі ваші налаштування і є найпростішим із усіх методів, які я спробував. Він працював на хості Windows 10 з гостями Windows 7 та Windows Sever 2016.
Сова

13

На Mac відредагуйте шляхи до цього файлу:

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

Це було просто, престо!


3
Він використовує Windows, і він також не хоче редагувати VirtualBox.xml.
ChrisN

4
Це було корисно для мене, оскільки це питання все ще може бути гугльоване, якщо ви на Mac.
NReilingh

Я користувач Mac, і google приземлив мене тут, і це рішення є найпростішим із усіх, має ідеальний сенс і працював для мене :)
Mohit Singh

Я в Linux і мені сподобалося звучання цієї відповіді, але мене відклало попередження у верхній частині файлу. Ви все ще рекомендуєте редагувати XML безпосередньо? У попередженні сказано: ** НЕ редагуйте цей файл. Якщо ви внесете зміни в цей файл під час запуску будь-якої програми, пов’язаної з VirtualBox, ваші зміни будуть перезаписані пізніше, не вступаючи в силу. Використовуйте VBoxManage або графічний інтерфейс менеджера VirtualBox для внесення змін. **
craq

11

Витративши цілий день на цю проблему (використовуючи Virtualbox 5.0.12 на Arch Linux), я нарешті вирішив її так, як пропонує відповідь thomthom. Для тих, хто не впевнений у точній процедурі, командою, яка клонує всю машину (включаючи знімки), є:

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

Отримайте ім'я VM за допомогою

VBoxManage list vms

При необхідності вкажіть шлях та назву.

Нарешті, перевірте, чи все добре, і видаліть оригінал.

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

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


Це була єдина відповідь, яка працювала на мене. Повинна бути вище вгору.
Макс N

2
VM_to_clone- UUID або назва VM. За допомогою даної команди (за допомогою UUID) було створено каталог /new/path/_<UUID>_ Clone, а файли, що містять файли, також використовуються _<UUID>_ Cloneяк ім'я. Щоб явно мати приємніше ім’я, використовуйте --name "Your preferred name here"прапор.
Роб Ш

... і щоб видалити оригінальний VM через CLI, VBoxManage unregistervm UUID(UUID VM, який ви отримали через VBoxManage list vms, не використовуйте ім'я VM, оскільки якщо ви використовуєте --nameдля збереження оригінального імені, то у вас є кілька VM з однаковою назвою)
Rob W

Попередження: Клон не створює ідеальної копії і може викликати необхідність оновлення ліцензій на встановлене програмне забезпечення у міру зміни ідентифікаторів машин / дисків. Зустрівся з цим під час переміщення старої копії Quicken на VM на новий диск.
MZB

У будь-якому разі, здається, є спеціальна команда: virtualbox.org/manual/ch08.html#vboxmanage-movevm
Michael P

4

Для того, щоб зробити те ж саме , як і в Lucas Pottersky відповідь , але через командний рядок (на 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
    

2

Це працювало і для мене з випуском VirtualBox MacOS (випуск 4.1.12). Я зачекав 5-10 секунд, щоб VirtualBox вийшов, перш ніж повторно запускатися. Я заглянув у Монітор активності, щоб переконатися, що 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}

2

В ОС X з VirtualBox v4.3.14 все, що мені потрібно було зробити, - це двічі клацнути .vboxфайл з нового місця, і він відкрив VirtualBox і додав його до списку доступних віртуальних машин.


Будь ласка, не додайте "дякую" як відповідь. Натомість проголосуйте за відповіді, які вам здаються корисними.
Скотт

Моя відповідь не "дякую". Я відредагував формулювання, щоб зробити це більш очевидним. Дякую.
Тайсон Фелп

2

У налаштуваннях VirtualBox є місце зберігання за замовчуванням: http://mattvelic.com/default-vm-location/

Зараз мертвий. У машині Wayback є вміст:

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 Я відредагував місце, щоб вказати на мій накопичувач, і швидко переробив своє ВМ. Цього разу VirtualBox створив і машинні файли, і VDI в потрібному місці. Справжній урок тут полягає в тому, що іноді рішення не повинно бути технічним. Я думаю, що як ІТ-професіонали, ми схильні думати, що відповісти на проблему буде складно. Тримайте очі відкритими для очевидних рішень!


Це посилання тепер мертве. Намагайтеся не публікувати посилання як відповіді. Коли вони йдуть мертвими, СУ залишається з очищенням.
mrtsherman

оновлено вмістом archive.org
Ребекка,

1

Я не думаю, що це можливо.

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


1
У мене був другий погляд на xml, і він насправді дуже простий. Створення нової машини не добре, оскільки я хотів би зберегти свої налаштування (я не пам'ятаю, що я змінив, це може бути абсолютно неважливо чи ні).
maaartinus

1

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

Виправлення було в меню / File / Virtual Media Manager, видаліть існуючий VDI. Це працює, навіть якщо є знімки; просто видаліть всі VDI знімки у зворотному порядку. Не потрібно закривати та знову відкривати VirtualBox.


0

Я ніколи не використовував virtualbox у Windows, але в ubuntu ви переміщуєте VDI, а у GUI virtualbox ви клацніть правою кнопкою миші на VM і використовуєте меню конфігурації -> сховище, де ви можете змінити локалізацію VDI на те, куди ви перемістили файл. Що стосується визначення інших машинних файлів, ви переміщуєте їх, і в графічному інтерфейсі ви переходите до "Налаштування" та змінюєте позицію каталогу машин за замовчуванням на каталог, який ви перемістили.


0

Я використовую цей метод:

  1. У графічному інтерфейсі VirtualBox виберіть свій VM та вийміть доданий жорсткий диск
  2. Скопіюйте файл (тобто vdi) на нове місце
  3. Створіть новий UUID для .vdi в новому місці за допомогою команди vboxmanage Internalcommands sethduuid "мій шлях до myhdd.vdi" 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC

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

  4. Тепер поверніться до GUI VirtualBox, виберіть свій VM та в розділі Налаштування / Зберігання приєднайте HD (файл .vdi) з його нового місця.

і зробили.


-1

У Oracle VM VirtualBox (протестовано у версії 6.0.4) просто вимкніть свій VM -> клацніть правою кнопкою миші VM в диспетчері VirtualBox -> натисніть "Перемістити ..." -> виберіть новий каталог. Це воно!


@Moreaki: До речі, "розбірливість" (і "розбірливість") пишеться без "D".
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.