Backup di tutti i dati sul filesystem da ridimensionare
Il ridimensionamento di un filesystem e dei dispositivi sottostanti è pericoloso e potenzialmente distruttivo se eseguito in modo errato. Il ripartizionamento dei dispositivi è altrettanto distruttivo e può comportare la perdita completa dei dati. Prima di procedere, esegui il backup del contenuto del filesystem/dispositivo da ridimensionare.
Ridimensiona (estende) del filesystem non root su una partizione del disco rigido (non LVM)
In questo esempio, il dispositivo /dev/sdb (20 Gb) contiene una singola partizione primaria (/dev/sdb1) di 20 Gb con un filesystem EXT3/4 (/data) che copre l'intera partizione. Non esiste spazio libero su disco tra la fine della partizione e la fine del dispositivo. Prima di procedere, esegui i seguenti comandi:registra l'output per un uso successivo.
# df -k /data Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 20635700 10672240 8915224 55% /data
# cat /proc/partitions | grep sdb 8 16 20971520 sdb 8 17 20964793 sdb1
# fdisk -l /dev/sdb Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 2610 20964793+ 83 Linux
Smontare il filesystem EXT3/4 da ridimensionare, ad es.:
# umount /data
Verifica il tipo di filesystem del filesystem da ridimensionare, ad esempio se EXT3, EXT4, ecc.
# blkid /dev/sdb1 /dev/sdb1: LABEL="/data" UUID="1fc0bbcd-ba86-40b6-b562-5da90fb0d7af" TYPE="ext3"
Esegui un controllo del filesystem del filesystem assicurandoti di utilizzare l'utilità di controllo del filesystem corrispondente (fsck.ext3, fsck.ext4) per il tipo di filesystem, ad esempio:
# fsck.ext3 -fy /dev/sdb1 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information data: 21/2621440 files (4.8% non-contiguous), 2750333/5241198 blocks
Utilizzare l'utilità resize2fs per ridurre il filesystem EXT3/4 in modo da utilizzare meno spazio all'interno della partizione. Esaminare l'output df registrato in precedenza per determinare quanto piccolo ridurre il filesystem. Assicurati di non ridurre il filesystem ETX3/4 a un valore inferiore alla quantità effettiva di dati contenuta all'interno.
# df -k /data Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 20635700 10672240 8915224 55% /data
# resize2fs /dev/sdb1 11G resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/sdb1 to 2883584 (4k) blocks. The filesystem on /dev/sdb1 is now 2883584 blocks long.Nota :durante l'esecuzione di resize2fs, se non viene specificata alcuna dimensione, il filesystem verrà esteso per utilizzare tutto lo spazio disponibile/rimanente nella partizione.
Esegui un controllo del filesystem del filesystem EXT3/4 ridimensionato assicurandosi di utilizzare l'utilità di controllo del filesystem corrispondente (fsck.ext3, fsck.ext4) per il tipo di filesystem in uso, ad esempio:
# fsck.ext3 -fy /dev/sdb1 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information data: 21/1441792 files (4.8% non-contiguous), 2712300/2883584 blocks
Dall'output di controllo del filesystem sopra, il filesystem ora ha una dimensione di 2883584 (* 4Kb) blocchi, ovvero:
# expr 2883584 \* 4096 11811160064 (bytes)
La dimensione della partizione deve rimanere maggiore della dimensione dell'utilizzo corrente del filesystem al suo interno. Pertanto, la partizione viene ridimensionata a un valore sicuro non inferiore a 12 Gb, ovvero:
# expr 1024 \* 12 12288 (Mb)
Utilizzare il comando fdisk per eliminare, quindi ricreare una partizione più piccola, assicurandosi di riutilizzare il blocco di avvio della partizione originale, ad esempio:
# fdisk /dev/sdb The number of cylinders for this disk is set to 2610. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 2610 20964793+ 83 Linux Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2610, default 1): [enter] Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +12288M Command (m for help): p Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 1495 12008556 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
A questo punto, lo spazio su disco tra la fine della partizione e la fine del dispositivo è disponibile per il riutilizzo.
Verifica che il sistema veda la partizione appena ridimensionata, ad esempio:
# cat /proc/partitions | grep sdb 8 16 20971520 sdb 8 17 12008556 sdb1
Se il sistema non riesce a rilevare il nuovo dimensionamento della partizione, eseguire l'utilità partprobe sul dispositivo ridimensionato, ad esempio:
# partprobe /dev/sdb
Esegui un controllo del filesystem del filesystem EXT3/4 ridimensionato assicurandosi di utilizzare l'utilità di controllo del filesystem corrispondente (fsck.ext3, fsck.ext4) per il tipo di filesystem in uso, ad esempio:
# fsck.ext3 -fy /dev/sdb1 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information data: 21/1441792 files (4.8% non-contiguous), 2712300/2883584 blocks
Monta il filesystem EXT3/4 appena ridimensionato, ad esempio:
# mount /data
Esaminare dmesg, log dei messaggi, output del comando df ecc. per verificare il corretto ridimensionamento del filesystem, ad es.:
# df -k /data Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 11353328 10668192 223764 98% /dataCentOS / RHEL:ridimensiona (estende) il filesystem EXT3/4 non root su un dispositivo non LVM (partizione del disco rigido)