Jak przenosić pliki VirtualBox?


165

Domyślnie VirtualBox przechowuje wszystkie dane w katalogu poniżej katalogu domowego. Wiem, jak to zmienić, ale jak mogę zmienić lokalizację istniejących obrazów (bez ręcznej edycji VirtualBox.xml)?

Pracuję w systemie Windows i nie chcę próbować używać żadnych łączy NTFS .


4
Awww, miałem zamiar zasugerować dowiązania symboliczne (rozwiązują Wszystko ™), ale zablokowałeś ten pomysł ... :(
DMA57361 11.11

2
W ogóle nie ufam linkom w systemie Windows. Chociaż NTFS jest w stanie to zrobić, Windows XP nic o tym nie wie i już ma z tym dość problemów. Mogę być niepotrzebnie tchórzem ...
maaartinus,

Ach, tak, nie dotknąłbym ich na XP. Ale wsparcie dla 7 jest dość solidne - nadal musisz je budować z linii cmd, ale to nie jest tak naprawdę uciążliwe. Nie jestem pewien co do Visty ...
DMA57361

Jest jeszcze gorzej, wersja NTFS XP obsługuje łącza twarde, ale nie mogą one obejmować woluminów . Oczywiście chciałem przenieść dane na inną partycję.
maaartinus,

Twarde linki nie mogą nigdy obejmować wielu woluminów, tylko dowiązania symboliczne mogą (i mogą być używane do tego rodzaju rzeczy, moje foldery użytkowników są na przykład dowiązane symbolicznie do mojego drugiego dysku twardego). Ale osobiście nadal unikam dowiązań twardych w XP (nawet jeśli byłyby to możliwe).
DMA57361,

Odpowiedzi:


136

Jeśli chcesz przenieść całą maszynę wirtualną do zupełnie nowej lokalizacji, wykonaj następujące 2 odpowiedzi:

Kopiowanie postu tutaj:

  1. Zamknij VirtualBox, wykonaj kopię zapasową pliku .VirtualBox \ VirtualBox.xml.
  2. Znajdź istniejący folder „Virtualbox VMs” i skopiuj (nie przenieś) cały folder z zawartością na nowy dysk E:
  3. Uruchom VirtualBox, a następnie kolejno dla każdej maszyny wirtualnej:

    3.1 Kliknij prawym przyciskiem myszy nazwę maszyny wirtualnej i wybierz „Usuń” z menu podręcznego. Odpowiedz „nie” na „fizycznie usunąć pliki?” pytanie.

    3.1b po usunięciu maszyny wirtualnej z interfejsu użytkownika musisz zamknąć VirtualBox i pozostawić go zamkniętym na wystarczająco długo, aby zadanie VBoxSVC w tle mogło również przekroczyć limit czasu i zakończyć działanie. Następnie możesz ponownie uruchomić aplikację VirtualBox i użyć Machine | Add, aby dodać maszyny wirtualne usunięte w poprzednim kroku.

    3.2 Wybierz pozycję menu Maszyna | Dodaj ..., przejdź do nowej lokalizacji maszyn wirtualnych na dysku E: i wybierz plik .vbox.

    3.3 Powtórz dla wszystkich pozostałych maszyn wirtualnych.

  4. W oknie Preferencje pliku ustaw domyślną ścieżkę komputera na „E: \ VirtualBox VMs”
  5. Przetestuj każdą maszynę wirtualną. Dopiero po upewnieniu się, że wszystkie działają, usuń starą maszynę wirtualną zawierającą folder, tj. Usuń „C: \ VirtualBox VMs”.

Gdy robię to dla maszyny z klonowanym połączeniem, nie uruchamiają się
Nam G VU

1
To działało dla mnie, chociaż musiałem również zaktualizować ścieżki do każdego dysku twardego i obrazu migawkowego, edytując .VirtualBox\VirtualBox.xmlplik i wykonując wyszukiwanie / zamianę. Poza tym przeniosłem tylko foldery Machinesi HardDisk, a nie wszystkie zawarte w nich pliki .VirtualBox, ponieważ to cała globalna konfiguracja i rejestrowanie itd.
Dave Andersen

4
Dla użytkowników systemu Mac OS X VirtualBox.xmlznajduje się pod adresem ~/Library/VirtualBox/VirtualBox.xml. Maszyny wirtualne znajdują się w ~/VirtualBox VMs.
Siu Ching Pong -Asuka Kenji-

2
Virtual Box 4.3.0+ rozwiązał „ostatnią ważną rzecz”, nawet nie musiałem jej zamykać - instrukcje .
PCaetano,

Być może mógłbyś również dodać „wersję” wiersza poleceń. 1) Wyświetl listę istniejących maszyn wirtualnych za pośrednictwem VBoxManage list vms. 2) Obok nazw maszyn wirtualnych, w nawiasach klamrowych, znajdują się odniesienia do ich UUID. Skopiuj interesujący. Szczegółowe informacje na ten temat można znaleźć za pośrednictwem VBoxManage showvminfo UUID. 3) Wyrejestruj maszynę wirtualną za pośrednictwem VBoxManage unregistervm UUID. 4) Przenieś katalog interesującej maszyny wirtualnej. 5) Na koniec zarejestruj komputer za pomocą VBoxManage register NameOfVM.vbox- oczywiście, gdzie NameOfVM oznacza rzeczywistą nazwę .vboxpliku VMs, który ma zostać zarejestrowany.
Nikos Alexandris,

58

Miałem tylko kilka maszyn wirtualnych i stwierdziłem, że mogę po prostu zmienić domyślną lokalizację magazynu VirtualBox, a następnie sklonować moje maszyny wirtualne. Klony zostały utworzone w nowej lokalizacji na nowym HD, gdzie ich chciałem. Wszystko nienaruszone, migawki i nie trzeba mapować lokalizacji wirtualnych dysków HD.


3
+1 Myślę, że to najlepsza metoda. VirtualBox przenosi wszystko dla ciebie w uporządkowanym małym pakiecie.
Dave Andersen

3
jest to najlepszy sposób, nie jest wymagana ręczna edycja cfg
Bojan Bjelic

jak Ty to robisz???
FlipFloop

To naprawdę powinna być zaakceptowana odpowiedź
theV0ID

1
Ostrzeżenie: klon nie tworzy idealnej kopii i może powodować konieczność aktualizacji licencji dla zainstalowanego oprogramowania w miarę zmiany identyfikatorów komputera / dysku. Wystąpiło to podczas przenoszenia starej kopii Quicken na maszynie wirtualnej na nowy dysk.
MZB

36

Najłatwiejsza metoda nie wymaga usuwania maszyn wirtualnych i zmiany ustawień.

  1. Skopiuj folder maszyn wirtualnych Virtualbox na nowy dysk.

  2. Uruchom Virtual Box Machine Manager. Uruchom plik Media Manager -> Virtual Media Manager

    2a. Wybierz maszynę wirtualną, dla której chcesz przenieść pamięć. Kliknij przycisk Zwolnij , a następnie przycisk Usuń . W następnym oknie dialogowym możesz usunąć lub zatrzymać dysk wirtualny. Zamknij menedżera, pozostawiając cię w Virtualbox Machine Manager.

  3. Wybierz maszynę wirtualną, dla której właśnie usunąłeś nośnik, kliknij przycisk Ustawienia , kliknij sekcję Pamięć . Dodaj kontroler dla nośnika (zwykle SATA), a następnie dodaj dysk twardy, wybierz istniejący dysk i wybierz VD w nowej lokalizacji.

  4. Powtórz dla każdej maszyny, którą poruszasz

Uruchom maszynę wirtualną w nowej lokalizacji, aby sprawdzić. Następnym razem, gdy odwiedzisz Virtual Media Manager , najechanie kursorem na pozycję maszyny Wirtualnej pokaże, gdzie jest przechowywane VD.

Pamiętaj, aby zmienić foldery migawek, aby wskazywały nowy dysk, jeśli ich używasz. Każda maszyna ma ustawienie folderu migawki, a VM Manager ma ustawienie Domyślny folder komputera w Plik -> Ustawienia, które również należy zmienić.

Ponadto musiałem zmodyfikować ścieżkę w pliku xml. Potem działało bezbłędnie.

UWAGA: Od czasu, gdy to zostało napisane, sytuacja się nieco zmieniła, patrz odpowiedź Roba. Teraz jest to niezwykle proste.


2
myślę, że jest to zdecydowanie najłatwiejszy sposób na zrobienie tego.
Peter Perháč

17

DUŻO, DUŻO prostsze. 1) przejdź do nowej lokalizacji 2) Kliknij prawym przyciskiem myszy usuń z menu virtualbox 3) Wybierz „dodaj” z menu maszyny 4) Znajdź niebieską ikonę 8kb, która ma rodzaj „definicji maszyny wirtualnej”. Wybierz go, a zostanie dodany do listy virtualbox. kliknij dwukrotnie maszynę wirtualną i to działa.


Jeszcze prostsze niż to, gdy chcesz dodać maszyny wirtualne z powrotem do VirtualBox, po prostu kliknij *.vboxplik w folderze.
Joel Mellon

2
Jak zmieniają się rzeczy w ciągu trzech lat ... Życzenie było wtedy takie łatwe. Dodałem notatkę do mojej odpowiedzi, aby przyszli ją zobaczyć.
Fiasco Labs,

1
To naprawdę powinno być wyżej. Bawiłem się i nie mogłem sprawić, żeby działało. Wystarczy usunąć „niedostępne” w interfejsie użytkownika, a następnie dwukrotnie kliknąć plik .vbox, aby dodać go ponownie w nowej lokalizacji.
wenbert

Nie działa na hoście Linux. Otrzymywanie tego błędu: sesja maszyny wirtualnej została zamknięta przed każdą próbą włączenia zasilania. Kod wyniku: NS_ERROR_FAILURE (0x80004005) Składnik: Interfejs SessionMachine: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}
Max N

1
Część „usuń” tej zasady jest złym pomysłem, który spowoduje utratę ustawień, ale tak nie jest. Ta metoda zachowuje wszystkie ustawienia i jest najłatwiejszą ze wszystkich metod, które wypróbowałem. Działa na hoście z systemem Windows 10 zarówno dla gości Windows 7, jak i Windows Sever 2016.
Night Owl

13

Na Macu edytuj ścieżki w tym pliku:

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

To było łatwe, presto!


3
Używa systemu Windows, a także nie chce edytować VirtualBox.xml.
ChrisN

4
Było to dla mnie pomocne, ponieważ to pytanie jest nadal dostępne dla użytkowników komputerów Mac.
NReilingh

Jestem użytkownikiem Maca i Google wylądowało tutaj, a to rozwiązanie jest najprostsze ze wszystkich, ma sens i działało dla mnie :)
Mohit Singh

Jestem na Linuksie i podobał mi się dźwięk tej odpowiedzi, ale zniechęciło mnie ostrzeżenie na górze pliku. Czy nadal poleciłbyś edycję kodu XML bezpośrednio? Ostrzeżenie mówi: ** NIE EDYTUJ TEGO PLIKU. Jeśli wprowadzisz zmiany w tym pliku podczas działania dowolnej aplikacji związanej z VirtualBox, zmiany zostaną zastąpione później, bez skutku. Użyj VBoxManage lub GUI VirtualBox Managera, aby wprowadzić zmiany. **
craq

11

Po marnowaniu całego dnia na ten problem (używając Virtualbox 5.0.12 na Arch Linux), w końcu udało mi się go rozwiązać tak, jak sugeruje odpowiedź Thomthoma. Dla tych, którzy nie są pewni co do dokładnej procedury, polecenie klonujące całą maszynę (w tym migawki) to:

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

Uzyskaj nazwę maszyny wirtualnej za pomocą

VBoxManage list vms

W razie potrzeby podaj ścieżkę i nazwę.

Na koniec sprawdź, czy wszystko jest w porządku i usuń oryginał.

To wszystko naprawdę. Nie musisz zawracać sobie głowy plikami XML lub edytorem szesnastkowym. Nie trzeba też używać GUI.

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


To była jedyna odpowiedź, która zadziałała dla mnie. Powinien być wyżej.
Max N

2
VM_to_clonejest UUID lub nazwą maszyny wirtualnej. Za pomocą podanego polecenia (przy użyciu identyfikatora UUID) utworzono katalog w /new/path/_<UUID>_ Clone, a pliki zawierające również wykorzystano _<UUID>_ Clonejako nazwę. Aby jawnie mieć ładniejszą nazwę, użyj --name "Your preferred name here"flagi.
Rob W

... i aby usunąć oryginalną maszynę wirtualną za pomocą interfejsu CLI VBoxManage unregistervm UUID(UUID maszyny wirtualnej, którą uzyskałeś VBoxManage list vms, nie używaj nazwy maszyny wirtualnej, ponieważ jeśli użyjesz --namedo zachowania oryginalnej nazwy, masz wiele maszyn wirtualnych o tej samej nazwie)
Rob W

Ostrzeżenie: klon nie tworzy idealnej kopii i może powodować konieczność aktualizacji licencji dla zainstalowanego oprogramowania w miarę zmiany identyfikatorów komputera / dysku. Wystąpiło to podczas przenoszenia starej kopii Quicken na maszynie wirtualnej na nowy dysk.
MZB

Wygląda na to, że teraz jest dedykowane polecenie: virtualbox.org/manual/ch08.html#vboxmanage-movevm
Michael P

4

Aby zrobić to samo jak w Lucas Pottersky odpowiedź ale poprzez linię poleceń (Windows zastąpić vboxmanagez VBoxManage.exe):

  1. Wyświetl wszystkie maszyny wirtualne:

    vboxmanage list vms
    

    lub tylko działa:

    vboxmanage list runningvms
    

    który dla każdej maszyny wyświetla nazwę i identyfikator UUID.

    Wykonaj następujące kroki dla każdej maszyny, którą chcesz przenieść.

  2. Z wdziękiem wyłącz go:

    vboxmanage controlvm UUID acpipowerbutton
    
  3. Wyrejestruj:

    vboxmanage unregistervm UUID
    
  4. Przenieś folder maszyny wirtualnej do nowej lokalizacji.

  5. Zarejestruj go ponownie, podając ścieżkę do .vboxpliku:

    vboxmanage registervm /path/to/machine.vbox
    

2

Działa to również dla mnie z VirtualBox w wersji MacOS (wydanie 4.1.12). Czekałem 5-10 sekund na zakończenie VirtualBox przed ponownym uruchomieniem. Zajrzałem do Monitora aktywności, aby upewnić się, że VBoxSVC poprawnie zakończył pracę.

Jeśli tego nie zrobisz, pojawi się błąd podobny do następującego (kopiuję i wklejam komunikat o błędzie innej osoby pochodzący z systemu Windows). Jeśli pojawi się ten błąd, to po prostu dlatego, że nie opuściłeś VirtualBox lub nie czekałeś wystarczająco długo na zamknięcie 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

W OS X z VirtualBox v4.3.14 wszystko, co musiałem zrobić, to dwukrotnie kliknąć .vboxplik z nowej lokalizacji, a on otworzył VirtualBox i dodał go do listy dostępnych maszyn wirtualnych.


Nie dodawaj odpowiedzi „dziękuję”. Zamiast tego głosuj na odpowiedzi, które uważasz za pomocne.
Scott,

Moja odpowiedź nie jest „dziękuję”. Zredagowałem sformułowanie, aby było to bardziej oczywiste. Dzięki.
Tyson Phalp

2

Istnieje domyślna lokalizacja pamięci w ustawieniach w VirtualBox: http://mattvelic.com/default-vm-location/

Teraz nie żyje. Maszyna Wayback ma zawartość:

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

... sprawdź Preferencje w menu Plik. Ujrzeć! Pierwszy element na karcie Ogólne to Domyślny folder maszyny. http://web.archive.org/web/20131116130725im_/http://54.225.211.105/wp-content/uploads/2012/11/VB_Preferences.png Zedytowałem lokalizację, aby wskazać mój dysk, i szybko przerobiłem mój VM. Tym razem VirtualBox utworzył zarówno pliki maszynowe, jak i VDI we właściwej lokalizacji. Prawdziwa lekcja tutaj jest taka, że ​​czasami rozwiązanie nie musi być techniczne. Myślę, że jako specjaliści IT mamy tendencję do myślenia, że ​​odpowiedź na problem będzie skomplikowana. Miej oczy otwarte na oczywiste rozwiązania!


Ten link jest teraz martwy. Staraj się nie publikować linków jako odpowiedzi. Kiedy umierają, SU zostaje z cruft do posprzątania.
mrtsherman

zaktualizowane o zawartość z archive.org
Rebecca

1

Nie sądzę, żeby to było możliwe.

Możesz przenieść VDI do nowej lokalizacji, ale nie sądzę, że możesz uniknąć modyfikacji XML. Alternatywnie (ale tak naprawdę to samo, co edycja XML), czy stworzyłbyś nową maszynę wirtualną z graficznym interfejsem użytkownika i wybrałby przeniesiony obraz jako dysk odpowiadający twoim potrzebom?


1
Spojrzałem na xml i jest to naprawdę bardzo proste. Tworzenie nowego komputera nie jest dobre, ponieważ chciałbym zachować moje ustawienia (nie pamiętam, co zmieniłem, może być zupełnie nieważne lub nie).
maaartinus,

1

Wypróbowałem oryginalną metodę (usuń VDI, dołącz nową kopię), dostałem wiadomość, że stara nadal istnieje i nie mogłem dołączyć nowej kopii nawet po ponownym uruchomieniu systemu operacyjnego (w Mac OS X El Capitan).

Poprawka była w menu / File / Virtual Media Manager, usuń istniejący VDI. Działa to nawet, jeśli są migawki; po prostu usuń wszystkie VDI migawki w odwrotnej kolejności. Nie trzeba zamykać i ponownie otwierać VirtualBox.


0

Nigdy nie korzystałem z virtualboksa w Windowsie, ale na Ubuntu przenosisz VDI, aw GUI virtualboksa klikniesz maszynę wirtualną prawym przyciskiem myszy i używasz menu Konfiguracja -> pamięć masowa, w której możesz zmienić lokalizację VDI na miejsce, w którym przeniesiono plik. Jeśli chodzi o definicję innych plików maszyn, przenosisz je, a w GUI przechodzisz do Preferencji i zmieniasz domyślny katalog maszyn na katalog, który przenosiłeś.


0

Używam tej metody:

  1. Z GUI VirtualBox wybierz maszynę wirtualną i usuń podłączony dysk twardy
  2. Skopiuj plik (np. Vdi) do nowej lokalizacji
  3. Wygeneruj nowy identyfikator UUID dla .vdi w nowej lokalizacji za pomocą polecenia vboxmanage internalcommands sethduuid „moja ścieżka do myhdd.vdi” 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC

    (W poprzednim przykładzie użyj własnego identyfikatora UUID lub nie dodawaj go wcale: polecenie wygeneruje je automatycznie. Ponadto, jeśli pominiesz ten krok, dodając plik .vdi z nowej lokalizacji, pojawi się błąd, że identyfikator UUID już istnieje ).

  4. Teraz wróć do GUI VirtualBox, wybierz swoją maszynę wirtualną i w Setttings / Storage dołącz HD (plik .vdi) z nowej lokalizacji.

i zrobione.


-1

W Oracle VM VirtualBox (testowany z wersją 6.0.4), po prostu zamknij maszynę wirtualną -> kliknij prawym przyciskiem myszy maszynę wirtualną w programie VirtualBox Manager -> kliknij „Przenieś ...” -> wybierz nowy katalog. To jest to!


@Moreaki: Nawiasem mówiąc, „czytelność” (i „czytelność”) są pisane bez „D”.
Scott
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.