Cómo cambiar el tamaño / agrandar / crecer una partición ext4 no LVM

20

Ya he buscado 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 huésped como dispositivos de bloque virtual: uno para /, uno para / home y otro para intercambio. El invitado había sido particionado sin LVM.

Ya he ampliado 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 "buena", 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 impresión separada es todo

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 aumentar o cambiar el tamaño de la partición / dev / vdc1 para que use todo el espacio provisto por el dispositivo de bloque virtual / dev / vdc. El problema es que cuando trato de 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 este no es el problema.

Editar: Cfdisk mostró un pequeño espacio libre sin particiones, luego la partición (marcada como "boot" y Linux / ext3) y luego el resto del espacio sin particiones. Después de eliminar la partición y crearla nuevamente usando cfdisk, cfdisk muestra un área particionada grande (que 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

Mischa
fuente

Respuestas:

18

Esta página indica cómo desmontar, eliminar, recrear la partición con el tamaño deseado y usar resize2fs para extender la partición. La página del manual 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 mkfs.ext4hagas, deberías estar bien.

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

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

Gracias a psusi por sugerir fdisk en lugar de cfdisk y confirmar el problema del punto de inicio.

RobotHumanos
fuente
Bien, eliminé la partición con cfdisk y creé una nueva. Pero no pude redimensionarlo entonces y tampoco puedo montarlo más.
Mischa
resize2fs 1.41.11 (14-mar-2010) resize2fs: Número mágico incorrecto en el superbloque al intentar abrir / dev / vdc1 No se pudo encontrar el superbloque del sistema de archivos válido.
Mischa
1
en realidad, cfdisk mostró un pequeño espacio libre sin particiones, luego la partición (marcada como "boot" y Linux / ext3) y luego el resto del espacio sin particiones. Después de eliminar la partición y crearla nuevamente usando cfdisk, cfdisk muestra un área particionada grande (que estaría bien para mí) y como sistema de archivos escriba solo "Linux".
Mischa
8
Debe volver a crear la partición para que comience exactamente en el mismo sector que originalmente. No puedes hacer esto con cfdisk. Use fdisk o parted y póngalos en modo sector.
psusi
1
¿Hay alguna forma de cambiar el tamaño de la partición ext4 de manera que se mueva el inicio de la partición? Debido a que tengo espacio libre frente a la partición ext4 actual, no en la parte posterior ... afortunadamente tengo más espacio libre que la partición grande, así que supongo que podría hacer lo siguiente: copiar toda la partición al frente, ¿quitar el que está en la parte posterior y luego cambiar el tamaño del movido a su tamaño completo? pero eso me parece un truco terrible en este momento ...
codeling
6

Un ejemplo:

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

umount / boot

separado / dev / sdb

impresión (separada)

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

Número Inicio Fin Tamaño Tipo Sistema de archivos Indicadores
1 1049kB 12.9GB 12.9GB tipo primario = 83
2 12.9GB 13.0GB 107MB primario tipo ext4 = 83

(separado) rm 2

(separado) mkpart

Tipo de partición? primario / extendido?
tipo de sistema de archivos primario ? [ext2]?
¿Comienzo? 12.9GB
Fin? 13.4GB

(separado) salir

resize2fs / dev / sdb2

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

¡hecho!

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

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

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

lsof / boot

¡Buena suerte!

usuario157258
fuente
2
Debe usar unidades de sectores, no GB, para asegurarse de obtenerlo exactamente en el mismo lugar.
psusi
0

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

Couldn't find valid filesystem superblock.

Desde fdisk versión 2.17.2 , fdisk IIUC le obliga a comenzar a partir de 2048 para asegurarse de que su disco duro esté "alineado correctamente". Entonces, si su partición original comenzó antes de 2048, se encontrará con un viaje accidentado tratando de recrear la partición.

El mejor enfoque es rsync al clonar un disco .

hendry
fuente