Poradniki

Zmiana wielkości dysku VDI w VirtualBox’ie

  
Dla wielu utworzenie dysku wirtualnego w VirtualBoksie wydaje się decyzją wręcz nieodwracalną. Dlaczego? Być może podstawowym powodem jest to, że takowa zmiana nie jest dostępna z tradycyjnego interfejsu programu. Jedynym rozwiązaniem wydaje się być wtedy usunięcie wirtualnej maszyny, albo przynajmniej samego dysku, utworzenie nowego i niestety ponowna instalacja oraz konfiguracja systemu. Kiedy nam brakuje dosłownie kilku gigabajtów, przy odpowiednio przygotowanym systemie, taka wizja może nas odstraszać i przyprawiać o ból głowy. Na szczęście istnieje dość proste rozwiązanie, które właśnie teraz przedstawię.

Rozszerzanie pliku VDI na Windowsie


Na początku naszej przygody, musimy odnaleźć ścieżkę do pliku dysku VDI oraz ścieżkę do instalacji VirtualBoksa. Zazwyczaj środowisko jest instalowane domyślnie na dysku C, ale jeżeli dokonaliście tu pewnych zmian, nietrudno będzie się Wam zorientować. Uruchamiamy Wiersz poleceń, klikając na menu Start, a następnie wpisując polecenie cmd i zatwierdzając je enterem.

Po pierwsze przechodzimy do katalogu, w którym znajduje się instalacja VirtualBoksa. Wpisujemy następujące polecenie:
cd "C:\Program Files\Oracle\VirtualBox"

Teraz możemy wpisać kolejne polecenie, które nam powiększy powierzchnię dysku wirtualnego. Przed wpisaniem upewnijcie się, że lokalizacja pliku VDI jest poprawna i wskazuje na dokładnie ten dysk, który chcecie powiększyć. Więcej informacji uzyskacie po wejściu w ustawienia wirtualnej maszyny, tam również znajdzie się dokładna ścieżka.
VBoxManage modifyhd "C:\Users\Janek\VirtualBox VMs\Windows 10\Windows 10.vdi" --resize 102400

Wartość po parametrze --resize oznacza całkowitą powierzchnię dysku po rozszerzeniu, podaną w megabajtach (1 GB = 1024 MB).

Rozszerzanie pliku VDI na Linuksie


Sytuacja wygląda bardzo podobnie, a może nawet prościej, jeżeli korzystamy z VirtualBoksa pod jakimkolwiek Linuksem. Wtedy wystarczy jedynie otworzyć Terminal, a następnie od razu wpisać polecenie:
VBoxManage modifyhd "/home/janek/VirtualBox VMs/Windows 10/Windows 10.vdi" --resize 102400

Oczywiście podajemy naszą ścieżkę do pliku VDI oraz jego nowy rozmiar w megabajtach.

Rozszerzamy partycję


Samo powiększenie pliku VDI będącego dyskiem dla naszej wirtualnej maszyny nie sprawi, że automatycznie zwiększy się nam powierzchnia dostępna z poziomu maszyny. Musimy teraz powiększyć używaną partycję o rozmiar niewykorzystany. Rozmiar niewykorzystany to ta przestrzeń o jaką powiększyliśmy plik VDI.

Powiększanie partycji można dokonywać w różny sposób pod różnymi systemami na wirtualnej maszynie. Jeżeli wirtualizujemy Windowsa, możemy skorzystać z Zarządzania dyskami i tam powiększyć partycję. Jeżeli korzystamy z Linuksa, to nietrudno pobrać pakiet gparted i z jego pomocą powiększyć partycję. I ja właśnie skorzystam teraz z gparted, ale pobranym w postaci obrazu ISO z oficjalnej strony.

Po uruchomieniu obrazu płyty w formie Live CD, naszym oczom ukazuje się aktualny podział dysku. Widać wyraźnie nieprzydzielone miejsce, w moim przypadku jest to 5,67 GB.



Aby rozszerzyć partycję pierwszą o pozostałe miejsce, klikamy na nią prawym przyciskiem myszy i wybieramy opcję Resize/Move. W nowym oknie, za pomocą suwaka rozszerzamy partycję maksymalnie do prawej. Możemy również zrobić to, wpisując odpowiednią wartość w polu New size (MiB) i zatwierdzamy. Teraz już wystarczy kliknąć na Apply, by zastosować zmiany na wirtualnym dysku. Po ponownym uruchomieniu wirtualnej maszyny będziemy mieli do dyspozycji pełen nowy rozmiar.



Ciekawostka!


Pewnie zauważyliście, że czasami piszę skrót od megabajtów - MB, a w interfejsie gparted skrót to MiB. Tak samo z gigabajtami - GB vs. GiB. Jest pewna różnica w tych skrótach, mianowicie przedrostki "kilo", "mega", "giga" itd. oznaczają kolejno 1000 razy więcej, 1 000 000 razy więcej i 1 000 000 000 razy więcej. Tak jest, np. w jednostkach fizycznych - kilowat to 1000 watów, megapiksel to 1 000 000 pikseli, a gigaherc to 1 000 000 000 herców. Natomiast w informatyce, w pojęciach dotyczących z reguły pojemności lub wielkości informacji zawsze operujemy na wielokrotnościach liczby 2. Stąd pojawił się kiedyś pomysł, by odróżnić oba przedrostki i stworzono mebibajty (MiB), gibibajty (GiB), tebibajty (TiB) itd., które są kolejnymi potęgami o podstawie 1024. Problem polega na tym, że owe jednostki absolutnie nie weszły do codziennej nomenklatury i zarówno pamięci RAM o faktycznej wielkości, np. 4 GiB są oznaczane 4 GB, a dyski twarde o faktycznej wielkości 500 GB (tak, tu jest tradycyjne "giga") są oznaczane 500 GB. Podobną konwencję możemy zauważyć w systemach operacyjnych Windows, ale już Linux stara się używać de facto poprawnego nazewnictwa. Ktoś mógłby teraz powiedzieć - spoko, tylko jaka to jest naprawdę różnica w życiu? Ano taka, że rozbieżności między kilo a kibi, mega a mibi rosną wraz z coraz większymi mnożnikami. Różnica między 1 TB a 1 TiB to już prawie 10%.

Podobał się artykuł? Myślę, że tak. :) Czekam na Twój komentarz poniżej. Bądź ze mną na bieżąco na Facebooku i obserwuj mnie na X.
16
KOMENTARZY

BĄDŹ ZE MNĄ NA BIEŻĄCO
NA FACEBOOKU ORAZ X  

16
KOMENTARZY



WYŚLIJ
E-MAILEM

WERSJA
DO DRUKU

SUBSKRYBUJ
KANAŁ RSS


BĄDŹ ZE MNĄ NA BIEŻĄCO
NA FACEBOOKU ORAZ X

Komentarze 

OD NAJSTARSZYCH  •  OD NAJNOWSZYCH
Grzegorz
17.03.2016, 19:28 #1
Wspaniały poradnik, dziękuję bardzo :)
ODPOWIEDZ    NAPISZ NOWY
Patrycjusz
09.06.2016, 23:31 #2
Dzięki !!! Super poradnik...
ODPOWIEDZ    NAPISZ NOWY
Janek
21.02.2017, 10:53 #3
Czy na vhd zadziała?
ODPOWIEDZ    NAPISZ NOWY
21.02.2017, 12:01 #4
@Janek: Niestety nie. Należy najpierw przekonwertować z VHD na VDI, a dopiero następnie można zastosować się do mojego poradnika. Konwersja, a tak dokładnie rzecz ujmując klonowanie dysku wirtualnego VHD można wykonać poleceniem: VBoxManage clonehd "C:\sciezka\do\pliku.vhd" "nowydysk.vdi" --format VDI --variant Standard
ODPOWIEDZ    NAPISZ NOWY
Janek
21.02.2017, 13:04 #5
@Jan Pogocki: No faktycznie nie zadziałało. Dzięki za podpowiedź. A może tak większy tutek, może cykl w temacie VB. Taki dla ciut więcej niż dla początkujących 😀
ODPOWIEDZ    NAPISZ NOWY
21.02.2017, 13:05 #6
@Janek: Pomyślimy :)
ODPOWIEDZ    NAPISZ NOWY
Piotr
05.07.2017, 21:49 #7
A czy tak samo można powiększyć przestrzeń dysku (plik vdi) jeśli jest on zdefiniowany dynamicznie?Czyli podczas jego tworzenia ustaliłem rozmiar dysku na 80 GiB ale rozszerzalny dynamicznie. Obecnie plik vdi zajmuje 45 GiB. Zadziała to co w opisie? Zwiększy się rozmiar zdefiniowany do 90 GiB ale fizyczny pozostanie nadal 45 GiB?
Dziękuję z góry za odpowiedź
ODPOWIEDZ    NAPISZ NOWY
05.07.2017, 21:53 #8
@Piotr: Raczej na pewno tak i nie powinno to spowodować zwiększenia wielkości pliku VDI. Plik się zwiększa dopiero wtedy, gdy na jego końcu dopisywane są nowe dane (usuwanie już niestety nie zmniejsza). Formatowanie, poszerzanie, scalanie partycji nie zalicza się do takich operacji. Więc bez obaw. :)
ODPOWIEDZ    NAPISZ NOWY
Marek
04.02.2018, 18:35 #9
Panie Janku VirtualBox w wersji 5.2.6 posiada już narzędzie wbudowane (Global Tools), gdzie w zakładce Dyski Twarde otrzymujemy możliwość zmiany wielkości dysków wirtualnych poprzez wpisanie nowej wartości dysku oraz jak to komu wygodne, poprzez przesunięcie suwaka do odpowiedniej wartości. Później tylko zatwierdzamy zmiany i gotowe. Po uruchomieniu Linux należy zastosować się do Pana porady, uruchomić GParted i rozszerzyć wielkość partycji według Pana opisu. Cały artykuł przeczytałem z ogromną uwagą. To bardzo ciekawy i precyzyjny opis rozwiązywania problemu dla starszej wersji systemu Windows. Niestety nie za bardzo chce działać w Windows 10. Tutaj trzeba pobawić się z dodaniem ścieżki bezwzględnej dla vboxmanage (którego nie znalazłem w katalogu VB). Przy obecnym rozwiązaniu zastosowanym w VirtualBox takie działania to już tylko strata czasu.
Panie Janku zachęcam Pana do zaktualizowania artykułu w oparciu o najnowsze zmiany w VB ponieważ temat okazuje się naprawdę aktualny i przez wielu użytkowników oczekiwany.
Serdecznie pozdrawiam
Marek
ODPOWIEDZ    NAPISZ NOWY
Zbyszek
19.09.2019, 11:11 #10
Bardzo przydatne porady ;-) Dziękuję i pozdrawiam.
ODPOWIEDZ    NAPISZ NOWY
Hubert
27.05.2022, 10:42 #11
W wierszu poleceń W10 64bitpojawia mi się taki oto komunikat: "VBoxManage' is not recognized as an internal or external command,
operable program or batch file." Natomiat po wybraniu "Tools" w wersji 6.1 VB opcje paska w zakładce "Attributes" są nieaktywne.
ODPOWIEDZ    NAPISZ NOWY
Hubert
27.05.2022, 10:50 #12
Od wersji 6.0 jest trochę inne polecenie:
VBoxManage modifymedium disk
ODPOWIEDZ    NAPISZ NOWY
Mateusz
12.07.2022, 07:17 #13
U mnie niestety pojawia się błąd VBOX_E_NOT_SUPPORTED i nie można zmodyfikować wielkości dysku. Dysk jest o stałym rozmiarze i takiego VirtualBox nie potrafi zmieniać. Najpierw trzeba przekonwertować na dynamiczny.
ODPOWIEDZ    NAPISZ NOWY
NoChybaNie
11.01.2023, 19:21 #14
Słaby poradnik. Na linuxie działa z buta, a na windowsie nie rozpoznaje komendy. Ciekawe bo można odnieść wrażenie, iż poradnik na windowsa jest pisany jakby od środka z pominięciem ważnych aspektów.
ODPOWIEDZ    NAPISZ NOWY
11.01.2023, 19:36 #15
@NoChybaNie: Proszę zwrócić uwagę na terminal, w którym odpalane są komendy: czy to jest cmd czy PowerShell.
ODPOWIEDZ    NAPISZ NOWY
Jacek
05.08.2023, 16:42 #16
Cześć, albo ja czegoś nie zrozumiałem, albo coś nie zdziałało. Po kolei: host: Linux Ubuntu, guest: Windows 11. Żeby zwiększyć dysk dostępny dla Windowsa w shellu wykonałem polecenie: VBoxManage modifyhd "/home/jacek/VirtualBox VMs/Windows 11/Windows 11.vdi" --resize 132990
VirtualBox widzi nowy rozmiar, ale jak wchodzę do zarządzania dyskami w Windows, to nie mam żadnej niezaalokowanej przestrzeni na którą mógłbym rozszerzyć partycję systemową. Masz może pomysł, co mogło pójść nie tak?
ODPOWIEDZ    NAPISZ NOWY
Pasja. Każdy ma swoją