Ridimensionare una partizione EXT4 con Debian
Buongiorno, oggi vorrei parlarvi di come ridimensionare una partizione EXT4 su Debian. Nell’esempio descritto in questo capitolo vediamo inoltre come spostare la partizione SWAP ed aggiornare tutti i suoi riferimenti.
La prova è stata fatta con Debian 10 a 64bit su una macchina virtuale in esecuzione su un server xcp-ng.
La procedura vale anche per altri formati (Es. EXT2-EXT3) con le dovute differenze.
Partiamo dal caso più particolare descritto qui di seguito tramite l’output del comando cfdisk eseguito con permessi di root:

Come si vede dallo schema avviamo:
- /dev/xvda1 -> 9,3 GB -> EXT4
- /dev/xvda2 -> 4,7 GB -> SWAP
- Free Space -> 10 GB
Le operazioni da fare sono le seguenti:
- cancellare la partizione SWAP (selezionandola e indicando delete)
- effettuare il ridimensionamento di xvda1 (selezionandola, indicando resize e successivamente indicando di quanto ingrandire la partizione.
- Ricreare la partizione SWAP ( selezionandola lo spazio vuoto, indicando create e successivamente il tipo di partizione selezionando Type e Linux Swap/Solaris)
- Salvare le modifiche con il comando Write
Attenzione: prima di procedere è importante smontare la partizione swap che si andrà a rimuovere come segue:
root@docker:~# swapoff /dev/xvda2
Nella figura sottostante è rappresentato il risultato delle operazioni:

Ora per rendere stabili le modifiche occorre riavviare il sistema. Noterete che l’avvio sarà molto lento. ciò è causato dal fatto che la partizione swap è stata cancellata. Per ovviare al problema occorre per prima cosa ricrearla:
root@docker:~# mkswap /dev/xvda2
mkswap: /dev/xvda2: warning: wiping old swap signature.
Setting up swapspace version 1, size = 4,7 GiB (5031063552 bytes)
no label, UUID=adee0cae-c5a0-4c88-b54f-11cd60cc071f
root@docker:~# swapon /dev/xvda2
For more details see swapon(8).
root@docker:~# swapon -s
Filename                                Type            Size    Used    Priority
/dev/xvda2                              partition       4913148 0       -2
A questo punto dobbiamo aggiornare tutti i riferimenti alla partizione SWAP. Per prima cosa occorre identificare il nuovo UUID:
root@docker:~# blkid
/dev/xvda1: UUID=”429e81bf-81e2-4459-93dd-0f024d3240a8″ TYPE=”ext4″
/dev/xvda2: UUID=”adee0cae-c5a0-4c88-b54f-11cd60cc071f” TYPE=”swap”
Successivamente va aggiornato /etc/fstab con il nuovo UUID. Il risultato della modifica sarà il seguente:
root@docker:~# cat /etc/fstab |grep adee0cae-c5a0-4c88-b54f-11cd60cc071f
UUID=adee0cae-c5a0-4c88-b54f-11cd60cc071f none            swap    sw             0       0
Infine occorre aggiornare i riferimenti in initrd. Per fare ciò occorre aggiornare il file /etc/initramfs-tools/conf.d/resume e rigenerare l’initrd:
root@docker:~# cat /etc/initramfs-tools/conf.d/resume                           RESUME=UUID=adee0cae-c5a0-4c88-b54f-11cd60cc071f
root@docker:~# dpkg-reconfigure linux-
root@docker:~# dpkg-reconfigure linux-image-4.19.0-6-amd64
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.19.0-6-amd64
/etc/kernel/postinst.d/zz-update-grub:
Generazione file di configurazione GRUB…
Trovata immagine linux: /boot/vmlinuz-4.19.0-6-amd64
Trovata immagine initrd: /boot/initrd.img-4.19.0-6-amd64
fatto
Terminato di sistemare la partizione swap si può procedere con l’aggiornamento della dimensione del filesystem EXT4. Ridimensionare tramite cfdisk la partizione non implica in automatico il ridimensionamento del filesystem. Infatti con il comando df vediamo che la partizione / conserva ancora le dimensioni originali di 9.2 GB:
root@ docker :~# df -h
File system     Dim. Usati Dispon. Uso% Montato su
udev            448M     0    448M   0% /dev
tmpfs            99M  1,5M     97M   2% /run
/dev/xvda1      9,2G  1,4G    7,3G  17% /
tmpfs           492M     0    492M   0% /dev/shm
tmpfs           5,0M     0    5,0M   0% /run/lock
tmpfs           492M     0    492M   0% /sys/fs/cgroup
tmpfs            99M     0     99M   0% /run/user/1001
Per ingrandire la partizione principale occorre eseguire il comando resize2fs:
root@docker:~# resize2fs /dev/xvda1
resize2fs 1.44.5 (15-Dec-2018)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/xvda1 is now 5242880 (4k) blocks long.
Ora possiamo constatare con il comando df che anche il filesystem si è adeguato alla nuova dimensione.
root@docker:~# df -h
File system     Dim. Usati Dispon. Uso% Montato su
udev            448M     0    448M   0% /dev
tmpfs            99M  1,5M     97M   2% /run
/dev/xvda1       20G  1,4G     18G   8% /
tmpfs           492M     0    492M   0% /dev/shm
tmpfs           5,0M     0    5,0M   0% /run/lock
tmpfs           492M     0    492M   0% /sys/fs/cgroup
tmpfs            99M     0     99M   0% /run/user/1001
Alla Prossima!
Share this content: