
resize2fs Esta es una herramienta que permite que el sistema de archivos ext4 use el espacio adicional que agregó a la partición. Sin él, la partición puede ser más grande, pero el sistema de archivos todavía ve el tamaño anterior, por lo que el espacio disponible en el disco no aumenta.
Una situación común es extender una partición usando fdisk o parted, luego ejecutar df -h y observar que el tamaño no ha cambiado. Esto se debe a que solo se extiende la partición, pero aún es necesario cambiar el tamaño del sistema de archivos. resize2fs Este problema se resuelve ampliando el sistema de archivos ext4 para llenar el nuevo espacio disponible.
En esta guía, explicaremos qué hace resize2fs, cómo expandir un sistema de archivos ext4 después de cambiar el tamaño de una partición y cómo verificar los cambios en Linux.
¿Por qué existe resize2fs?
Cuando usas cambiar el tamaño de la partición fdisk, parted, growparto la herramienta de expansión de disco del proveedor de la nube, solo la partición en sí se hace más grande. El sistema de archivos dentro de esa partición es una capa separada y todavía piensa que tiene el tamaño anterior.
Esto sucede porque externo 4 Almacena su información de tamaño en metadatos del sistema de archivos, incluidos los superbloques. No detecta automáticamente si la partición subyacente ha crecido.
eso esta ahí resize2fs Adelante. Actualiza los metadatos del sistema de archivos para que externo 4 Se puede utilizar el espacio recién disponible. Una vez que lo ejecute, el sistema de archivos se expandirá para coincidir con la partición más grande.
Si omite este paso, el espacio adicional quedará sin utilizar. Incluso si la partición es más grande, el comando es el siguiente df -h El tamaño antiguo del sistema de archivos seguirá mostrándose porque no se ha cambiado el tamaño de ext4.
Piénselo de esta manera: ampliar las particiones le brinda una habitación más grande, pero resize2fs Simplemente retire la pared para que el sistema de archivo pueda utilizar el espacio adicional. Sin él, el almacenamiento adicional está ahí, pero su sistema no puede acceder a él.
Verifique el espacio disponible antes de cambiar el tamaño
Antes de cambiar el tamaño, es una buena idea verificar el tamaño actual del sistema de archivos y la partición. Esto puede ayudarle a confirmar que la partición se ha extendido y que sólo es necesario cambiar el tamaño del sistema de archivos.
Primero, verifique el tamaño del sistema de archivos:
df -h /
Ejemplo de salida:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 18G 1.5G 93% /
A continuación, verifique el tamaño real de la partición:
lsblk /dev/sda
Ejemplo de salida:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk └─sda1 8:1 0 50G 0 part /
En este ejemplo, la partición (/dev/sda1) ya está 50 GBpero el sistema de archivos sigue siendo solo 20 GB. extra 30 GB Existe en la partición pero aún no lo utiliza el sistema de archivos.
esta es la situación resize2fs es necesario. Extiende el sistema de archivos ext4 para que se pueda utilizar todo el espacio disponible en una partición más grande.
También puede verificar el tipo de sistema de archivos antes de continuar:
df -Th /
Ejemplo de salida:
Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 20G 18G 1.5G 93% /
Si el tipo de sistema de archivos es externo 4estás listo para cambiar su tamaño usando resize2fs.
Si el disco estuvo recientemente en un VPS en la nube (como DigitalOcean, Linode o AWS), es posible que el sistema operativo aún no haya escaneado el nuevo tamaño del disco, así que ejecute:
echo 1 > /sys/class/block/sda/device/rescan
Cambiar el tamaño del sistema de archivos para usar el nuevo espacio
Una vez que confirme que la partición se ha extendido, el siguiente paso es cambiar el tamaño de la partición externo 4 sistema de archivos para que pueda utilizar el espacio extra.
correr resize2fs Para particiones:
sudo resize2fs /dev/sda1
Ejemplo de salida:
resize2fs 1.47.0 (5-Feb-2023) Filesystem at /dev/sda1 is mounted at /; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 7 The filesystem on /dev/sda1 is now 13107200 (4k) blocks long.
La parte importante es la última línea, que confirma que el sistema de archivos se expandió exitosamente. Debido a que ext4 admite el cambio de tamaño en línea, los sistemas de archivos generalmente pueden crecer mientras se instalan y se usan activamente.
Una vez completado el cambio de tamaño, verifique el nuevo tamaño:
df -h /dev/sda1
Ejemplo de salida:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 18G 30G 38% /
El sistema de archivos ahora coincide con el tamaño completo de la partición. En este ejemplo, la partición se expande a 50 GBtodo este espacio ahora está disponible para el sistema de archivos.
Si desea realizar una verificación rápida del antes y el después, compare el siguiente resultado df -h antes de correr resize2fs Y después de terminar. El tamaño del sistema de archivos debe aumentarse para que coincida con el tamaño de la partición mostrada lsblk. Si es así, el cambio de tamaño se realizó correctamente y el nuevo espacio libre estará disponible para su uso.
Hacer crecer el sistema de archivos desmontado (cambiar el tamaño sin conexión)
Al cambiar el tamaño de un sistema de archivos raíz montado, resize2fs A menudo, las operaciones se pueden realizar en línea sin ningún tiempo de inactividad. Sin embargo, para particiones desmontadas, es mejor realizar primero una verificación del sistema de archivos.
Primero desmonte la partición:
sudo umount /dev/sdb1
A continuación, realice una verificación del sistema de archivos. e2fsck:
sudo e2fsck -f /dev/sdb1
Ejemplo de salida:
e2fsck 1.47.0 (5-Feb-2023) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sdb1: 11/655360 files (0.0% non-contiguous), 66783/2621440 blocks
e2fsck Verifique el sistema de archivos para detectar inconsistencias y asegúrese de que todo esté en buen estado antes de cambiar el tamaño. Si las cinco pasadas se completan sin errores, el sistema de archivos está listo para cambiar el tamaño.
Ahora ejecuta resize2fs:
sudo resize2fs /dev/sdb1
Ejemplo de salida:
resize2fs 1.47.0 (5-Feb-2023) Filesystem at /dev/sdb1 is now 5242880 (4k) blocks long.
Una vez que se complete el cambio de tamaño, monte la partición nuevamente y verifique el nuevo tamaño:
sudo mount /dev/sdb1 /mnt/data df -h /dev/sdb1
actualizado df -h El resultado debería mostrar el tamaño más grande del sistema de archivos.
Un error común que verá es:
Please run e2fsck -f /dev/sdXN first
esto simplemente significa resize2fs Quiere comprobar el sistema de archivos antes de realizar cambios, así que ejecute e2fsck -f En la partición desmontada, luego ejecute resize2fs de nuevo.
Como regla general:
- Sistema de archivos ext4 montado:
resize2fsPor lo general, se puede cultivar en línea. - Sistema de archivos ext4 desmontado: correr
e2fsck -fPrimero, luego cambie el tamaño a 2fs. - Siempre verifique los resultados con
df -hUna vez completado el cambio de tamaño.
correr por un minuto e2fsck El cambio de tamaño sin conexión puede ayudar a detectar problemas en el sistema de archivos de manera temprana y garantizar un proceso de cambio de tamaño sin problemas.
Si esto le salva de una emergencia de disco lleno en el momento equivocado, Quién administra el servidor Linux. Eventualmente se encontrarán con esta situación.
Expandir el sistema de archivos en el volumen lógico LVM
Si su sistema de archivos está almacenado en un volumen lógico LVM en lugar de una partición estándar, primero deberá ampliar el volumen lógico y luego cambiar el tamaño del sistema de archivos.
Para agregar 10 GB al volumen lógico, ejecute:
sudo lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Qué es esto lvextend Las opciones significan:
-L +10GAgrega 10 GB al tamaño actual del volumen lógico./dev/mapper/ubuntu--vg-ubuntu--lvEs la ruta del volumen lógico que se va a ampliar.
Ejemplo de salida:
Size of logical volume ubuntu-vg/ubuntu-lv changed from 20.00 GiB to 30.00 GiB. Logical volume ubuntu-vg/ubuntu-lv successfully resized. resize2fs 1.47.0 (5-Feb-2023) Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is now 7864320 (4k) blocks long.
En este ejemplo, el volumen lógico crece de 20 GB a 30 GB y resize2fs Amplíe instantáneamente el sistema de archivos ext4 para utilizar el nuevo espacio disponible.
Puede verificar los resultados de las siguientes maneras:
df -h Or lsblk
Ambos comandos deberían mostrar el tamaño más grande del sistema de archivos.
Si no desea especificar un tamaño exacto, sino que desea utilizar todo el espacio disponible en el grupo de volúmenes, utilice:
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
aquí, -l +100%FREE Le dice a LVM que asigne todos los volúmenes libres restantes en el grupo de volúmenes a volúmenes lógicos.
En muchas distribuciones modernas de Linux, incluso puedes combinar estos dos pasos en un solo comando:
sudo lvextend -r -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv
este -r Opción para ejecutar automáticamente la herramienta de cambio de tamaño del sistema de archivos adecuada después de extender un volumen lógico, lo que hace que el proceso sea más rápido y menos propenso a errores. Este suele ser el método más sencillo cuando se utilizan sistemas de archivos ext4 en LVM.
Si esto aclara su confusión sobre particiones y sistemas de archivos, ¿Quién quiere saber por qué? df -h Después de cambiar el tamaño del disco, todavía muestra el tamaño anterior.
en conclusión
Ahora sabes por qué resize2fs Cambiar el tamaño de la partición en sí es un paso aparte. El sistema de archivos y la partición son capas diferentes y cada capa necesita ser informada de los cambios realizados en la otra capa. Para una partición raíz montada, resize2fs Procesado en línea. Para particiones desmontadas, ejecute e2fsck -f Primero.
Antes de hacer esto en un sistema de producción, pruébelo en un disco de prueba o en una instantánea de VPS en la nube. Extiende el disco por 5G en la consola del proveedor y realiza la secuencia completa: lsblk, resize2fs, df -h.
¿Alguna vez se ha encontrado con una situación en la que el disco muestra el tamaño correcto pero df todavía muestra el disco antiguo? Deje un comentario a continuación y déjeme saber qué herramienta o paso lo activó..
Si este artículo fue útil, Con alguien de tu equipo.








