Cómo cambiar el tamaño/ampliar/hacer crecer una partición ext4 que no sea LVM

Cómo cambiar el tamaño/ampliar/hacer crecer una partición ext4 que no sea LVM

Ya busqué en los foros, pero no pude encontrar una buena respuesta adecuada:

Tengo un Ubuntu Server 10.04 como KVM Host y un sistema invitado, que también ejecuta 10.04. El sistema host utiliza LVM y hay tres volúmenes lógicos, que se proporcionan al invitado como dispositivos de bloques virtuales: uno para /, uno para /home y otro para swap. El invitado había sido dividido sin LVM.

Ya agrandé el volumen lógico en el sistema host: el invitado ve con éxito el disco virtual más grande. Sin embargo, este disco virtual contiene una partición "antigua", que todavía tiene el tamaño pequeño anterior.

La salida de fdisk -l es

me@produktion:/$ LC_ALL=en_US sudo fdisk -l

Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 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: 0x000c8ce7

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1        3917    31455232   83  Linux

Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1         366     2095104   82  Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
     phys=(260, 243, 47) logical=(365, 136, 44)

Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 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: 0x00027f25

   Device Boot      Start         End      Blocks   Id  System
/dev/vdc1               1        9138    73398272   83  Linux

La salida de la impresión dividida es

Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  32.2GB  32.2GB  primary  ext4         boot


Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  2146MB  2145MB  primary  linux-swap(v1)


Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

Lo que quiero lograr es simplemente hacer crecer o cambiar el tamaño de la partición /dev/vdc1 para que utilice todo el espacio proporcionado por el dispositivo de bloque virtual /dev/vdc. El problema es que cuando intento hacer eso con parted, se queja:

(parted) select /dev/vdc                                                  
Using /dev/vdc
(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

(parted) resize 1                                                         
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start?  [1049kB]?                                                         
End?  [75.2GB]? 224GB                                                     
Error: File system has an incompatible feature enabled.  Compatible features are has_journal, dir_index, filetype, sparse_super and large_file.  Use tune2fs
or debugfs to remove features.

¿Entonces Que puedo hacer? Este es un sistema de producción sin cabeza. ¿Cuál es una forma segura de hacer crecer esta partición? Sin embargo, PUEDO desmontarlo, así que ese no es el problema.

Editar: Cfdisk mostró un pequeño espacio libre sin particionar, luego la partición (marcada como "arranque" y Linux/ext3) y luego el resto del espacio sin particionar. Después de eliminar la partición y crearla nuevamente usando cfdisk, cfdisk muestra un área particionada grande (lo cual estaría bien para mí) y, como sistema de archivos, escriba solo "Linux".

Resize2fs devuelve este error resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock

Respuesta1

EsteLa página indica que la forma de hacerlo es desmontar, eliminar, volver a crear la partición con el tamaño deseado y usar resize2fs para extender la partición. La página de manual de resize2fs está de acuerdo.

Sé que "eliminar la partición" suena aterrador, pero no cambia los datos en absoluto. Simplemente cambia lo que hace referencia al contenedor. Mientras NO lo hagas, mkfs.ext4deberías estar bien.

El punto de inicio de su partición debe ser el mismo que antes o el sistema operativo no sabrá cómo interpretar lo que hay detrás. El punto final puede estar más adelante para crear una partición más grande.

Creo que el error del comentario está relacionado con mover el punto de inicio. Debe iniciarlo exactamente en el mismo punto en el que se inició. El punto final puede moverse.

Crédito apsusipor sugerir fdisk en lugar de cfdisk y confirmar el problema del punto de inicio.

Respuesta2

Un ejemplo:

/dev/sdb2 es la partición /boot. Son 100 MB, lo cual es bastante pequeño. Para aumentar esta partición ext4 en un sistema en ejecución, haga (como root o sudo):

desmontar/arrancar

separado /dev/sdb

(separado) imprimir

Modelo: ATA Patriot Torqx 2 (scsi)
Disco /dev/sdb: 32,0 GB
Tamaño del sector (lógico/físico): 512B/512B
Tabla de particiones: msdos

Número Inicio Fin Tamaño Tipo Sistema de archivos Banderas
1 1049 kB 12,9 GB 12,9 GB tipo primario=83
2 12,9 GB 13,0 GB 107 MB tipo primario ext4=83

(separado) salón 2

(separado) mkpart

¿Tipo de partición? primario/extendido? ¿Tipo de sistema de archivos principal
? [ext2]?
¿Comenzar? ¿Fin de 12,9 GB
? 13,4GB

(separado) dejar de fumar

cambiar tamaño2fs /dev/sdb2

resize2fs 1.42.6 (21 de septiembre de 2012)
El sistema de archivos en /dev/sdb2 está montado en /boot; Se requiere cambio de tamaño en línea
old_desc_blocks = 1, new_desc_blocks = 2
El sistema de archivos en /dev/sdb2 ahora tiene 498688 bloques de largo.

¡hecho!

Todos los datos permanecen en su lugar. /boot está listo para usar y tiene un tamaño de 472 MB (la partición no es tan segura con los tamaños, lea el manual para saber por qué)

Todos los datos fueron respaldados antes, pero sólo como precaución. Recomiendo hacer lo mismo.

Utilice el siguiente comando para encontrar el proceso que detiene el desmontaje de /boot si falla:

lsof/arranque

¡Buena suerte!

Respuesta3

Si intenta eliminar y volver a crear una partición, cuando su partición comience por debajo de 2048, es posible que tenga algunos problemas como los que tuve yo resize2fs.

Couldn't find valid filesystem superblock.

Defdisk versión 2.17.2, fdisk IIUC le obliga a comenzar desde 2048 para garantizar que su disco duro esté "alineado correctamente". Entonces, si su partición original comenzó antes de 2048, se encontrará con un viaje lleno de obstáculos al intentar recrear la partición.

El mejor enfoque esrsync al clonar un disco.

información relacionada