piątek, 27 września 2019

Zmiana rozmiaru dysku VDI wirtualnej maszyny Linux Debian w VirtualBox

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.

1 komentarz: