Total Pageviews

Thursday, 1 March 2012

Reducir ext4 filesystem

Reducir una partición ext4 filesystem.

http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ext4grow.html



1. Tenemos un disco de 4GB con una partición /dev/sdb1


[root@gibson ~]# fdisk /dev/sdb

Command (m for help): p

Disk /dev/sdb: 4008 MB, 4008706048 bytes
51 heads, 20 sectors/track, 7675 cylinders, total 7829504 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: 0x19dd4093

Device Boot Start End Blocks Id System
/dev/sdb1 2048 7829503 3913728 83 Linux

[root@gibson ~]# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 50G 44G 3.6G 93% /
devtmpfs 2.8G 0 2.8G 0% /dev
tmpfs 2.8G 336K 2.8G 1% /dev/shm
tmpfs 2.8G 50M 2.8G 2% /run
/dev/mapper/vg_gibson-lv_root 50G 44G 3.6G 93% /
tmpfs 2.8G 50M 2.8G 2% /run
tmpfs 2.8G 0 2.8G 0% /sys/fs/cgroup
tmpfs 2.8G 0 2.8G 0% /media
/dev/mapper/vg_gibson-lv_home 240G 22G 207G 10% /home
/dev/sr0 4.1G 4.1G 0 100% /media/GO_WEST_N2
/dev/sdb1 3.7G 98M 3.5G 3% /mnt


2. Montamos el disco para crear un archivo
en el, de esta forma comprobaremos que el filesystem sigue intacto después de el resize2fs.



[root@gibson ~]# mount /dev/sdb1 /mnt
[root@gibson ~]# cd /mnt
[root@gibson mnt]# ls
lost+found
[root@gibson mnt]# touch test
[root@gibson mnt]# ls
lost+found test
[root@gibson mnt]#



3. Desmontamos el disco y forzamos un filesystem check, resize2fs nos obliga ya que necesita un e2fsck fresco, de otra manera no nos
deja ejecutarlo.


[root@gibson ~]# e2fsck -f /dev/sdb1
e2fsck 1.41.14 (22-Dec-2010)
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
/dev/sdb1: 12/244800 files (0.0% non-contiguous), 33670/978432 blocks


4. Reducimos la partición de 4G a 2GB


[root@gibson ~]# resize2fs /dev/sdb1 2G
resize2fs 1.41.14 (22-Dec-2010)
Resizing the filesystem on /dev/sdb1 to 524288 (4k) blocks.
The filesystem on /dev/sdb1 is now 524288 blocks long.

**El filesystem ha sido reducido ahora debemos borrar la particion y crear una nueva con el tamaño deseado
pero antes debemos calcular el tamaño de la partición que debemos crear.
Partición * tamano de bloque * un 3 % de margen, de esta manera no aseguramos que el disco es suficientemente grande :

524288 * 4k * 1.05 = 2202009k << este es el tamaño que utilizaremos para extender la partición.


7. Recreamos la partición.


Command (m for help): d
Selected partition 1

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):
Using default value 1
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-7829503, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-7829503, default 7829503): +2202009K

Command (m for help): p

Disk /dev/sdb: 4008 MB, 4008706048 bytes
4 heads, 12 sectors/track, 163114 cylinders, total 7829504 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: 0x19dd4093

Device Boot Start End Blocks Id System
/dev/sdb1 2048 4406065 2202009 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@gibson ~]# partprobe


8. montamos el disco de nuevo y vemos el nuevo tamaño con un df.


[root@gibson ~]# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 50G 44G 3.6G 93% /
devtmpfs 2.8G 0 2.8G 0% /dev
tmpfs 2.8G 336K 2.8G 1% /dev/shm
tmpfs 2.8G 50M 2.8G 2% /run
/dev/mapper/vg_gibson-lv_root 50G 44G 3.6G 93% /
tmpfs 2.8G 50M 2.8G 2% /run
tmpfs 2.8G 0 2.8G 0% /sys/fs/cgroup
tmpfs 2.8G 0 2.8G 0% /media
/dev/mapper/vg_gibson-lv_home 240G 22G 207G 10% /home
/dev/sr0 4.1G 4.1G 0 100% /media/GO_WEST_N2
/dev/sdb1 2.0G 95M 1.9G 5% /mnt


Comprobamos que el filesystem sigue intacto

root@gibson ~]# mount /dev/sdb1 /mnt
[root@gibson mnt]# ls
lost+found test

No comments: