Jak zmienić rozmiar dysku VDI wirtualnej maszyny VirtualBox-a która działa na dystrybucji Linux Debian? Na sam poczatek dobrą praktyką jest zrobienie kopi pliku VDI, bo gdyby coś się nie udało zawsze możemy wrócic do stanu początkowego.
Zmiana rozmiaru dysku VDI
1. Wyłączamy wirtualna maszyne której chcemy zmienic rozmiar dysku. Teraz jest dobra pora na wykonanie kopi dysku VDI.
2. Zmieniamy rozmiar dysku VDI. W tym celu otwieramy wiersz poleceń i przechodzimy do katalogu instalacyjnego VirtualBox-a. Nastepnie odpalamy narzedzie VBoxManage.exe z parametrem modifyhd oraz podajemy ścieżke do naszego pliku VDI wraz z parametrem --resize który określa wynikową ilośc MB po zmianie rozmiaru dysku.
cd "c:\Program Files\Oracle\VirtualBox" VBoxManage.exe modifyhd "d:\Maszyny Wirtualne\Debian\Debian.vdi" --resize 25000
Dysk VDI ma juz rozmiar 25 000 MB jednak to nie koniec.
Rozszerzenie partycji w linuxie
Teraz należy wykonac kilka zmian w Linuxie. Mozna odpalić na maszynie wirtualnej dystrybucję live linuxa zawierającą gparted w celu rozszerzenia partycji za pomoca GUI lub wykorzystac wiersz poleceń. W dalszej części opisze jak rozszerzyć partycję za pomocą wiersza poleceń. Poniżej znajduje się listing z mojego terminala przy rozszerzaniu partycji. Komenda p wyświetla aktualne partycje, komenda d usuwa partycje pytając o jej numer, komenda n tworzy nowa partycję. Tworząc nową partycje główną (primary) jako startowy sektor ustawiamy proponowany defaultowy sektor a jako koniec wpisujemy wartośc tak aby zostało nam miejsce na partycję swap. W moim przypadku jest to warość proponowana jako defaultowy ostatni sektor czyli 51199999 - 1024000 = 50076000. 1024000 bierze się stąd, że na partycję swap chce zostawić 500 MB. Przy partycjach rozszerzonej(extended) i logicznej(logical) wystarczy akceptować defaultowe wartości poprzez wciśnięcie entera. Na koniec wszystkiego zapisujemy zmiany poprzez komende w oraz restartujemy maszynę.
root@debian:~# fdisk /dev/sda Command (m for help): p Disk /dev/sda: 26.2 GB, 26214400000 bytes 255 heads, 63 sectors/track, 3187 cylinders, total 51200000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000a8d4b Device Boot Start End Blocks Id System /dev/sda1 2048 35000000 17498976+ 83 Linux /dev/sda2 35000001 36863999 931999+ 5 Extended /dev/sda5 35002049 36863999 930975+ 82 Linux swap / Solaris Command (m for help): d Partition number (1-5): 1 Command (m for help): d Partition number (1-5): 2 Command (m for help): p Disk /dev/sda: 26.2 GB, 26214400000 bytes 255 heads, 63 sectors/track, 3187 cylinders, total 51200000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000a8d4b Device Boot Start End Blocks Id System Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-51199999, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-51199999, default 51199999): 50076000 Command (m for help): p Disk /dev/sda: 26.2 GB, 26214400000 bytes 255 heads, 63 sectors/track, 3187 cylinders, total 51200000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000a8d4b Device Boot Start End Blocks Id System /dev/sda1 2048 50076000 25036976+ 83 Linux Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): e Partition number (1-4, default 2): 2 First sector (50076001-51199999, default 50076001): Using default value 50076001 Last sector, +sectors or +size{K,M,G} (50076001-51199999, default 51199999): Using default value 51199999 Command (m for help): n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (50078049-51199999, default 50078049): Using default value 50078049 Last sector, +sectors or +size{K,M,G} (50078049-51199999, default 51199999): Using default value 51199999 Command (m for help): p Disk /dev/sda: 26.2 GB, 26214400000 bytes 255 heads, 63 sectors/track, 3187 cylinders, total 51200000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000a8d4b Device Boot Start End Blocks Id System /dev/sda1 2048 50076000 25036976+ 83 Linux /dev/sda2 50076001 51199999 561999+ 5 Extended /dev/sda5 50078049 51199999 560975+ 83 Linux Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): 82 Changed system type of partition 5 to 82 (Linux swap / Solaris) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. root@debian:~# reboot
Jeszcze tylko jedna rzecz i koniec
Ostatnią rzecza do wykonania zostało odpalenie komendy resize2fs /dev/sda1 aby rozszerzyć system plików. Poniżej widzimy że na rootfs pozstalo nam 504 MB a po odpaleniu resize2fs mamy już 7,3 GB wolnego miejsca.
root@debian:~# df -h Filesystem Size Used Avail Use% Mounted on rootfs 17G 16G 504M 97% / udev 10M 0 10M 0% /dev tmpfs 101M 540K 101M 1% /run /dev/disk/by-uuid/c8c52ee4-5917-435e-b56b-09317ca889c1 17G 16G 504M 97% / tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 202M 76K 202M 1% /run/shm /dev/sr0 57M 57M 0 100% /media/cdrom0 root@debian:~# resize2fs /dev/sda1 resize2fs 1.42.5 (29-Jul-2012) Filesystem at /dev/sda1 is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 2 The filesystem on /dev/sda1 is now 6259244 blocks long. root@debian:~# df -h Filesystem Size Used Avail Use% Mounted on rootfs 24G 16G 7.3G 68% / udev 10M 0 10M 0% /dev tmpfs 101M 540K 101M 1% /run /dev/disk/by-uuid/c8c52ee4-5917-435e-b56b-09317ca889c1 24G 16G 7.3G 68% / tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 202M 224K 202M 1% /run/shm /dev/sr0 57M 57M 0 100% /media/cdrom0
I to wszystko mamy juz wystarczająco dużo miejsca na naszym linuxie.
PS: U mnie po restarcie fdisk pokazuje partycję /dev/sda5 jako swap natomiast gparted widzi ja jako nierozpoznana. Dlatego możemy odpalic gparted klikać prawym klawiszem na partycji /dev/sda5 i wybrac Format to -> linux-swap. Następnie akceptujemy zmiany ptaszkiem u góry.
Moim zdaniem bardzo fajnie opisany problem. Pozdrawiam serdecznie.
OdpowiedzUsuń