2014-02-13 22:54:55 +0000 2014-02-13 22:54:55 +0000
72
72

Jak zmienić stały rozmiar VDI za pomocą polecenia modifyhd w Windows?

Próbuję dowiedzieć się, jak zmienić rozmiar pliku VDI. Jestem nowy w VirtualBoxie i muszę się jeszcze wiele nauczyć. Ale myślę, że mam już podstawy. Mam już zainstalowany Windows 7 jako mój pierwszy gość. Hostem jest również Windows 7. Nie byłem pewien, ile miejsca na dysku przydzielić, więc poszedłem na VDI o wielkości 40 GB i stałym rozmiarze dla zwiększenia wydajności. Ale teraz zmieniłem zdanie i chcę dodać kolejne 10 GB. Klikam po programie i czytam zawartość menu Pomoc, ale to nie pomaga. Wyjaśniają kontrolery dysków, SAS, SATA, SCSI, yada, yada, ale nie to, czego szukam.

Przeszukałem światową sieć w poszukiwaniu odpowiedzi, forum VirtualBox mówi, że powinieneś użyć Gparted, jeśli chcesz najprostszej metody (jakiś mod opublikował sticky). Niektórzy użytkownicy dyskutują o użyciu komendy dd. Ale to wszystko są rzeczy związane z Linuksem. Ponadto, jest wiele pytań na SU, które dotyczą zwiększania i zmniejszania rozmiarów plików VDI, ale wszystkie dotyczą używania Linuksa jako hosta i Windowsa jako gościa.

Znalazłem ten fajny blog post o tym jak to zrobić za pomocą polecenia modifyhd w VBoxManage. Ten facet robi to również na Linuksie jako host OS. Chciał nawet mieć taki sam rozmiar (50 GB) dla swojego pliku VDI jak ja dla mojego, co za zbieg okoliczności. Pomyślałem więc, że spróbuję, albo się uda, albo się nie uda. Co może pójść nie tak?… eh? Cóż, oto brzydka niespodzianka, którą otrzymałem.

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ówicie? Nie wspierasz swojego własnego formatu? No i co z tego…

Czy naprawdę nie ma prostego sposobu na zmianę rozmiaru pliku VDI, najlepiej za pomocą kilku kliknięć wewnątrz VirtualBoxa? Coś w toku?

Odpowiedzi (9)

126
126
126
2014-02-15 22:56:20 +0000

Podsumowanie:

  • VBoxManage.exe modifyhd --resize może zwiększyć (ale nie zmniejszyć) logiczny rozmiar obrazu dysku (rozmiar widziany przez guest OS).
  • VBoxManage.exe modifyhd inputfile.vdi --compact może zmniejszyć fizyczny rozmiar obrazu dysku (rozmiar pliku obrazu na dysku widziany przez system operacyjny hosta). Nie zmienia to jednak rozmiaru dysku logicznego. Zauważ, że to działa tylko wtedy, gdy wolna przestrzeń została wyzerowana w systemie operacyjnym gościa.
  • modifyhd działa tylko z dynamicznym wariantem formatu (“dynamically allocated image”).
  • modifyhd działa tylko z formatami obrazów VDI i VHD.
  • Jeśli używasz snapshotów, będziesz musiał sklonować najnowszy snapshot VDI z podfolderu “Snapshots”.

Szczegóły znajdziesz w rozdziale 8.23. VBoxManage modifyhd w instrukcji.


Powodem, dla którego zmniejszanie rozmiaru dysku logicznego VDI nie zostało jeszcze zaimplementowane, jest zapobieganie uszkodzeniom danych, które mogłyby się pojawić i w rezultacie doprowadzić do nieuruchamiania maszyn wirtualnych. Dlatego, gdy używana jest opcja --resize, nowy rozmiar dysku musi być większy niż obecny. Nie może być mniejszy lub równy bieżącemu rozmiarowi. Innymi słowy, dysk o pojemności 40 GB może być powiększony tylko do 41 GB lub więcej, nie może być powiększony do 40 GB (to po prostu głupie), 39 GB lub mniej.

Stare wersje VirtualBoxa tworzyły pliki VDI jako “fixed” varient format. Nowym domyślnym ustawieniem jest teraz tworzenie “dynamicznych” wariantów formatu, gdy tworzone są nowe pliki VDI (obrazy wirtualnych dysków). (Zgaduję, że tak jest od czasu wprowadzenia dynamicznego wariantu formatu, niezależnie od tego, w której wersji został wprowadzony).

Więc to co oznacza komunikat błędu “operacja dla tego formatu nie jest jeszcze zaimplementowana” oznacza, że twój plik VDI używa “stałego” wariantu formatu. Aby obejść ten problem będziesz musiał sklonować swój plik VDI używając komendy clonehd. Aby zobaczyć w jakim wariancie formatu jest obecnie twój plik VDI, możesz użyć polecenia showhdinfo.

Przykład działania

Pokazanie informacji VDI o bieżącym dysku.

Polecenie wejściowe: vboxmanage.exe showhdinfo path\inputfile.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi"
UUID: 132e9af1-0428-49f4-bc45-4d84680e17f5
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\VirtualBox VMs\sg2_win7_x64_lab\sg2_win7_x64_lab.
vdi
Storage format: VDI
Format variant: fixed default
Capacity: 40960 MBytes
Size on disk: 40962 MBytes
In use by VMs: sg2_win7_x64_lab (UUID: dcd106b3-7ed6-4f19-ad94-820ab4dc10d3)

C:\Program Files\Oracle\VirtualBox>

Widzisz gdzie jest napisane “fixed default”? To dlatego wypluwa powyższy błąd, gdy próbujesz zmienić jego rozmiar.

Klonowanie starego pliku VDI do nowego pliku VDI.

Polecenie wejściowe: vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd "%userprofile%\virtual
box vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" "%userprofile%\virtualbox vms\sg2
_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 34dafa68-3093-4946-926a-8237ea263
e5c

C:\Program Files\Oracle\VirtualBox>

Voilà! Stary plik został teraz sklonowany do nowego pliku. Ponieważ domyślnym ustawieniem w nowych wersjach VirtualBoxa jest użycie “dynamicznego” wariantu formatu, nie musisz tego jawnie definiować. Chociaż, jeśli pracujesz ze starszą wersją VirtualBoxa, możesz chcieć ustawić opcję na “dynamiczny” (jeśli w ogóle jest dostępna), aby zapewnić lepszą kompatybilność i/lub elastyczność z przyszłymi wersjami VirtualBoxa.

Pokaż informacje VDI o sklonowanym dysku.

Polecenie wejściowe: vboxmanage.exe showhdinfo path\inputfile_clone.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID: 34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 40960 MBytes
Size on disk: 7806 MBytes

C:\Program Files\Oracle\VirtualBox>

Widzisz jak teraz jest napisane “dynamic default”? Jak miło!

(Na marginesie! Powodem, dla którego jest tu napisane 7806 MB jako rozmiar fizyczny, jest to, że użyłem opcji --compact na oryginalnym pliku VDI, próbując wymusić konwersję do dynamicznego wariantu formatu. To było coś, co przeczytałem na forum VirtualBoxa, podobno działało to ze starszymi wersjami, więc pomyślałem, że mogę spróbować. Nie zadziałało.)

Resizing the cloned disk.

Polecenie wejściowe: vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi" --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

C:\Program Files\Oracle\VirtualBox>

Sukces! Koniec z bzdurami o formacie. Pamiętaj tylko, aby zmienić rozmiar nowego, sklonowanego dysku, a nie oryginalnego. Należy pamiętać, że rozmiar jest wyrażony w MB. Wydaje mi się, że można użyć np. 51200, jak również 50G (lub ewentualnie “GB”). Istnieje również opcja --resizebyte, która może być użyta do wyrażenia rozmiaru w bajtach.

Pokazanie informacji VDI o zmienionym rozmiarze dysku klonowanego.

Polecenie wejściowe: vboxmanage.exe showhdinfo path\inputfile_clone.vdi

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID: 34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 51200 MBytes
Size on disk: 7806 MBytes

C:\Program Files\Oracle\VirtualBox>

To wszystko! Od tego momentu musisz dodać ten sklonowany dysk jako nowy VDI dla maszyny wirtualnej. Zrobisz to wewnątrz VirtualBoxa. Nie będę się w to zagłębiał. Jeśli udało Ci się to do tej pory przeczytać i zrozumieć, to prawdopodobnie nie potrzebujesz dalszego przewodnika. Możesz albo usunąć stary “naprawiony” plik, albo zostawić go jako kopię zapasową. Upewnij się, że przetestujesz nowy plik VDI zanim usuniesz oryginalny plik źródłowy.

Uwaga! Nie zobaczysz od razu nowego rozmiaru sklonowanego dysku. Musisz uruchomić maszynę wirtualną z tym dyskiem, a następnie użyć narzędzia do zarządzania partycjami, aby rozszerzyć partycję, aby wypełnić dysk wirtualny (lub utworzyć więcej partycji). Dla Windows, wystarczy uruchomić diskmgmt.msc i będziesz mógł rozszerzyć partycję w tym miejscu.

Screenshots

Reference

11
11
11
2014-09-26 15:48:23 +0000

Oto dość prosty proces, który zadziałał w moim przypadku, aby zmienić rozmiar dysku VirtualBox (v. 4.3.16) o stałej wielkości na dysk dynamiczny o pojemności 60 GB na moim Macu (OS X 10.9.4) z Linuksem (Ubuntu 14.04) działającym jako guest OS:

W Terminalu na Macu wejdź CD do katalogu z plikiem VDI i wpisz następujące dane:

VBoxManage showhdinfo mydisk.vdi  
VBoxManage clonehd mydisk.vdi mydiskClone.vdi  
VBoxManage modifyhd mydiskClone.vdi --resize 61440  
VBoxManage showhdinfo mydiskClone.vdi

W sekcji Application Storage VirtualBoxa dodaj mydiskClone.vdi jako drugi HD, a następnie uruchom normalnie maszynę wirtualną.

W powłoce na guest OS-ie wpisz:

sudo fdisk /dev/sdb
- delete all partitions
- create new partition on full disk

Zrestartuj gościa. Kiedy się uruchomi, przejdź ponownie do powłoki i wpisz:

sudo resize2fs /dev/sdb1

Shutdown the guest OS.

W sekcji VirtualBox application storage ponownie ustaw mydiskClone.vdi jako dysk startowy. Następnie uruchom guest OS i zweryfikuj rozmiar nowego dysku we właściwościach “Computer” w przeglądarce plików.

5
5
5
2014-11-11 19:34:53 +0000

Klonowanie jest w rzeczywistości lepszym rozwiązaniem i istnieje prostszy sposób, aby to zrobić.

Z menu Plik wybierz Menedżer mediów wirtualnych, a następnie kliknij Kopiuj. Źródłem będzie Twój oryginalny dysk twardy vdi o stałym rozmiarze, a miejscem docelowym będzie coś nowego, wybranego przez Ciebie (zawiera opcję nowego).

4
4
4
2014-09-30 17:50:33 +0000

OK, więc udało mi się to zrobić bez klonowania.

Miałem 100GB plik VDI (stały format) z Ubuntu na nim. Działało dobrze. Chciałem zwolnić trochę miejsca na hoście poprzez zmniejszenie VM.

Kroki:

  1. Cleanup

Usunięte niechciane pliki. Wolne 45GB. Potrzebuję tylko 30GB do uwolnienia.

  1. Napraw system operacyjny gościa

Mam tylko jedną partycję, więc nie mogę nic zrobić z Ubuntu gościa. Zamontowałem Ubuntu Live w maszynie wirtualnej i uruchomiłem z niego komputer.

Użyłem gparted aby zmniejszyć partycję do 70GB. Utworzyłem nową partycję w niewykorzystanym miejscu w ext4.

  1. Wyczyść wolne miejsce

Wolne miejsce na nowej partycji (30GB).

Postępowałem zgodnie z tym przewodnikiem : Shrink virtual hard drive on Ubuntu as Guest and Host OS using zerofree

Moja nowa partycja była /dev/sda3.

$ sudo apt-get install zerofree
$ sudo init 1

...

# mkdir /tmp3
# mount -o ro -t ext4 /dev/sda3 /tmp3
# zerofree -v /dev/sda3
  1. Kompakt VDI

Trochę to trwało, ale udało się!

2
2
2
2016-10-11 12:51:47 +0000

Oto jak zmieniłem rozmiar / powiększyłem / rozszerzyłem stały obraz VDI (mój proces zmniejszania ich jest w innej odpowiedzi):

  1. Użyj VirtualBox, aby utworzyć nowy dysk o pożądanym rozmiarze (rozmiar MUSI być co najmniej taki sam jak oryginał). Zrób to, otwierając Ustawienia VirtualBox dla gościa VM, przejdź do Przechowywania, kliknij Kontroler HDD (np. “SATA”), a następnie kliknij “+”, aby dodać dysk twardy. Następnie skonfiguruj nowy dysk zgodnie z wymaganiami.
  2. Pobierz gparted live ISO i skonfiguruj maszynę wirtualną gościa, aby uruchamiała się z tego dysku (ponownie, ustawienia Storage).
  3. Wykonaj kopię zapasową aktualnej pamięci masowej maszyny wirtualnej gościa.
  4. Uruchom maszynę wirtualną gościa (powinna uruchomić się w środowisku gparted live). Z wnętrza środowiska gparted:
  5. Użyj aplikacji gparted, aby sprawdzić, czy Twój istniejący dysk to “/dev/sda”, a nowy (większy) dysk to “/dev/sdb” (rozwijany w prawym górnym rogu).
  6. Zamknij aplikację gparted.
  7. Otwórz terminal z uprawnieniami roota (kliknij prawym przyciskiem myszy na pulpicie -> Terminale -> terminal z uprawnieniami roota).
  8. Wpisz następujące polecenie: 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łączając w to MBR itp. (Uwaga: Może to chwilę potrwać w zależności od rozmiaru oryginalnego dysku, prędkości dysku na hoście itp.) (Uwaga: jeśli maszyna wirtualna gościa ma przydzielone > 1GB RAM, możesz zmienić parametr ‘bs’ na “bs=256M”, co może nieco przyspieszyć kopiowanie).
  9. Ponownie otwórz aplikację gparted
  10. Wybierz nowy (większy) dysk (powinien być /dev/sdb) z rozwijanej listy w prawym górnym rogu.
  11. Rozszerz partycję(y) zgodnie z życzeniem. Aby rozszerzyć partycję, która nie jest na końcu, być może będziesz musiał przenieść partycje, które są po partycji, którą chcesz rozszerzyć. W zależności od specyfiki schematu partycjonowania może być konieczne wykonanie tego w kilku krokach, np. powiększenie ostatniej partycji do końca, a następnie zmniejszenie jej przez przeniesienie wszystkiego na koniec. W moim przypadku, moją ostatnią partycją była linux-swap, więc po prostu ją usunąłem, rozszerzyłem moją podstawową partycję zgodnie z życzeniem, a następnie ponownie utworzyłem partycję swap na końcu (uważając, aby odtworzyć jej oryginalny schemat partycjonowania).
  12. Zastosuj zmiany.
  13. W tym momencie powinieneś mieć nowy dysk o stałym rozmiarze z całą oryginalną zawartością i większą ilością miejsca niż oryginał. Możesz zamontować nowy dysk w gparted live env i zweryfikować.
  14. Zamknij maszynę wirtualną gościa (gparted live) i usuń ISO z dysku maszyny wirtualnej.
  15. Przejdź do ustawień VBox dla maszyny wirtualnej gościa, przejdź do Storage i usuń oryginalny dysk z listy (kliknij prawym przyciskiem myszy i wybierz “Remove Attachment”). Powinno to pozostawić nowo utworzony dysk dla maszyny wirtualnej. Uwaga: Ten krok to po prostu usunięcie dysku z konfiguracji maszyny wirtualnej gościa - oryginalny dysk maszyny wirtualnej gościa (tzn. ten mały) jest nadal dostępny na maszynie głównej.
  16. Uruchom maszynę wirtualną i ciesz się nią!
  17. (Po potwierdzeniu, że wszystko działa zgodnie z oczekiwaniami, możesz usunąć oryginalny dysk maszyny wirtualnej).

Podczas gdy powyższa procedura sprawdzała się u mnie wielokrotnie, wydaje się, że w przypadku użycia LVM konieczne jest wykonanie kilku dodatkowych kroków. (UWAGA: Jeśli LVM jest używany, możesz po prostu dodać nowy dysk o pożądanym rozmiarze, a następnie dodać ten dysk do grupy woluminów). W przypadku CentOS 6.6, gdzie używany jest LVM, musiałem również zwiększyć przestrzeń wewnątrz LVM. Więc po uruchomieniu nowego dysku utworzonego powyżej, zrobiłem coś w tym stylu (różne części tego będą się różnić w zależności od nazwy twojej konfiguracji):

  1. Get info about LVM setup:

  2. Rozszerz wolumin fizyczny (PV) (grupa woluminów (VG) automatycznie odzwierciedli ten sam wzrost):

  3. Rozszerz wolumen logiczny (LV):

  4. Rozszerz system plików:

2
2
2
2015-06-01 00:22:30 +0000

Trochę za późno na imprezę, ale dodam swoje 2 grosze. Najpierw powiem, że jest to skomplikowany proces, który doprowadzi większość zwykłych użytkowników do szału, próbując się zorientować. Dlaczego Oracle nie zawarł tego w VBox GUI jest tajemnicą.

Krok 1: Użyj wiersza poleceń Windows (VBoxmanage), aby zwiększyć rozmiar dysku. Wskazówką jest tutaj użycie identyfikatora napędu vdi zamiast niekończących się prób wpisywania lokalizacji pliku i otrzymywania komunikatów o błędach.

Krok 2: Następnie musisz rozszerzyć swoją podstawową partycję, aby wykorzystać nowe miejsce. Pobierz gparted iso i stwórz nową maszynę wirtualną w VBox używając jej jako źródła IDE. Następnie użyj istniejącego dysku VDI jako dysku sata. Nie twórz wirtualnego napędu dla tej maszyny. Uruchom nową maszynę i będziesz miał uruchomione gparted Gui. Może to potrwać kilka restartów, aby wszystko się poukładało.

Po uruchomieniu gparted zobaczysz partycje swojego dysku vdi, których rozmiar chcesz zmienić. WAŻNE: Będziesz musiał usunąć partycję rozszerzoną i miejsce na pliki swap, aby móc zwiększyć rozmiar partycji podstawowej, więc nie alokuj całego nowego miejsca na PP. Kiedy już to zrobisz, będziesz musiał przeznaczyć pozostałe miejsce na nową partycję rozszerzoną i utworzyć nową przestrzeń na pliki wymiany w jej obrębie. Uważam, że jest to o wiele łatwiejsze niż bawienie się z wierszem poleceń.

Nie jest to bułka z masłem, ale da się to zrobić… zajęło mi to około pół dnia szukania w sieci, aby to rozgryźć. Uruchomienie Win8.1 / Ubuntu na VBox

Willie

1
1
1
2017-03-18 23:21:15 +0000

Oto jak zmieniłem rozmiar/skróciłem/zmniejszyłem stały obraz VDI (mój proces rozszerzania go jest w innej odpowiedzi w tym samym temacie):

Najpierw krótkie tło dlaczego tego potrzebowałem (ponieważ istnieje wiele scenariuszy zmniejszania VDI, z których niektóre mogą być niewykonalne przy tym podejściu): Lata temu utworzyłem stałe VDI dla gościa Windows Server i określiłem jego rozmiar na 600GB. Nie pamiętam dlaczego wybrałem taki rozmiar, ale na dzień dzisiejszy zużyłem tylko 100GB w tym gościu i chcę odzyskać większość pozostałej przestrzeni. Tak więc w moim przypadku chcę zachować wszystkie dane w gościach i chcę po prostu zwolnić niewykorzystane miejsce w gościach.

(Poniższe kroki są w większości z mojej pamięci o zrobieniu tego w ciągu ostatnich 2 godzin, więc przepraszam, jeśli coś przeoczyłem).

  1. Określ, jak duży ma być nowy rozmiar. Oczywiście prawdopodobnie będziesz chciał zostawić gościowi trochę dodatkowego miejsca poza tym, co obecnie zużywa. Rozmiar musi być co najmniej taki sam jak dane na źródłowym/oryginalnym dysku, zaokrąglony do najbliższego GB.
  2. Użyj VirtualBox, aby utworzyć nowy dysk o stałym rozmiarze z rozmiarem określonym w poprzednim kroku. W tym celu otwórz ustawienia VirtualBox dla maszyny wirtualnej gościa, przejdź do Storage, kliknij HDD Controller (np. “SATA”), a następnie kliknij “+”, aby dodać dysk twardy. Następnie skonfiguruj nowy dysk zgodnie z wymaganiami.
  3. Pobierz plik gparted live ISO i skonfiguruj maszynę wirtualną gościa, aby uruchamiała się z niego (ponownie, ustawienia Storage).
  4. Wykonaj kopię zapasową aktualnej pamięci masowej maszyny wirtualnej gościa.
  5. Uruchom maszynę wirtualną gościa (powinna uruchomić się w środowisku gparted live). Z wnętrza środowiska gparted:

  6. Przejdź do ustawień VBoxa dla maszyny wirtualnej gościa, przejdź do Storage i usuń oryginalny dysk z listy (kliknij prawym przyciskiem myszy i wybierz “Remove Attachment”). Powinno to pozostawić nowo utworzony dysk dla maszyny wirtualnej. Uwaga: Ten krok to po prostu usunięcie dysku z konfiguracji maszyny wirtualnej gościa - twój oryginalny dysk maszyny wirtualnej gościa (tj. duży VDI) jest nadal dostępny na maszynie hosta.

  7. Ostatnim krokiem, który musiałem zrobić dla mojego gościa Windows było ustawienie/naprawienie MBR i/lub BCD. (Nie wiem czy jest to wymagane dla gościa linuksowego, ponieważ jeszcze tego nie robiłem). Jeśli po prostu uruchomiłem się z mojego nowego VDI, otrzymałem ekran błędu Windows Boot Mgr z następującą zawartością (niestety nie zrobiłem zrzutu ekranu zanim naprawiłem problem):

  8. Pobierz ISO z instalacją lub naprawą systemu Windows (najlepiej takiego, który pasuje do Twojej wersji systemu operacyjnego) i skonfiguruj maszynę wirtualną-gościa do uruchamiania z niego (ponownie, ustawienia Storage).

  9. Uruchom VM gościa i wybierz bootowanie z płyty CD/DVD.

  10. Przejdź do ustawień VBox dla maszyny wirtualnej gościa, przejdź do Storage i usuń Windows Install/Repair ISO z napędu CD/DVD.

  11. Uruchom maszynę wirtualną i ciesz się nią!

  12. (Po potwierdzeniu, że wszystko działa zgodnie z oczekiwaniami, możesz usunąć oryginalny dysk maszyny wirtualnej).

0
0
0
2016-11-18 16:26:44 +0000

Zapewniam odpowiedź rozszerzoną na dowolny hostowany system operacyjny działający na dowolnym systemie operacyjnym hosta. Ta odpowiedź zakłada, że chcesz zwiększyć rozmiar (rozszerzyć).

Uwaga: Jak wskazał djule5 (zobacz komentarz tuż po pytaniu), modifyhd jest teraz znany jako modifymedium (ale pozostaje kompatybilny wstecz). Tutaj używam modifymedium.

1. Quit your running VM

Tak ta odpowiedź jest dla pliku VDI już używanego przez maszynę wirtualną VirtualBox.

2. Otwórz terminal na hoście, aby zmienić rozmiar obrazu dysku

Wiersz poleceń VBoxManage nie chce zmienić rozmiaru obrazu dysku przy użyciu nazwy pliku VDI.

$ ls -s1 *.vdi
10260316160 my_disk_image.vdi

$ vboxmanage modifymedium my_disk_image.vdi --resizebyte 16260316160 VBoxManage: error: Cannot register the hard disk '/home/user/vm/my_disk_image.vdi' {181540c7-b791-4b2f-8e01-5feaff04a6eb} because a hard disk '/home/user/vm/my_disk_image.vdi' with UUID {181540c7-b791-4b2f-8e01-5feaff04a6eb} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 179 of file VBoxManageDisk.cpp

Dlatego zidentyfikuj UUID twojego obrazu dysku.

$ ls -s1 *.vdi
10260316160 my_disk_image.vdi

$ vboxmanage list hdds
UUID: 181540c7-b791-4b2f-8e01-5feaff04a6eb
Parent UUID: base
State: created
Type: normal (base)
Location: /home/user/vm/my_disk_image.vdi
Storage format: VDI
Capacity: 10240 MBytes
Encryption: disabled

Zwiększ rozmiar obrazu dysku.

$ vboxmanage modifymedium 181540c7-b791-4b2f-8e01-5feaff04a6eb --resizebyte 16260316160
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

3. Użyj narzędzia do partycjonowania, aby rozszerzyć partycję logiczną

Uruchom hostowaną maszynę wirtualną. Następnie użyj narzędzia do partycjonowania partitioning tool .

Niektóre narzędzia dla hostowanego GNU/Linux :

Jeśli hostowany system używa Windowsa :

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.

-1
-1
-1
2015-08-11 10:26:21 +0000

To będzie działać dla mnie i powinien określić całkowitą ilość pojemności dysku twardego. Nie przestrzeń, którą musimy zwiększyć…

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd “D:\Virtual Machine\VirtualBox VMs\Windows 7 (FileZilla Server)\Windows 7 (FileZilla Server).vdi” –resize 15360