Questa mini guida spiega come aumentare la dimensione di un disco di una macchina virtuale Linux Centos 6 su sistema VMware.
Ci sono diverse guide a proposito ma poche coprono tutti i seguenti aspetti:
- Macchina virtuale su VMWare
- Sistema Linux Centos 6
- Dischi gestiti con LVM
- Evitare di dover definire una partizione aggiuntiva
Ecco i passaggi che ho fatto.
Installazione base di Centos 6.4 su VMPlayer o VMware Fusion su Mac
Il disco di base era dimensionato a 6 GB
Ora voglio portarlo a 12 GB
Controllo lo spazio a disposizione inizialmente:
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Montato su /dev/mapper/VolGroup-lv_root 3,5G 620M 2,8G 19% / tmpfs 497M 0 497M 0% /dev/shm /dev/sda1 485M 32M 429M 7% /boot
Controllo la dimensione delle partizioni in settori:
[root@localhost ~]# fdisk -ul /dev/sda Disco /dev/sda: 6442 MB, 6442450944 byte 255 testine, 63 settori/tracce, 783 cilindri, totale 12582912 settori Unità = settori di 1 * 512 = 512 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificativo disco: 0x0009fd66 Dispositivo Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux La partizione 1 non termina al limite del cilindro. /dev/sda2 1026048 12582911 5778432 8e Linux LVM La partizione 2 non termina al limite del cilindro.
Prendo nota del settore 1026048 iniziale della partizione /dev/sda2
Spengo la macchina virtuale con
[root@localhost ~]# halt
e aumento la dimensione del disco fisso a 12 GB. Avvio nuovamente la macchina e uso fdisk per ridimensionare la partizione /dev/sda2
[root@localhost ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Comando (m per richiamare la guida): p Disco /dev/sda: 12.9 GB, 12884901888 byte 255 testine, 63 settori/tracce, 1566 cilindri Unità = cilindri di 16065 * 512 = 8225280 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificativo disco: 0x0009fd66 Dispositivo Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux La partizione 1 non termina al limite del cilindro. /dev/sda2 64 784 5778432 8e Linux LVM La partizione 2 non termina al limite del cilindro. Comando (m per richiamare la guida): d Numero della partizione (1-4): 2 Comando (m per richiamare la guida): n Azione comando e estesa p partizione primaria (1-4) p Numero della partizione (1-4): 2 Primo cilindro (64-1566, predefinito 64): Utilizzo del valore predefinito 64 Last cilindro, +cilindri or +size{K,M,G} (64-1566, predefinito 1566): Utilizzo del valore predefinito 1566 Comando (m per richiamare la guida): t Numero della partizione (1-4): 2 Codice esadecimale (digitare L per elencare i codici): 8e Modificato il tipo di sistema della partizione 2 in 8e (Linux LVM) Comando (m per richiamare la guida): u Modifica delle unità di visualizzazione/immissione su settori Comando (m per richiamare la guida): p Disco /dev/sda: 12.9 GB, 12884901888 byte 255 testine, 63 settori/tracce, 1566 cilindri, totale 25165824 settori Unità = settori di 1 * 512 = 512 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificativo disco: 0x0009fd66 Dispositivo Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux La partizione 1 non termina al limite del cilindro. /dev/sda2 1026048 25157789 12065871 8e Linux LVM
Se il primo settore della partizione /dev/sda2 non e’ uguale a prima del ridimensionamento possiamo utilizzare la modalitò avanzata di fdisk
Comando (m per richiamare la guida): x Comando per esperti (m per richiamare la guida): b Numero della partizione (1-4): 2 Nuovo inizio dati (1026048-25157789, predefinito 1026048): 1026048 Comando per esperti (m per richiamare la guida): w La tabella delle partizioni è stata alterata! Chiamata di ioctl() per rileggere la tabella delle partizioni. WARNING: Re-reading the partition table failed with error 16: Dispositivo o risorsa occupata. 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) Sincronizzazione dei dischi in corso.
Riavvio per applicare le modifiche
[root@localhost ~]# reboot
Controllo la dimensione dei Gruppi di volume LVM
[root@localhost ~]# vgdisplay --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 5,51 GiB PE Size 4,00 MiB Total PE 1410 Alloc PE / Size 1410 / 5,51 GiB Free PE / Size 0 / 0 VG UUID cGePzQ-4rCO-T6XB-dmAu-S8Vl-OvrU-09IU5I
Ridimensione il gruppo in base alla partizione
[root@localhost ~]# pvresize /dev/sda2 Physical volume "/dev/sda2" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
Controllo ora il risultato
[root@localhost ~]# vgdisplay --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 11,50 GiB PE Size 4,00 MiB Total PE 2945 Alloc PE / Size 1410 / 5,51 GiB Free PE / Size 1535 / 6,00 GiB VG UUID cGePzQ-4rCO-T6XB-dmAu-S8Vl-OvrU-09IU5I
Estendo ora il volume logico lv_root
[root@localhost ~]# lvextend -l +100%FREE /dev/VolGroup/lv_root Extending logical volume lv_root to 9,54 GiB Logical volume lv_root successfully resized[root@localhost ~]# lvdisplay /dev/VolGroup/lv_root --- Logical volume --- LV Path /dev/VolGroup/lv_root LV Name lv_root VG Name VolGroup LV UUID HlpgVs-YQ2L-ve3n-p3S8-N2gC-USV2-3nROu4 LV Write Access read/write LV Creation host, time localhost.localdomain, 2013-06-27 00:10:38 +0200 LV Status available # open 1 LV Size 9,54 GiB Current LE 2441 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
Alla fine espando il filesystem
[root@localhost ~]# resize2fs /dev/VolGroup/lv_root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/VolGroup/lv_root to 2499584 (4k) blocks. The filesystem on /dev/VolGroup/lv_root is now 2499584 blocks long.
E verifico finalmente il risultato
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Montato su /dev/mapper/VolGroup-lv_root 9,4G 621M 8,4G 7% / tmpfs 497M 0 497M 0% /dev/shm /dev/sda1 485M 32M 429M 7% /boot