Redimensionar una partición ext3 sin perder los datos almacenados

Recientemente 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

  1. Using Mozilla Firefox Mozilla Firefox 2.0.0.12 on Windows Windows XP

    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 #

  2. Using Mozilla Firefox Mozilla Firefox 2.0.0.12 on Linux Linux

    Joven Taliban!!!

    Comment by xtecuan — March 11, 2008 #

  3. Using Debian IceWeasel Debian IceWeasel 2.0.0.12 on Debian GNU/Linux Debian GNU/Linux

    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 #

  4. Using Mozilla Firefox Mozilla Firefox 3.0.1 on Linux Linux

    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 #

  5. Using Mozilla Firefox Mozilla Firefox 2.0 on SuSE Linux SuSE Linux

    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 #

  6. Using Mozilla Firefox Mozilla Firefox 3.0.3 on Ubuntu Linux Ubuntu Linux

    Se fue la luz a la mitad del proceso, como le puede hacer para reestablecer la partcion. Saludos

    Comment by josue — April 1, 2009 #

  7. Using Internet Explorer Internet Explorer 6.0 on Windows Windows XP

    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 #

  8. Using Mozilla Firefox Mozilla Firefox 3.0.8 on Gentoo Linux Gentoo Linux

    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 #

  9. Using Mozilla Firefox Mozilla Firefox 3.0.8 on Gentoo Linux Gentoo Linux

    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 #

  10. Using Internet Explorer Internet Explorer 6.0 on Windows Windows XP

    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 #

  11. Using Internet Explorer Internet Explorer 6.0 on Windows Windows XP

    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 #

  12. Using Mozilla Firefox Mozilla Firefox 3.0.8 on Gentoo Linux Gentoo Linux

    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 #

  13. Using Internet Explorer Internet Explorer 6.0 on Windows Windows XP

    Listo! lo instale con el rpm -Uvh , muchas muchas gracias! te debo unas chelas! saludos!

    Comment by Alex — April 30, 2009 #

  14. Using Internet Explorer Internet Explorer 6.0 on Windows Windows XP

    ya quedo! gracias gracias gracias! te debo unas chelas!

    Comment by Alex — April 30, 2009 #

  15. Using Mozilla Firefox Mozilla Firefox 3.6.3 on Ubuntu Linux Ubuntu Linux

    Muy util, gracias por el aporte xD

    Comment by vedant — June 8, 2010 #

  16. Using Google Chrome Google Chrome 11.0.681.0 on Ubuntu Linux Ubuntu Linux

    Voy a conseguirlo con el live CD y si no mataré un gatito al azar

    Comment by toni — February 24, 2011 #

  17. Using Mozilla Firefox Mozilla Firefox 3.5.16 on Windows Windows XP

    Parece que funciona bien, gracias

    Comment by toni — February 24, 2011 #

  18. Using Mozilla Firefox Mozilla Firefox 4.0 on Windows Windows XP

    Muchas gracias!! me fue de mucha ayuda!!
    Saludos

    Comment by Pablo — April 21, 2011 #

  19. Using Internet Explorer Internet Explorer 8.0 on Windows Windows XP

    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 #

  20. Using Mozilla Firefox Mozilla Firefox 4.0.1 on Linux Linux

    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 #

  21. Using Netscape Navigator Netscape Navigator 4.0

    […] […]

    Pingback by Problema/consulta - Redimensionar /var — May 8, 2012 #

  22. Using Mozilla Firefox Mozilla Firefox 12.0 on Ubuntu Linux Ubuntu Linux

    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 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.