VirtualBox Nie można zarejestrować dysku twardego już istnieje

151

Utworzyłem plik dysku wirtualnego VM_1_Ubuntu.vdi . Następnie przeniosłem go do innego folderu. Próbowałem zaktualizować ustawienia maszyny wirtualnej (kliknij prawym przyciskiem myszy maszynę wirtualną -> ustawienia -> Pamięć masowa -> zakładka Kontroler SATA, ścieżka VM_1_Ubuntu.vdi ). Chciałem wyznaczyć nową ścieżkę.

Mówi się, że nie można zarejestrować dysku twardego już istnieje

Yan Khonski
źródło

Odpowiedzi:

220

Znalazłem rozwiązanie

Plik -> Virtual Media Manager -> Usunąłem istniejące obrazy (uwaga, usunąłem je tylko z rejestru).

Wykonałem te kroki.

http://www.webdesignblog.asia/software/virtualbox-moving-vdi-file-re-linking-guest/#sthash.1QOHeiw5.dpbs

Potem mogłem zaktualizować ścieżkę w ustawieniach VM.

Yan Khonski
źródło
2
Jeśli dysk, na którym był przechowywany dysk, nie jest dostępny, najpierw zwolnij (Ctrl + L) dysk z maszyny wirtualnej i usuń (Ctrl + D). W przeciwnym razie przed zwolnieniem dysku nie będzie można go usunąć. Następnie postępuj zgodnie z instrukcjami w powyższym łączu lub otwórz „Ustawienia” maszyny wirtualnej, przejdź do „Pamięć”, kliknij „Dodaj załącznik”, wybierz „Dodaj dysk twardy” i „Wybierz istniejący dysk”, a następnie wybierz plik vdi i są skończone.
Syed Nasir Abbas
1
musisz usunąć wszystkie migawki, aby przycisk usuwania nie był wyszarzony.
Rishi
150

Istnieje możliwość zmiany UUID w pliku VDI za pomocą polecenia:

 VBoxManage internalcommands sethduuid <file.vdi>

Wygląda na to, że to polecenie przypisuje nowy, „losowy” identyfikator UUID do pliku. Nie ma jednak zbyt wielu dokumentów na ten temat.

Palownik
źródło
2
Idealny dla moich potrzeb (zmiana rozmiaru wirtualnego dysku twardego nie działała, bez przenoszenia go).
shiri,
3
VBoxManage to exe, które dla mnie znajdowało się w "C: \ Program Files \ Oracle \ VirtualBox", więc po prostu uruchom go z okna cmd.
Giles
1
Jest to idealne rozwiązanie, gdy masz podstawowy obraz systemu operacyjnego i chcesz sobie radzić, aby zainstalować wiele aplikacji na kopiach bazy bez konieczności zmiany samej bazy.
Jersey_Guy,
Pomógł mi
zmienić
To rozwiązanie rozwiązało również sytuację, w której skopiowałem maszynę wirtualną do innej lokalizacji, usunąłem oryginał z VirtualBox i próbowałem skompaktować dysk. Polecenie: $ VBoxManage modifymedium Windows \ 7 \ Professional.vdi --compact Błąd: VBoxManage: błąd: nie można zarejestrować dysku twardego '/ Users / c / VirtualBox VMs / Windows 7 Professional / Windows 7 Professional.vdi' {a510ee0d- 2cef-47db-b25f-acae9e341d45}, ponieważ dysk twardy '/ Volumes / ramdisk / Windows 7 Professional / Windows 7 Professional.vdi' z UUID {a510ee0d-2cef-47db-b25f-acae9e341d45} już istnieje
EmpathicSage
27
  1. Wybierz opcję Plik z Oracle VM VirtualBox Manager
  2. Virtual Media Manager
  3. Usuń plik (zaznaczony na żółto) z zakładki Dyski twarde.
Syed Nasir Abbas
źródło
7

Jeśli nie ma możliwości usunięcia lub zmiany ścieżki do pliku na dysku twardym za pomocą programu Virtual Media Manager (w moim przypadku), to:

  1. Otwórz pliki.vbox” i „ .vbox-prev” (jeśli istnieją) w dowolnym edytorze tekstu.
  2. Edytuj atrybut „location” elementu „HardDisk” do swojej ścieżki, na przykład: „d: /VM/VirtualBox/Win10/Win10.vmdk” ( zrzut ekranu ).
Oleg Tatarczuk
źródło
4

W niektórych przypadkach najpierw musisz zwolnić, a następnie usunąć i ponownie dodać za pomocą programu Virtual Media Manager

Stefan Georgiev
źródło
3

1 - Otwórz pliki „.vbox” i „.vbox-prev” (jeśli istnieją) w dowolnym edytorze tekstu i zastąp pierwszy znak identyfikatora użytkownika dysku twardego (zwróć uwagę, aby cofnąć tę zmianę w kroku 6)

Przykład: nano /home/virtualbox/WindowsServer/WindowsServer.vbox

Zmiana:

<HardDisks>
        <HardDisk uuid="{3ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

Do:

<HardDisks>
        <HardDisk uuid="{2ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

2 - Uruchom ponownie komputer

4 - Zatrzymaj maszynę wirtualną (jeśli została uruchomiona)

5 - Na terminalu:

su vbox
cd /home/virtualbox/WindowsServer/
VBoxManage modifyhd WindowsServer.vdi --resize SIZE
exit
exit

zmień ROZMIAR na liczbę w megabajtach, na przykład 80000 (80 GB)

6 - Otwórz ponownie pliki „.vbox” i „.vbox-prev” (jeśli istnieją) w dowolnym edytorze tekstu i zamień pierwszy znak identyfikatora uuid dysku twardego na oryginalną wartość

Przykład: nano /home/virtualbox/WindowsServer/WindowsServer.vbox

Zmiana:

<HardDisks>
        <HardDisk uuid="{2ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

Do:

<HardDisks>
        <HardDisk uuid="{3ebaa9b6-8318-4b81-b853-8f30dd278bdc}" location="/home/virtualbox/WindowsServer/WindowsServer.vdi" format="VDI" type="Normal"/>

7 - Uruchom ponownie maszynę

Lucas Catani
źródło
3

Naprawdę doceniam sugestie tutaj. Komentarze Impalera i Olega pomogły mi poskładać moje rozwiązanie.

Użyj VBoxManage CLI. Istnieje polecenie modifymedium z --setlocationopcją.

Proponuję otworzyć GUI VBox (na VM VirtualBox Manager 6.0)
- wybierz "Virtual Media Manager" (użyłem menu Plik)
- wybierz przycisk "Informacje" dla dysku, który powoduje ten błąd
- skopiuj UUID
Uwaga: Usunąłem kontroler z ustawienia „Pamięć” przed następnym krokiem.
- otwórz wiersz poleceń i przejdź do lokalizacji pliku .vdi
Dobrze jest wpisać VBoxMange, aby zobaczyć listę opcji, ale to jest polecenie do uruchomienia:

VBoxManage modifymedium[tu wstaw typ nośnika] [UUID] --setlocation[pełna ścieżka do pliku .vdi]

Na koniec ponownie podłącz kontroler do dowolnej maszyny wirtualnej - najlepiej tej, którą chcesz naprawić.

C Marshall
źródło
0

Rozwiązanie, które u mnie zadziałało, jest następujące:

  1. Upewnij się, że VirtualBox Manager nie jest uruchomiony.
  2. Utwórz kopię zapasową plików ~\.VirtualBox\VirtualBox.xmli ~\.VirtualBox\VirtualBox.xml-prev.
  3. Edytuj te pliki, aby zmodyfikować <HardDisks>...</HardDisks>sekcję i usunąć zduplikowany wpis <HardDisk />.
  4. Teraz uruchom VirtualBox Manager.

Przykład:

  <HardDisks>
    <HardDisk uuid="{38f266bd-0959-4caf-a0de-27ac9d52e3663}" location="~/VirtualBox VMs/VM1/box-disk001.vmdk" format="VMDK" type="Normal"/>
    <HardDisk uuid="{a6708d79-7393-4d96-89da-2539f75c5465e}" location="~/VirtualBox VMs/VM2/box-disk001.vmdk" format="VMDK" type="Normal"/>
    <HardDisk uuid="{bdce5d4e-9a1c-4f57-acfd-e2acfc8920552}" location="~/VirtualBox VMs/VM2/box-disk001.vmdk" format="VMDK" type="Normal"/>
  </HardDisks>

Zauważ w powyższym fragmencie, że ostatnie dwa wpisy odnoszą się do tej samej maszyny wirtualnej, ale mają różne identyfikatory UUID. Jeden z nich jest nieważny i powinien zostać usunięty. Który z nich jest nieważny, można sprawdzić przez trafienie i próbę - najpierw usuń drugi wpis i spróbuj; jeśli to nie zadziała, usuń trzeci wpis.

Sanjeev Sachdev
źródło
0

Po wielu dniach zmagań w końcu znalazłem rozwiązanie, które działa idealnie.

Mac OS otwórz folder ~ / Library (w katalogu domowym) i usuń folder VirtulBox. Spowoduje to usunięcie wszystkich konfiguracji i możesz ponownie uruchomić wirtualne pudełko!

Inni szukają folderu .virtualbox w twoim katalogu domowym. Usuń go i otwórz VirtualBox powinien rozwiązać Twój problem.

Twoje zdrowie!!

Lasithds
źródło