Para resumir, necesito realizar todo esto automáticamente en el arranque (sistema integrado).
Nuestros ingenieros mostrarán imágenes en dispositivos de producción. Estas imágenes contendrán una pequeña tabla de particiones. En el arranque, necesito expandir automáticamente la última partición (# 3) para usar todo el espacio disponible en el disco.
Esto es lo que obtengo cuando miro el espacio libre en mi disco.
> parted /dev/sda print free
Model: Lexar JumpDrive (scsi)
Disk /dev/sda: 32.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 25.3MB 24.2MB fat16 primary legacy_boot
25.3MB 26.2MB 922kB Free Space
2 26.2MB 475MB 449MB ext4 primary
3 475MB 1549MB 1074MB ext4 primary
1549MB 32.0GB 30.5GB Free Space
Necesito expandir la partición 3 por N (30.5GB) número de bytes
¿Cómo realizo este paso automáticamente, sin aviso? Esto debe funcionar con un tamaño dinámico de espacio disponible después de la tercera partición.
resizepart
comando, y funciona, pero requiere un tamaño exacto. Necesito que sea dinámico.resize2fs
podría ser lo que estoy buscando. linux.die.net/man/8/resize2fsRespuestas:
En las versiones actuales de
parted
,resizepart
debería funcionar para la partición (parted
comprende100%
o cosas por el estilo-1s
, este último también debe--
detener las opciones de análisis en la línea de cm). Para determinar el valor exacto puede utilizarunit s
,print free
.resize2fs
viene luego para el sistema de archivos.Las versiones anteriores de
parted
tenían unresize
comando que redimensionaría tanto la partición como el sistema de archivos de una vez, incluso funcionóvfat
.En una modificación del lector electrónico Kobo, utilicé esto para cambiar el tamaño de la tercera partición de la memoria interna al máximo: (asume ciegamente que no hay una cuarta partición y una tabla y cosas de msdos)
Entonces también puede obtener los valores
/sys/block/.../
si el núcleo lo admite. Peroparted
eliminó elresize
comando, por lo que debe hacer dos pasos ahora,resizepart
para aumentar la partición y cualquier herramienta que su sistema de archivos proporcione para aumentar eso,resize2fs
por ejemploext*
.fuente
parted
No admite la extensión automática desde la línea de comando? Porque, no lo apoyan de forma interactiva. Si se ejecuta de forma interactiva, le preguntará si desea arreglar la tabla de particiones GPT para que coincida con el tamaño del disco (tipofix
), y luego puede ejecutarresizepart 3 -1
. He estado tratando de descubrir cómo hacerlo desde la línea de comandos.Al no poder escribir correctamente la partición (solicitó confirmación porque la partición estaba montada y al contrario de otras respuestas que encontré no entendía
-1s
o100%
), acabo de encontrar la herramienta growpart que hace exactamente esto.El uso es simple:
growpart /dev/sda 3
(y luegoresize2fs /dev/sda3
, u otro comando apropiado para el tipo de sistema de archivos utilizado).En Debian y Ubuntu está empaquetado como cloud-guest-utils .
fuente
La forma correcta de hacer esto es usar el hecho de que dividido tiene la noción de porcentajes. Entonces
fuente
En Ubuntu 18.04, puedo cambiar el tamaño para llenar el espacio no asignado en un script con lo siguiente:
Es posible que no sea necesario montar antes de cambiar el tamaño. Lo hice para suprimir una consulta de resize2fs para la entrada del usuario.
fuente