Redimensionar una partición ext3 sin perder los datos almacenados
Posted by vostorga - 05/03/08 at 10:03:05 pmRecientemente me sucedió que cuando tenia mi sistema operativo instalado y muchas cosas funcionando…..me di cuenta que necesitaba redimensionar una partición, haciéndola mas grande, así que me di en la tarea de realizarlo sin perder ni un byte, a continuación los pasos:
Requisitos preliminares:
- Realizar todas las operaciones como usuario root
- Las particiones afectadas deben de estar desmontadas
- Disponer de las herramientas fdisk, umount, fsck, tune2fs, e2fsck
- Conocer de antemano los nombres de los dispositivos (sda, hda, hdb, etc)
Todas estas herramientas se pueden encontrar prácticamente en cualquier live cd, así incluso podríamos redimensionar una partición root (como en este caso)
Manos a la obra
Realizamos un fdisk -l , que nos muestra información sobre el particionado actual:
# fdisk -l /dev/sda
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 789 6337611 83 Linux
/dev/sda2 1248 1305 465885 5 Extended
/dev/sda5 1248 1305 465853+ 82 Linux swap / Solaris
La partición que quiero agrandar es /dev/sda1 , así que obtenemos su tamaño en bloques:
# fdisk -s /dev/sda1
6337611
Nos aseguramos que la partición se encuentre en buen estado:
# fsck -n /dev/sda1
# fsck 1.38 (30-Jun-2005)
# e2fsck 1.38 (30-Jun-2005)
/dev/sda1: clean, 159036/765536 files, 1080014/1536000 blocks
Removemos el journal de /dev/sda1 , lo que la convierte en una partición ext2
# tune2fs -O ^has_journal /dev/sda1
Luego a través de fdisk eliminamos la partición /dev/sda (si, dije eliminar y tranquilos que no pasa nada malo)
# fdisk /dev/sda
Type m to get a list of all commands:
Command (m for help): p
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 789 6337611 83 Linux
/dev/sda2 1248 1305 465885 5 Extended
/dev/sda5 1248 1305 465853+ 82 Linux swap / Solaris
Procedemos a eliminar la partición no. 1 (/dev/sda1):
Command (m for help): d
Partition number (1-5): 1
Ahora creamos de nuevo la partición, tomando en cuenta que antes era primaria, la creamos así
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 1
Procedemos a especificar el primer y ultimo cilindro de la partición /dev/sda1
First cylinder (1-1305, default 1): 1
Fdisk nos dice cual es el máximo cilindro que podemos tomar (1247 en nuestro caso) :
Last cylinder or +size or +sizeM or +sizeK (1-1247, default 1247): 1247
Luego imprimimos la tabla para verificar la operación:
Command (m for help): p
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 1247 10016496 83 Linux
/dev/sda2 1248 1305 465885 5 Extended
/dev/sda5 1248 1305 465853+ 82 Linux swap / Solaris
La partición /dev/sda1 tenia la marca de booteable, así que lo establecemos de nuevo:
Command (m for help): a
Partition number (1-5): 1
Procedemos a escribir los cambios en la partición:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
Reiniciamos la computadora tal como nos recomendó fdisk y procedemos a verificar la partición con fsck:
# e2fsck -f /dev/sda1
Procedemos a redimensionar el sistema de archivos a traves del comando resize2fs, hay que notar que este comando puede redimensionar solamente sistemas de archivos ext2, he ahí la razón por la que convertimos la partición ext3 a ext2.
# resize2fs /dev/sda1
resize2fs 1.38 (30-Jun-2005)
Resizing the filesystem on /dev/sda1 to 2504124 (4k) blocks.
The filesystem on /dev/sda1 is now 2504124 blocks long.
Verificamos de nuevo que todo este bien:
# fsck -n /dev/sda1
fsck 1.38 (30-Jun-2005)
e2fsck 1.38 (30-Jun-2005)
/dev/sda1: clean, 159036/1254176 files, 1062544/2504124 blocks
Creamos el journal de nuevo, convirtiendo la partición en ext3 🙂
#tune2fs -j /dev/sda1
tune2fs 1.38 (30-Jun-2005)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
0 days, whichever comes first. Use tune2fs -c or -i to override.
Listo! hemos redimensionado la partición sin perder datos 🙂
22 Comments »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds.
Valid XHTML and CSS.
Fijate que yo lo he hecho de una manera más haragana con el gparted y lo redimensiona sin problemas también. Obvio que si no hay entorno gráfico hay que hacerlo de la forma en la que explicás.
Gracias por el aporte.
Comment by Alberto — March 6, 2008 #
Joven Taliban!!!
Comment by xtecuan — March 11, 2008 #
Con ReiserFS no hace falta todo esto.
El FS lee tu mente y sabe solo lo que es lo que tiene que hacer.
😉
Comment by dererk — March 22, 2008 #
Me da pereza y miedo hacer todo esto, pero es que tener más de 50 GB para Windows, que no uso desde hace como un año, es delito.
Comment by cousteau — September 2, 2008 #
Si, lo que se desea es reducir la partición sin perder los datos:
– A partir de “manos a la obra”, transformar a ext2, como se mencionó arriba.
– primero ejecutar resize2fs para reducir el (FS) sistema de archivos y luego fdisk para reducir la partición; debe asegurarse que el tamaño de la partición no sea menor que el “FS”.
– continuar a partir de aqui como se menciona en el “blog”.
Comment by Victor — January 12, 2009 #
Se fue la luz a la mitad del proceso, como le puede hacer para reestablecer la partcion. Saludos
Comment by josue — April 1, 2009 #
hola…tengo un problema con el resize2fs..trabajo con un sistema red hat linux 4.0 ,sistema de 32, por lo tanto no me instalo el comando resize2fs…he tratado con varios paquetes de e2fsprogs..pero no lo trae…no saben en que version…del e2fsprogs se encuentra? o como puedo instalar este comando? ya que me sale…Command Not Found…gRacias!
Comment by Alex — April 29, 2009 #
Lo puedes encontrar como e2fsprogs-1.35-12.5.el4.x86_64.rpm , un punto de búsqueda es http://rpm.pbone.net
Comment by vostorga — April 30, 2009 #
Si tu sistema es de 32 bits el rpm será algo como e2fsprogs-1.35-12.5.el4.i386.rpm
Comment by vostorga — April 30, 2009 #
hola…instale ese rpm..pero me marca conflicto:
file /usr/share/man/man8/mkfs.ext3.8.gz from install of e2fsprogs-1.35-12.5.el4 conflicts with file from package e2fsprogs-1.35-11.6.EL4
que podria hacer en este caso??
saludos y espero tu respuesta…gracias!
Comment by Alex — April 30, 2009 #
por cierto…en ese paquete al momento de instalarse…salen todos esos conflictos…no veo que salga el comando resize2fs…esa sera la version correcta, para que aparesca este comando???? saludos..
Comment by Alex — April 30, 2009 #
Eso indica que ya tienes instalado el paquete e2fsprogs. Deberías de intentar con
rpm -Uvh paquete.rpm
Además verifica los archivos instalados con
rpm -ql nombrepaquete
Comment by vostorga — April 30, 2009 #
Listo! lo instale con el rpm -Uvh , muchas muchas gracias! te debo unas chelas! saludos!
Comment by Alex — April 30, 2009 #
ya quedo! gracias gracias gracias! te debo unas chelas!
Comment by Alex — April 30, 2009 #
Muy util, gracias por el aporte xD
Comment by vedant — June 8, 2010 #
Voy a conseguirlo con el live CD y si no mataré un gatito al azar
Comment by toni — February 24, 2011 #
Parece que funciona bien, gracias
Comment by toni — February 24, 2011 #
Muchas gracias!! me fue de mucha ayuda!!
Saludos
Comment by Pablo — April 21, 2011 #
Muy, muy útil! Muchas gracias !!
Como aportación comentar que en Linux con kernel 2.6, resize2fs funciona con ext3 directamente sin necesidad de pasarlo a ext2, ahorrándonos así unos pasos.
Salud !
Comment by Kontumaz — July 12, 2011 #
necesito ayuda, despues de borrar las particiones y establecer el bloque de inicio y final reinicie, cuando volvi y revise el estado de las particiones, las 2 a las que les quite el journal me dan el sig error:
# fsck -n /dev/sda1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext2: Superblock invalid, trying backup blocks…
fsck.ext2: Bad magic number in super-block while trying to open /dev/sda1
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193
Creo que mis particiones eran ext4 y les quite el journal, ahora ya no me puedo ni para atras ni para adelante, este es mi output de fdisk -l
# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e0c18
Device Boot Start End Blocks Id System
/dev/sda1 * 1 50815 408171456 83 Linux
/dev/sda2 50816 60802 80211969 5 Extended
/dev/sda5 59397 60802 11281408 82 Linux swap / Solaris
/dev/sda6 58901 59396 3978240 82 Linux swap / Solaris
/dev/sda7 50816 58900 64940651+ 83 Linux
Partition table entries are not in disk order
Disk /dev/sdb: 4009 MB, 4009754624 bytes
255 heads, 63 sectors/track, 487 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8b143826
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 488 3915744+ b W95 FAT32
Partition 1 has different physical/logical endings:
phys=(486, 254, 63) logical=(487, 125, 22)
ambos el /dev/sda1 y sda7 son los que quiero redimensionar y aunque dice que el sistema es Linux, cuando corro Gparted me dice que tienen un formato desconocido
Comment by overrun — July 23, 2011 #
[…] […]
Pingback by Problema/consulta - Redimensionar /var — May 8, 2012 #
Muchas gracias por el artículo, me ha sido de GRAN utilidad.
Yo también quería aportar mi granito de arena indicando que ahora también está disponible “resize_reiserfs” para no tener que convertir la partición.
Un saludo
Comment by Manuel — July 27, 2012 #