Próbuję wymyślić, jak zmienić rozmiar pliku VDI. Jestem nowy w VirtualBox i muszę się wiele nauczyć. Ale myślę, że zrozumiałem podstawy. Zainstalowałem już system Windows 7 jako mojego pierwszego gościa. Hostem jest także system Windows 7. Nie byłem pewien, ile miejsca na dysku należy przeznaczyć, więc wybrałem rozmiar VDI 40 GB i stały rozmiar w celu zwiększenia wydajności. Ale teraz zmieniłem zdanie i chcę dodać kolejne 10 GB. Klikałem program i czytałem zawartość menu Pomoc, ale to nie pomaga. Wyjaśnia kontrolery dysków, SAS, SATA, SCSI, yada, yada, ale nie to, czego szukam.
Szukałem odpowiedzi w Internecie, forum VirtualBox mówi, że powinieneś używać Gparted, jeśli chcesz najłatwiejszej metody (niektóre mody opublikowały lepką). Niektórzy użytkownicy dyskutują za pomocą dd
polecenia. Ale to wszystko Linux. Ponadto w SU jest wiele pytań dotyczących zwiększania i zmniejszania rozmiarów plików VDI, ale wszystkie dotyczą używania Linuksa jako hosta, a Windows jako gościa.
Znalazłem ten fajny post na blogu, jak to zrobić za pomocą modifyhd
komendy VBoxManage. Ten facet robi to również w systemie Linux jako system operacyjny hosta. Chciał nawet tego samego rozmiaru (50 GB) dla swojego pliku VDI, jak ja dla mojego, co za zbieg okoliczności. Pomyślałem więc, że i tak spróbuję, albo to zrobię, albo ją zepsuję. Co może pójść nie tak? ... eh? To brzydka niespodzianka.
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" --resize 51200
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize hard disk operation for this format is not impleme
nted yet!
C:\Program Files\Oracle\VirtualBox>
Powiedz co teraz?! ... nie można zmienić rozmiaru wirtualnych dysków twardych w formacie VDI? Nie mówisz Nie obsługuje twojego formatu? A co powiesz na to ...
Czy naprawdę nie ma prostego sposobu na zmianę rozmiaru pliku VDI, najlepiej za pomocą kilku kliknięć w VirtualBox? Coś w toku?
źródło
modifyhd
jest teraz znany jako,modifymedium
ale pozostaje kompatybilny wstecz - patrz virtualbox.org/manual/ch08.html#vboxmanage-modifyvdiOdpowiedzi:
Podsumowanie:
VBoxManage.exe modifyhd --resize
może zwiększyć (ale nie zmniejszyć) logiczny rozmiar obrazu dysku (rozmiar widziany przez system gościa).VBoxManage.exe modifyhd inputfile.vdi --compact
może zmniejszyć rozmiar obrazu dysku fizycznego (rozmiar pliku obrazu na dysku widzianego przez system operacyjny hosta). Nie zmienia to jednak rozmiaru dysku logicznego. Zauważ, że działa to tylko wtedy, gdy wolne miejsce zostało najpierw zerowane w systemie-gościu.modifyhd
działa tylko z wariantem formatu dynamicznego („obraz dynamicznie przydzielany”).modifyhd
działa tylko z formatami obrazów VDI i VHD.Aby uzyskać szczegółowe informacje, patrz sekcja 8.23. VBoxManage modyfikuj w instrukcji.
Powodem, dla którego zmniejszanie rozmiaru dysku logicznego VDI nie zostało jeszcze zaimplementowane, jest zapobieganie uszkodzeniu danych, które mogłoby się zdarzyć, a w wyniku tego powstałyby niedziałalne maszyny wirtualne. Dlatego gdy
--resize
używana jest ta opcja, nowy rozmiar dysku musi być większy niż bieżący. Nie wolno być mniejszym lub równym bieżącemu rozmiarowi. Innymi słowy, rozmiar dysku 40 GB można zmienić tylko na 41 GB lub więcej, nie można zmienić rozmiaru na 40 GB (to po prostu głupie) lub 39 GB lub mniej.Stare wersje VirtualBox tworzyły pliki VDI jako „stały” format formatu. Nowe ustawienie domyślne ma teraz tworzyć warianty formatu „dynamicznego” podczas tworzenia nowych plików VDI (obraz dysku wirtualnego). (Zgaduję, że tak jest od czasu wprowadzenia wariantu formatu dynamicznego, niezależnie od wersji, która została wprowadzona.)
Zatem komunikat o błędzie „operacja dla tego formatu nie jest jeszcze zaimplementowana” oznacza to, że plik VDI używa wariantu formatu „ustalonego”. Aby obejść ten problem, będziesz musiał sklonować plik VDI za pomocą
clonehd
polecenia. Aby wyświetlić wariant formatu pliku VDI, możesz użyćshowhdinfo
polecenia.Przykład roboczy
Pokaż informacje VDI o bieżącym dysku.
Komenda wejściowa:
vboxmanage.exe showhdinfo path\inputfile.vdi
Widzisz, gdzie jest napisane „naprawiono domyślne”? Właśnie dlatego wyrzuca powyższy błąd przy próbie zmiany jego rozmiaru.
Sklonuj stary plik VDI do nowego pliku VDI.
Komenda wejściowa:
vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi
Voilà! Stary plik został teraz sklonowany do nowego pliku. Ponieważ domyślnym ustawieniem w nowych wersjach VirtualBox jest stosowanie wariantu formatu „dynamicznego”, nie trzeba tego jawnie definiować. Chociaż, jeśli pracujesz ze starszą wersją VirtualBox, możesz chcieć ustawić opcję na „dynamiczną” (jeśli w ogóle dostępna), aby zapewnić lepszą kompatybilność i / lub elastyczność z przyszłymi wersjami VirtualBox.
Pokaż informacje VDI o sklonowanym dysku.
Komenda wejściowa:
vboxmanage.exe showhdinfo path\inputfile_clone.vdi
Widzisz, jak teraz mówi „dynamiczne domyślne”? Jak miło!
(Na marginesie! Podano tutaj 7806 MB jako fizyczny rozmiar, ponieważ użyłem
--compact
opcji oryginalnego pliku VDI, próbując wymusić konwersję do wariantu formatu dynamicznego. Po prostu coś, co czytałem na forum VirtualBox, podobno pracowałbym ze starszymi wersjami, więc pomyślałem, że równie dobrze mogę spróbować. Nie zadziałało).Zmiana rozmiaru sklonowanego dysku.
Komenda wejściowa:
vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200
Powodzenie! Żadnych bzdur w formacie, nie więcej. Pamiętaj tylko, aby zmienić rozmiar nowego, sklonowanego dysku, a nie oryginalnego. Pamiętaj, że rozmiar jest wyrażony w MB. Wierzę, że możesz użyć np.
51200
Jak również50G
(lub „GB”). Istnieje również opcja, za pomocą--resizebyte
której można wyrazić rozmiar w bajtach.Pokaż informacje VDI o sklonowanym dysku o zmienionym rozmiarze.
Komenda wejściowa:
vboxmanage.exe showhdinfo path\inputfile_clone.vdi
Otóż to! Odtąd musisz dodać ten sklonowany dysk jako nowy VDI dla maszyny wirtualnej. Robisz to w VirtualBox. Nie wejdę w to. Jeśli do tej pory potrafiłeś to zrozumieć i zrozumieć, to prawdopodobnie nie potrzebujesz dalszych wskazówek. Możesz usunąć stary „naprawiony” plik lub pozostawić go jako kopię zapasową. Upewnij się, że przetestowałeś nowy plik VDI przed usunięciem oryginalnego pliku źródłowego.
Uwaga! Nie zobaczysz od razu nowego rozmiaru sklonowanego dysku. Musisz uruchomić maszynę wirtualną za jej pomocą, a następnie użyć narzędzia do zarządzania partycjami, aby rozwinąć partycję, aby wypełnić dysk wirtualny (lub utworzyć więcej partycji). W systemie Windows po prostu uruchom,
diskmgmt.msc
a będziesz mógł tam rozwinąć partycję.Zrzuty ekranu
Odniesienie
źródło
modifymedium
/modifyhd
na samym pliku migawki.Oto dość prosty proces, który działał dla mnie, aby zmienić rozmiar dysku VirtualBox (wer. 4.3.16) na dysk dynamiczny 60 GB na moim komputerze Mac (OS X 10.9.4) z systemem Linux (Ubuntu 14.04) działającym jako system gościa:
W terminalu na komputerze Mac włóż dysk CD do katalogu z plikiem VDI i wpisz następujące polecenie:
W sekcji magazynu aplikacji VirtualBox dodaj plik mydiskClone.vdi jako drugi dysk HD, a następnie uruchom maszynę wirtualną normalnie.
W powłoce w systemie-gościu wpisz:
Uruchom ponownie gościa. Kiedy wróci, ponownie przejdź do powłoki i wpisz:
Zamknij system operacyjny gościa.
W sekcji Magazyn aplikacji VirtualBox ponownie ustaw mydiskClone.vdi na dysk rozruchowy. Następnie uruchom system operacyjny gościa i sprawdź nowy rozmiar dysku za pomocą właściwości „Komputer” w przeglądarce plików.
źródło
Klonowanie jest w rzeczywistości lepszym rozwiązaniem i istnieje łatwiejszy sposób, aby to zrobić.
Z menu Plik wybierz Virtual Media Manager, a następnie kliknij Kopiuj. Źródłem będzie oryginalny twardy dysk vdi o stałym rozmiarze, a miejscem docelowym będzie coś nowego do wyboru (zawiera opcję nowego).
źródło
OK, więc sprawiłem, że stało się to bez klonowania .
Miałem plik VDI 100 GB (stały format) z Ubuntu. Pracować w porządku. Chciałem zwolnić trochę miejsca na hoście, zmniejszając maszynę wirtualną.
Kroki:
Usunięte niechciane pliki. 45 GB za darmo. Potrzebuję tylko 30 GB, aby zostać uwolnionym.
Mam tylko jedną partycję, więc nie mogę nic zrobić z poziomu wewnętrznego systemu Ubuntu. Zainstalowano Ubuntu Live na maszynie wirtualnej i uruchomiono z niego.
Służy
gparted
do zmniejszenia partycji do 70 GB. Utworzono nową partycję w nieużywanym miejscu wext4
.Wolne miejsce na nowej partycji (30 GB).
Postępowano zgodnie z tym przewodnikiem: zmniejsz wirtualny dysk twardy w systemie Ubuntu jako system operacyjny gościa i hosta, używając zerofree
Moja nowa partycja to
/dev/sda3
.Kompaktuj VDI
VBoxManage modyfikuj „ubuntu.vdi” kompaktowy
Minęło trochę czasu, ale zadziałało!
źródło
--compact
działa tylko dla obrazów dynamicznie przydzielanych, a nie dla obrazów o stałym rozmiarze.Trochę późno na przyjęciu tutaj, ale dodam 2 centy. Najpierw powiem, że jest to skomplikowany proces, który doprowadzi najbardziej przypadkowych użytkowników do szaleństwa. Dlaczego Oracle nie umieściło tego w graficznym interfejsie VBox, jest tajemnicą.
Krok 1: Użyj wiersza polecenia systemu Windows (VBoxmanage), aby zwiększyć rozmiar dysku. Wskazówka polega na tym, aby używać identyfikatora napędu vdi zamiast bez końca próbować wprowadzić lokalizację pliku i otrzymywać komunikaty o błędach.
Krok 2: Następnie musisz rozwinąć partycję podstawową, aby skorzystać z nowej przestrzeni. Pobierz gparted iso i utwórz nową maszynę wirtualną w VBox, używając jej jako źródła IDE. Następnie użyj istniejącego napędu VDI jako dysku sata. Nie twórz wirtualnego dysku dla tego komputera. Uruchom nową maszynę, a uruchomione zostanie GUI w parterze. Może to potrwać kilka ponownych rozruchów, aby rozwiązać problem.
Po uruchomieniu gparted zobaczysz partycje dysku vdi, których rozmiar chcesz zmienić. WAŻNE: Będziesz musiał usunąć partycję rozszerzoną i zamienić przestrzeń plików, aby móc zwiększyć rozmiar partycji podstawowej, więc nie przydzielaj całej nowej przestrzeni dla PP. Gdy to zrobisz, będziesz musiał wyznaczyć pozostałą przestrzeń dla nowej partycji rozszerzonej i utworzyć w niej nową przestrzeń plików wymiany. Uznałem, że jest to o wiele łatwiejsze niż błąkanie się po linii poleceń.
Nie jest to bułka z masłem, ale jest wykonalne ... Zajęło mi około pół dnia badania sieci, aby to rozgryźć. Uruchamianie win8.1 / Ubuntu na VBox
Willie
źródło
Oto jak zmieniłem rozmiar / powiększyłem / rozszerzyłem stały obraz VDI (mój proces zmniejszenia ich jest w innej odpowiedzi):
dd if=/dev/sda of=/dev/sdb status=progress bs=128M
i poczekaj na jego zakończenie. Spowoduje to skopiowanie oryginalnego dysku na nowy dysk bajt po bajcie, w tym MBR itp. (Uwaga: Wykonanie może zająć trochę czasu, w zależności od rozmiaru oryginalnego dysku, prędkości dysku na hoście itp.). (Uwaga: jeśli na maszynie wirtualnej gościa jest przydzielone> 1 GB pamięci RAM, możesz zmienić parametr „bs” na „bs = 256M”, co może nieco przyspieszyć kopiowanie).Chociaż powyższe działało dla mnie świetnie wiele razy, wydaje się, że potrzeba kilku dodatkowych kroków, jeśli używa się LVM. (UWAGA: Jeśli używana jest LVM, możesz po prostu dodać nowy dysk o pożądanym rozmiarze, a następnie dodać ten dysk do grupy woluminów.) W CentOS 6.6, gdzie używana jest LVM, musiałem również zwiększyć przestrzeń w LVM. Więc po uruchomieniu nowego dysku utworzonego powyżej, zrobiłem coś w tym kierunku (różne części tego będą się różnić w zależności od nazw twojej instalacji):
Uzyskaj informacje o konfiguracji LVM:
Rozszerz objętość fizyczną (PV) (grupa objętości (VG) automatycznie odzwierciedli ten sam wzrost):
Rozszerz wolumin logiczny (LV):
Rozszerz system plików:
Przed:
Komenda:
Po:
źródło
Oto jak zmieniłem rozmiar / zmniejszyłem / zmniejszyłem stały obraz VDI (mój proces jego rozszerzenia znajduje się w innej odpowiedzi w tym samym temacie):
Najpierw krótkie tło na temat tego, dlaczego tego potrzebowałem (ponieważ istnieje wiele scenariuszy zmniejszania VDI, z których niektóre mogą być niewykonalne przy takim podejściu): Wiele lat temu stworzyłem stały VDI dla gościa Windows Server i zmieniłem go na 600 GB. Nie pamiętam, dlaczego wybrałem ten rozmiar, ale na dzień dzisiejszy zużyłem tylko 100 GB u tego gościa i chcę odzyskać większość pozostałej przestrzeni. Tak więc w moim przypadku chcę zachować wszystkie dane gościa i chcę po prostu zwolnić nieużywane miejsce u gościa.
(Poniższe kroki pochodzą głównie z mojej pamięci o zrobieniu tego w ciągu ostatnich 2 godzin, więc przepraszam, jeśli coś przegapię).
Uruchom maszynę wirtualną gościa (powinna zostać uruchomiona w środowisku na żywo z partycjami). Z wnętrza środowiska podzielonego na części:
Zakładając, że „oryginalny” dysk to / dev / sda, a „nowy” to / dev / sdb (jeśli nie, odpowiednio dostosuj następujące polecenie), to skopiujemy każdą partycję, pojedynczo. Dla każdej partycji zanotowanej w powyższym kroku wprowadź następujące polecenie w terminalu:
i poczekaj na zakończenie. Spowoduje to skopiowanie partycji 1 z oryginalnego dysku na partycję 1 na nowym dysku bajt po bajcie.
Powtórz polecenie dla każdej pozostałej partycji:
Uwagi:
Ostatnim krokiem, który musiałem zrobić dla gościa Windows, było ustawienie / naprawa MBR i / lub BCD. (Nie wiem, czy coś takiego jest wymagane dla gościa Linuksa, ponieważ jeszcze tego nie zrobiłem). Jeśli po prostu uruchomiłem z nowego VDI, dostałem ekran błędu Windows Boot Mgr z tą zawartością (niestety nie zrobiłem tego Zrób zrzut ekranu, zanim naprawiłem problem):
Uzyskaj certyfikat ISO instalacji lub naprawy systemu Windows (najlepiej taki, który pasuje do wersji systemu operacyjnego) i skonfiguruj maszynę wirtualną gościa, aby uruchamiała się z niego (ponownie Ustawienia pamięci masowej).
Uruchom maszynę wirtualną gościa i wybierz opcję rozruchu z dysku CD / DVD.
Gdy znajdziesz się w wierszu polecenia, uruchom następujące polecenia (dzięki http://loverofcode.blogspot.com/2013/11/fixed-0xc000000e-boot-error.html za informacje!):
To ostatnie polecenie powinno zlokalizować instalację systemu Windows i monit o dodanie jej do BCD. Odpowiedz „Y”.
źródło
Podaję odpowiedź rozszerzoną na dowolny hostowany system operacyjny działający na dowolnym systemie operacyjnym hosta. Ta odpowiedź zakłada, że chcesz zwiększyć rozmiar (aby rozszerzyć).
Uwaga: Jak wskazał djule5 (patrz komentarz tuż po pytaniu),
modifyhd
jest teraz znany jakomodifymedium
(ale pozostaje kompatybilny wstecz). Tutaj używammodifymedium
.1. Zamknij działającą maszynę wirtualną
Tak, ta odpowiedź dotyczy pliku VDI już używanego przez maszynę wirtualną VirtualBox.
2. Otwórz terminal na hoście, aby zmienić rozmiar obrazu dysku
Wiersz polecenia VBoxManage nie chce zmieniać rozmiaru obrazu dysku przy użyciu nazwy pliku VDI.
Dlatego określ identyfikator UUID obrazu dysku.
Zwiększ rozmiar obrazu dysku.
3. Użyj narzędzia do partycjonowania, aby rozszerzyć partycję logiczną
Uruchom hostowaną maszynę wirtualną. Następnie użyj narzędzia do partycjonowania .
Niektóre narzędzia dla hostowanego GNU / Linux:
Jeśli hostowany system korzysta z systemu Windows:
4. Sprawdź wolne miejsce na partycji
Rozmiar pliku VDI (w systemie hosta) mógł się nie zmienić, ponieważ maszyna wirtualna nie wykorzystała jeszcze dodatkowej ilości miejsca. Baw się dobrze.
źródło
To działałoby dla mnie i powinno określać całkowitą pojemność dysku twardego. Nie przestrzeń, którą musimy zwiększyć ...
źródło