¿Cuál es la forma más fácil de cambiar el tamaño de una partición ext4 (o de cualquier tipo de partición según el método) desde la línea de comandos (potencialmente con la menor cantidad de comandos, pero también la más fácil de entender)?

Usar una herramienta como Gparted es obviamente fácil en una GUI, pero ¿qué pasa con la línea de comando? Supongo que las GUI basadas en texto también pueden contar para la respuesta » s técnicamente todavía en la línea de comando. Simplemente tiene que ser fácil.

Por partición me refiero a una partición simple en un solo disco de una computadora personal (por ejemplo, en una computadora portátil). Por ejemplo, quiero cambiar el tamaño de /dev/sda4. No hay RAID, no hay más de una unidad de disco, no hay nada complicado aquí. Solo una simple partición en un solo disco (/ dev / sdaX en / dev / sda).

Comentarios

  • Probablemente lo sepas, pero Gparted es una interfaz gráfica de usuario para GNU Parted. Antes de Parted 2.4, podías cambiar el tamaño, pero esto ya ha sido eliminado. Sospecho que la única forma es hacerlo manualmente, cambiar el tamaño de la tabla de particiones, crear mapas de dispositivos y luego cambiar el tamaño del sistema de archivos.
  • ¿Has visto esto artículo sobre cómo cambiar el tamaño de las particiones?
  • No he ‘ t visto ese específico, pero la esencia es que borra la partición y luego crea una nueva de el tamaño que desea. Pero lo que ‘ estoy haciendo de manera inherente no es » eliminar » cualquier cosa, solo cambiar el tamaño. La mejor respuesta a esta pregunta probablemente sería una forma de » cambiar el tamaño » una partición, no eliminar una y crear una nueva, y los pasos de resize2fs serían completamente innecesarios y ocurrirían en segundo plano (porque, naturalmente y obviamente, el usuario también quiere usar todo el espacio en la partición por lo que no debería ‘ ser un paso adicional).

Responder

Puede usar fdisk para cambiar su tabla de particiones mientras se ejecuta. Consulte este enlace http://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/

Comentarios

  • Debe poner la información relevante del enlace, en su respuesta, debido a la rotura del enlace. Además, wordpress.com está bloqueado actualmente donde vivo (China), por lo que no puedo ‘ ni siquiera ver la » respuesta «.
  • @Thushi, salida de fdisk -l paste.ubuntu. com / 24757891 . Quiero fusionar sda5 y sda6 como sda6. ¿Daña mis datos?
  • fdisk no parece tener en cuenta los datos usados / libres, lo que podría conducir a una posible pérdida de datos (a mi entender). No ‘ creo que debería aparecer como una » fácil » de esta manera caso.

Respuesta

Si va a aumentar el tamaño tanto de la partición como del sistema de archivos , luego ejecute fdisk para aumentar el tamaño de la partición, y luego ejecute resize2fs para aumentar el tamaño del sistema de archivos.

Si va a reducir el tamaño de ambos, ejecute resize2fs primero y luego ejecute fdisk.

Respuesta

gparted usa resize2fs para cambie el tamaño de la partición. No necesita muchos argumentos. A continuación se muestran los que me han resultado útiles.

-M se reduce al tamaño mínimo del sistema de archivos.

-p muestra un indicador de porcentaje.

-P imprime el tamaño mínimo del sistema de archivos y sale.

Comentarios

  • resize2fs no ‘ no altera la tabla de particiones en absoluto, cambia el tamaño de un sistema de archivos . Después de usarlo, ‘ tendrá que cambiar el tamaño de la partición en la que estaba el sistema de archivos en consecuencia.

Respuesta

Un método programable, asumiendo que hay espacio libre directamente después de la partición a cambiar de tamaño:

echo "- +" | sfdisk -N <partnum> /dev/sdX 

… seguido de resize2fs /dev/sdX<partnum>.

El - le dice a sfdisk que reutilice el start sector existente, y el + le dice que cree el tan grande como sea posible dado el espacio disponible.

Comentarios

  • Aunque es extrañamente aterrador, esto hizo exactamente lo que quería después dd -sistema de archivos desde una imagen ddrescue a una nueva unidad que resultó ser más grande. Gracias.

Responder

Estoy respondiendo esto en caso de que tengas una situación similar a la mía. Tuve que cambiar el tamaño FileSystem (Ext4) en un disco dinámico que ejecuta Ubuntu 18.0.4 LTS como invitado. Logré cambiar el tamaño del disco desde el Host y luego cambiar el tamaño del FileSystem.

Ejecutar los comandos habituales no era posible. Por ejemplo:

$ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) The filesystem is already 13180160 (4k) blocks long. Nothing to do! 

y fdisk fue bastante complicado, también probablemente tuve que ejecutar un LiveCD para trabajar en el disco desmontado.

Estos dos comandos resolvieron mi problema fácil y rápidamente:

$ growpart /dev/sda 2 CHANGED: partition=2 start=4096 old: size=105441280 end=105445376 new: size=409595871,end=409599967 $ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) Filesystem at /dev/sda2 is mounted on /; on-line resizing required old_desc_blocks = 7, new_desc_blocks = 25 The filesystem on /dev/sda2 is now 51199483 (4k) blocks long. 

Nota: 2 en el primer comando, que indica el número de partición en el dispositivo /dev/sda.

Responder

Cambiar el tamaño de una partición raíz de Linux sin reiniciar

Introducción

Un servidor Linux típico implementado a partir de una imagen proporcionada por ProfitBricks tiene un único volumen de almacenamiento, /dev/vda. Si echamos un vistazo a eso usando fdisk veremos que el disco está dividido en dos particiones. El primero, /dev/vda1, es la partición de arranque donde reside el sistema operativo. La segunda partición, /dev/vda2, está configurada como espacio de intercambio.

root@debian:~# fdisk -l /dev/vda 

Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x0041f8a8

Device Boot Start End Sectors Size Id Type /dev/vda1 2048 96471039 96468992 46G 83 Linux /dev/vda2 96471040 104857599 8386560 4G 82 Linux swap / Solaris

En el ejemplo anterior , el volumen total de almacenamiento de 50 GB se divide en 46 GB de espacio utilizable y 4 GB para intercambio. ¿Qué pasa si después del aprovisionamiento encontramos que 46 GB de espacio en disco no son suficientes pero preferimos no agregar un volumen de almacenamiento adicional? El objetivo es aumentar la cantidad de espacio en disco disponible en el sistema de archivos raíz. Esto se puede lograr con una interrupción mínima. ¡No no necesitamos reiniciar el servidor!

Requisitos

  • Un servidor Linux creado a partir de una imagen proporcionada por ProfitBricks.
  • SSH o acceso a la consola (a través del DCD ) al servidor Linux.
  • El comando partprobe. Se puede instalar desde el paquete parted en la mayoría de las distribuciones de Linux.
  • El fdisk, swapoff, mkswap, swapon y resize2fs. Probablemente disponible de forma predeterminada.
  • Una instantánea actual u otra copia de seguridad del sistema en el que está trabajando. ¡Solo para estar seguro!

Aprovisionar espacio adicional

Para aumentar el tamaño del disco duro, acceda al DCD (Diseñador del centro de datos) y actualice el disco.

Una vez que haya aumentado la cantidad de espacio en el disco, haga clic en » aprovisionamiento «para procesar el cambio. Tarda alrededor de un minuto y su disco duro es más grande.

Luego debemos apagar el intercambio, así que asegúrese de que pueda vivir unos minutos sin espacio de intercambio:

root@debian:~# swapoff -a 

Una vez que el intercambio ha sido deshabilitado, necesitamos reconfigurar las particiones usando fdisk:

Primero borraremos las dos particiones existentes . Ejecutamos fdisk /dev/vda y luego usamos el comando d para eliminar la partición 2, y luego eliminamos la partición 1. Siga el ejemplo a continuación:

root@debian:~# fdisk /dev/vda 

Command (m for help): d Partition number (1,2, default 2):

Partition 2 has been deleted.

Command (m for help): d Selected partition 1 Partition 1 has been deleted.

Ahora volvemos a crear nuestras particiones. En el ejemplo tenemos 4 GB de espacio de intercambio. Por lo tanto, debemos mantener al menos esa cantidad de espacio disponible para la nueva partición de intercambio.

Vuelva a crear /dev/vda1 primero. Presione n para crear una nueva partición. Ingrese p para crear una partición primaria. Podemos presionar Enter para aceptar el valor predeterminado de 2048 para el primer sector. Luego ingrese un tamaño para la partición. Puede ingresar un valor en GB, por lo que si aumentamos el disco a 100 GB, restamos nuestros 4 GB para el intercambio e ingresamos + 96G para 96 GB.

Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-209715199, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199): +96G 

Created a new partition 1 of type "Linux" and of size 96 GiB.

Ahora recreamos la partición de intercambio siguiendo un proceso simalar. Presione n y luego p para crear una nueva partición primaria. Presione Ingrese para aceptar el valor predeterminado para «Primer sector». También podemos presionar Enter nuevamente para aceptar el valor predeterminado para «Último sector».

Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (201328640-209715199, default 201328640): Last sector, +sectors or +size{K,M,G,T,P} (201328640-209715199, default 209715199): 

Created a new partition 2 of type "Linux" and of size 4 GiB.

Dado que esta segunda partición se utilizará para el espacio de intercambio, necesitamos cambiar el tipo de partición. Esto se puede hacer presionando t en el indicador fdisk. Luego presionamos 2 para seleccionar la segunda partición.Si desea ver la lista de tipos de particiones disponibles, presione L ; de lo contrario, ingrese 82 para seleccionar «Linux swap / Solaris».

Command (m for help): t Partition number (1,2, default 2): 2 Partition type (type L to list all types): L 

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Rufus alignment e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs f W95 Ext"d (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT 10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/ 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto 1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep 1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT Partition type (type L to list all types): 82

fdisk nos informa amablemente que hemos cambiado el tipo de partición con el mensaje:

Changed type of partition "Linux" to "Linux swap / Solaris". 

Después de eso, guardamos usando el w y se devuelven a un indicador de shell:

Command (m for help): w 

Puede recibir un mensaje como este antes del shell mensaje:

The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy 

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

Olvidemos el reinicio y, en su lugar, informemos al kernel sobre las nuevas particiones usando partprobe :

root@debian:~# partprobe 

Deberíamos regresar al indicador de shell sin salida de partprobe.

Ahora necesitamos cambiar el tamaño de nuestro sistema de archivos en /dev/vda1:

root@debian:~# resize2fs /dev/vda1 resize2fs 1.42.12 (29-Aug-2014) Filesystem at /dev/vda1 is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3 

El fileyst em en /dev/vda1 ahora tiene 25165824 (4k) bloques de longitud.

Inicialice la nueva ubicación de intercambio de /dev/vda2:

root@debian:~# mkswap /dev/vda2 Setting up swapspace version 1, size = 4193276 KiB no label, UUID=c55c25a2-a386-4653-8455-4d9030586dd2 

Finalmente, editamos /etc/fstab y reemplazamos el UUID antiguo con el nuevo devuelto en la salida del mkswap comando. La línea para cambiar no tiene ningún valor para «punto de montaje» y tiene «tipo» establecido en swap .

# /etc/fstab: static file system information. # # Use "blkid" to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> UUID=332f8fb5-ff1f-4297-b512-f2c93a277296 / ext4 errors=remount-ro 0 1 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 UUID=c55c25a2-a386-4653-8455-4d9030586dd2 none swap sw 0 0 

Después de editar /etc/fstab, necesitamos habilitar el intercambio nuevamente:

root@debian:~# swapon -a 

Verificar

Podemos verificar el nuevo tamaño de disco más grande utilizando df y / o fdisk.

Device Boot Start End Sectors Size Id Type /dev/vda1 2048 201328639 201326592 96G 83 Linux /dev/vda2 201328640 209715199 8386560 4G 82 Linux swap / Solaris 

También podemos confirmar que el servidor no se reinició observando la salida de uptime:

$ uptime 23:54:21 up 7 days, 1:15, 1 user, load average: 0.00, 0.01, 0.05 

Resumen

Tenemos aumentó con éxito la cantidad de espacio en disco disponible en nuestro servidor Linux.

Referencia

https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/

O

https: //web.archive .org / web / 20201113021238 / https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *