Dlaczego nie mogę zmienić rozmiaru dynamicznego VDI za pomocą polecenia edithd?

29

Widzę tutaj Jak zwiększyć rozmiar dysku twardego maszyny wirtualnej .

Powinien działać z poleceniem podobnym do

VBoxManage modifyhd xp.vdi --resize 2000

Gdy VDI ma ustalony rozmiar, możesz otrzymać ten błąd:

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Dyskusja i rozwiązanie tego jest tutaj .

Ale dostaję ten błąd, gdy mój VDI jest dynamiczny

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)

Dlaczego?

Społeczność
źródło
ten sam problem tutaj z Ubuntu 16.04LTS i Dynamic VDI. bardzo dziwne
Luckyrings,

Odpowiedzi:

26

Do korzystania VBoxManage modifyhdmamy następujące zastrzeżenia:

  • Dyski muszą być w formacie .VDI lub .VHD.
  • Dyski muszą mieć format dynamiczny, a nie stały (stały dysk można przekonwertować na dynamiczny, tworząc klon).
  • Rozmiar dysku wpłynie tylko na rozmiar logiczny , a nie fizyczny.
  • Zmniejszenie dysku do jego wielkości fizycznej lub mniejszej nie jest możliwe.
  • Aby zmniejszyć rozmiar fizyczny, musimy wypełnić nieużywane miejsce na dysku 0.
  • Windows VDI może wymagać defragmentacji przed zmniejszeniem jego fizycznego rozmiaru.

W powyższym przykładzie próbowano zmienić rozmiar dysku dynamicznego o fizycznym rozmiarze od 4693 MB do 2000 MB, co nie jest możliwe. Stąd błąd.

Takkat
źródło
1
Potknąłem się też tutaj. co za ból.
nicolas
2
Aby zmodyfikować dyski w ustalonym formacie, postępuj zgodnie z odpowiedzią @ ripper234
Sharun,
sprawdź moją odpowiedź, ma wszystkie potrzebne informacje i mogę zaświadczyć, że działa
Mauricio Gracia Gutierrez
Stworzyłem ten obraz ponad dwa lata temu, dawno już zapomniałem, że ma ustalony rozmiar i nie jest dynamiczny. Czytanie tego w twojej odpowiedzi przypomniało mi. Spędziłem ponad godzinę, próbując dowiedzieć się, dlaczego nie mogłem tego zrobić: (... Dzięki
Madivad
Dzięki, pomogłem. W przypadku systemu Linux nie zapomnij uruchomić pvresizepolecenia, aby wykorzystać to miejsce w
systemie
24

To obejście działało dla mnie:

  1. Wyłącz maszynę
  2. Utwórz nowy dysk za pomocą interfejsu administratora o żądanym rozmiarze
  3. Użyj clonemedium VBoxManage z --existingflagą

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    

Uwaga : teraz nowy dysk będzie miał nieprzydzielone miejsce i będziesz musiał użyć gparted, aby zwiększyć rozmiar do maksimum.

Nie jestem pewien, dlaczego faceci VirtualBox nie mogli użyć powyższego do wdrożenia tego zamiast rzucania VBOX_E_NOT_SUPPORTED... przynajmniej link do tego :)

ripper234
źródło
1
Jak mogę przydzielić nadmiar miejsca w systemie Windows?
Ken
4
@ Ken nie jest pewien, czy to rozgryzłeś; Start -> Uruchom -> diskmgmt.msc, kliknij prawym przyciskiem myszy C: (lub cokolwiek to jest dysk podstawowy) i wybierz rozszerzenie.
Trent,
2
to pomogło. Nie zrobiłem tego z GUID, ale z nazwą pliku napędu
Luckyrings
3
@ ripper234 Trzy kroki wymagają dogłębnego wyjaśnienia - dla ludzi takich jak ja, którzy nie są zbyt pewni, co robią. W 2) czy tworzymy nowy dysk stały czy co? .vdi .vdmk ?? Podaj właściwy przykład, może z grafiką. Również 3) Co robi clonemedium w przeciwieństwie do clonehd? Skąd pochodzą dwa przewodniki - w szczególności ten docelowy - już istnieje, mimo że klonujemy? Dzięki
mwarren,
Dziękuję Ci. Teraz zostałem skierowany tutaj jako użytkownik systemu Windows (mimo że jest to askUbuntu), więc dodam tutaj, że w wersji VBoxManage dla systemu Windows należy wprowadzić ścieżki do wirtualnych dysków twardych zamiast maszyny wirtualnej GUID.
Sean Burchett,
4

Oto cały proces, postaram się być jak najbardziej szczegółowy

  1. Upewnij się, że maszyna, którą zamierzasz zwiększyć, znajduje się w stanie „Wyłącz” (nie w „zapisanym” ani w innym stanie)

W moim przypadku jest to maszyna o rozmiarze 32 GB i nazywa ją MAŁĄ maszyną wirtualną

  1. Utwórz nową maszynę wirtualną o nowym pożądanym rozmiarze

W moim przypadku postanowiłem stworzyć nową maszynę wirtualną o pojemności 70 GB, przywracając zawartość małej maszyny w tej nowej maszynie wirtualnej i będę ją nazywać jako DUŻA maszyna wirtualna

  1. Uruchom polecenie VBoxManage list hddslub Otwórz Virtual Media Manager, aby uzyskać identyfikator GUID dla małej maszyny wirtualnej (początek), a także identyfikator GUID dla dużej maszyny wirtualnej (miejsce docelowe)

Za pomocą tych identyfikatorów GUID zbuduj następujące polecenie

Klonemedium VBoxManage SMALL_VM_GUID LARGE_VM_GUID - istniejący

W moim przypadku ORIGIN - SMALL VM to: 39143127-42b6-478a-afb2-5e58f14218b

W moim przypadku DESINATION - LARGE VM to: bb808b5b-b88c-49b2-a646-3414af906d84

Oczywiście twoje GUID będą inne niż moje

Upewnij się, że nie odwrócisz identyfikatorów GUID, w przeciwnym razie nowa maszyna zastąpi zawartość istniejącej maszyny !!!!

Po upewnieniu się, że nie pomieszałeś źródła z miejscem docelowym, uruchom polecenie:

$ VBoxManage clonemedium 39143127-42b6-478a-afb2-5e58f14218b2 bb808b5b-b88c-49b2-a646-3414af906d84 - istniejący

0% ... 10% ... 20% ... 30% ... 40% ... 50% ... 60% ... 70% ... 80% ... 90% ... 100%

Klonowane medium utworzone w formacie „VDI”. UUID: bb808b5b-b88c-49b2-a646-3414af906d84

  1. Uruchom nową DUŻĄ maszynę wirtualną utworzoną w kroku 2.

  2. Sprawdź w oknie narzędzia Zarządzanie komputerem, czy maszyna ma w rzeczywistości więcej nieużywanego / niesformatowanego miejsca

  3. Jeśli wolisz, możesz uruchomić „chkdsk” na dysku C, aby upewnić się, że wszystko jest gotowe (może to wymagać dwóch ponownych uruchomień na DUŻYM VM )

  4. Korzystając z gparted-live * .iso, „wstaw go” do nowej maszyny wirtualnej i uruchom ponownie

  5. Uruchom system w parterze

  6. Rozwiń swoją partycję i zapisz zmiany

  7. „Wysuń” gparted-live * .iso, aby ponownie uruchomić system Windows

  8. Sprawdź w oknie narzędzia Zarządzanie komputerem, czy maszyna ma teraz większy dysk C, aby rozwiązać problemy ze specyfikacją

Miałem zrzuty ekranu z tego procesu, ale postanowiłem ich nie uwzględniać, ponieważ dzięki temu moja odpowiedź na duże i przerażające będzie dla osób, które „spieszą się” z uzyskaniem wolnego miejsca na wirtualnej maszynie z systemem Windows

Mauricio Gracia Gutierrez
źródło
Dziękuję za przewodnik. W kroku 3, skąd masz identyfikatory GUID? Nie jestem pewien, co to jest Virtual Media Manager.
A.Wan
3
Nieważne, myślę, że dostałem to odVBoxManage list hdds
A.Wan
@ A.Wan To jest Virtual Media Manager - google.com.co/…
Mauricio Gracia Gutierrez