Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

viernes, 31 de agosto de 2012

Redimensionar partición ext4 sin pérdida de datos


 En ocasiones nos podemos encontrar con el problema de que queremos redimensionar una partición pero esta contiene datos (o incluso el sistema) y no podemos (o no nos apetece) salvar todos los datos y empezar de cero. Así que una alternativa buena puede ser la de redimensionar la partición actual y hacerla más grande o más pequeña. Simplemente tenemos que tener en cuenta que para hacerla más pequeña nunca podemos/debemos hacerla más pequeña que el espacio libre del que dispongamos, ya que sino tendremos pérdida de datos y un disgusto enorme. Así pues, usando unas sencillas herramientas que ya vienen con el sistema, podremos redimensionar fácilmente nuestra partición. Usaremos resize2fs para ello:

Primero nos aseguramos del espacio libre que nos queda:

root@server:/# df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/sdb1                        3,7T  1,5T  2,1T  42% /users/home


Y ahora procedemos a redimensionar:

root@server:~# resize2fs /dev/sdb1 2500G
resize2fs 1.42 (29-Nov-2011)
Por favor ejecute antes 'e2fsck -f /dev/sdb1'.





Vaya!! Parece que hay que comprobar el disco antes. Parece lógico. Ante todo asegurar los datos:

root@server:~# e2fsck -f /dev/sdb1
e2fsck 1.42 (29-Nov-2011)
Paso 1: Verificando nodos-i, bloques y tamaños

Paso 2: Verificando la estructura de directorios
Paso 3: Revisando la conectividad de directorios
No se encontró /lost+found.  Crear? no
Paso 4: Revisando las cuentas de referencia
Paso 5: Revisando el resumen de información de grupos
/dev/sdb1: ***** EL SISTEMA DE FICHEROS FUE MODIFICADO *****

/dev/sdb1: 3281220/244064256 files (0.4% non-contiguous), 383150021/976236032 blocks


Venga.. ahora si ¿no?:

resize2fs 1.42 (29-Nov-2011)
Resizing the filesystem on /dev/sdb1 to 655360000 (4k) blocks.
The filesystem on /dev/sdb1 is now 655360000 blocks long.


Bien, pues ahora ya podemos continuar. Lo que haremos ahora es borrar la partición. Si, la borramos pero podemos estar tranquilos porque de hacerlo bien, no perderemos datos.

Para ello usaremos fdisk y borraremos la partición (en el ejemplo la /dev/sdb1).
Si por casualidad usais discos muy grandes (o RAIDS con gran capacidad), tener en cuenta que fdisk no os servirá:

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


WARNING: The size of this disk is 4.0 TB (3998663944192 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID 
partition table format (GPT).

Si usais fdisk en la nueva partición empezad por el bloque 1 y acabad por el bloque que os pusiera el resize2fs (en nuestro ejemplo 655360000) y multiplicarlo por 4 (que son los k del bloque). Para daros un poco de margen, multiplicar el resultado por 1.03 o 1.05 y así tendréis un poco más de espacio  no vais tanto al milímetro.

Si usais parted la cosa es similar:
root@server:~# parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) mklabel gpt                                                     
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
Warning: /dev/sdb contains GPT signatures, indicating that it has a GPT table.  However, it does not have a valid fake msdos partition table, as it should.  Perhaps it was
corrupted -- possibly by a program that doesn't understand GPT partition tables.  Or perhaps you deleted the GPT table, and are now using an msdos partition table.  Is this a GPT
partition table?
Yes/No? Yes                                                              
(parted)                                                                 
(parted) print                                                           
Model: DELL MD32xxi (scsi)
Disk /dev/sdb: 3999GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart primary 0GB 3000GB
(parted) print                                                           
Model: DELL MD32xxi (scsi)
Disk /dev/sdb: 3999GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  3000GB  3000GB  ext4         primary

(parted) quit                                                            
Information: You may need to update /etc/fstab.


Con estos pasos tendréis que tener vuestra partición redimensionada.


Fuentes: http://www.howtoforge.com/linux_resizing_ext3_partitions


That u don't know what you've got 'til it's gone