La forma más segura de hacer esto es arrancar usando un medio de emergencia (un CD en vivo o similar) y usar GParted, que cambiará el tamaño tanto de la partición como del sistema de archivos que contiene. Sin embargo, esto funcionará solo si la partición no se está utilizando actualmente.
Sin embargo, si no puede permitirse ningún tiempo de inactividad, puede intentar usar gdisk
en lugar de parted
. Deberá eliminar la partición que desea cambiar de tamaño y crear una nueva en su lugar con el mismo punto de inicio, tal como lo habría hecho con fdisk
. gdisk
está dispuesto a trabajar en un disco en uso, aunque es posible que el kernel no registre ningún cambio. En ese caso, es posible que deba usar partprobe
o kpartx
para que el kernel acepte la nueva tabla de particiones, o incluso reinicie la computadora si eso no funciona. (Todo esto debería ser bastante similar a usar fdisk
.)
Esto generalmente solo funciona con las distribuciones de Linux más recientes. Herramientas necesarias:
- partprobe (generalmente parte de parted)
- gdisk / sgdisk
Una partición GPT almacena un encabezado de respaldo al final del disco. Si ha cambiado el tamaño del dispositivo subyacente, el encabezado de la copia de seguridad estará en algún lugar en el medio. El primer paso es mover el encabezado de la partición al final del disco.
Asumiendo que el disco es /dev/sda y la partición es /dev/sda3 (también debe ser la última partición):
sgdisk -e /dev/sda
Luego elimine la última partición y vuelva a crearla:
sgdisk -d 3 /dev/sda
sgdisk -N 3 /dev/sda
Por lo general, verá un mensaje que indica que el núcleo no puede volver a cargar la tabla de particiones. Debe ejecutar partprobe para que la partición se registre con el nuevo tamaño:
partprobe /dev/sda
Si esto no tiene éxito, deberá reiniciar la máquina virtual. Después de eso, puede hacer crecer su sistema de archivos con la herramienta adecuada, para ext4, etc.:
resize2fs /dev/sda3
Precaución :ejecutar sgdisk puede ser destructivo. Asegúrese de contar con los procedimientos de copia de seguridad adecuados.
Este es un ejemplo que utiliza una herramienta automatizada para cambiar el tamaño de una partición en línea, en una sola ejecución:
sgdisk -d 1 -n 1:2048:0 -c 1:-u1:E485F29F-A1F4-4953-9DD8-799EAEA0119B -t 1:0700 /dev/xvda
Aquí hay una lista de opciones para el comando sgdisk:
- -d 1 eliminar la primera partición
- -n 1:2048:0 dice crear una nueva partición "número 1", con el sector inicial 2048. Sector final ="0", lo que significa "usar todo el espacio disponible para esta partición
- -u establece GUID único para esa partición (esto es específico para particiones GPT); podría usar 'R' para que GUID se establezca en un valor aleatorio. También puede obtener la identificación de las particiones actuales a través de
gdisk /dev/xvda; p
salida para reutilizar el mismo uid - -t 1:0700 básicamente significa que la primera partición tiene el código de tipo '0700'.
/dev/xvda fue el disco que particionamos.
Entonces elimina y crea una nueva partición en su lugar de inmediato.
PD. Algunas notas sobre el código tipo '0700'. Del hombre SGDISK(8)
-t, --typecode=partnum:{hexcode|GUID} Change a single partition's type code. You enter the type code using either a two-byte hexadecimal number, as
descrito anteriormente, o un valor GUID completamente especificado, como EBD0A0A2-B9E5-4433-87C0-68B6B72699C7.
Encontré la mejor explicación de lo que significa '0700' aquí - http://www.rodsbooks.com/gdisk/walkthrough.html
"Pero espera", dices, "¡Pensé que el disco tenía una partición FAT!" De hecho lo hace. Windows usa un único código GUID para todas sus particiones de datos, ya sean FAT o NTFS. En el pasado, el mismo código se ha utilizado en Linux para sus particiones de datos. (Más sobre esto en breve....) Por lo tanto, en este caso, varios códigos MBR diferentes se traducen en un único código GPT GUID. GPT fdisk usa, de manera algo arbitraria, el código 0x0700 (o más precisamente, EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) para todos estos.
En mi caso, creo que era una partición Linux ext4, pero el código de tipo de la partición no significa el tipo de sistema de archivos, por lo que '0700' se parece más a un tipo general para sgdisk. Al menos en los casos que he visto.
PPS. Es posible que deba ejecutar partprobe
para que el núcleo se dé cuenta del cambio de partición sin reiniciar el sistema.