¿Aumentar el tamaño de la partición en la que está instalado Ubuntu?

60

Tengo Ubuntu instalado en una unidad. El problema es que se está quedando sin espacio en disco. Esto está instalado en vmware. Expandí el disco virtual y arranqué en ubuntu. Pero cuando abrí gparted (sudo gparted), la opción mover / cambiar el tamaño no está disponible. Esta es la partición en la que está instalado Ubuntu, pero necesito cambiar su tamaño. ¿Algunas ideas? Me siento cómodo usando la línea de comando

usuario51447
fuente
Puede ver cómo lo hacen raspi-configpara Raspberry Pi, donde expandir el sistema de archivos raíz es algo que hace casi cada vez que configura un nuevo Raspberry Pi. github.com/RPi-Distro/raspi-config/blob/…
sshow

Respuestas:

16

Ya casi has llegado.
No puede cambiar el tamaño de la partición usando GParted mientras Ubuntu se está ejecutando.
Deberá adjuntar los ISO de GParted como un CD a la máquina VM y reiniciar la máquina para que se cargue el GParted en lugar de Ubuntu (creo que puede arrancar desde el CD virtual presionando F12 inmediatamente después de iniciar la máquina).
Una vez que haya arrancado en GParted, la opción de mover / cambiar el tamaño se habilitará ya que Ubuntu no se está ejecutando actualmente.

feroz
fuente
139

De hecho, PUEDES agrandar el sistema de archivos raíz mientras Ubuntu se está ejecutando (aprendí esto recientemente aquí mismo ), esto suena increíble pero es cierto :)

Aquí está la lista de pasos para un escenario simple en el que tiene dos particiones, /dev/sda1es una partición ext4 desde la que se inicia el sistema operativo y /dev/sdb2se intercambia. Para este ejercicio, queremos eliminar la partición de intercambio y extenderla /dev/sda1a todo el disco.

  1. Como siempre, asegúrese de tener una copia de seguridad de sus datos, ya que vamos a modificar la tabla de particiones, existe la posibilidad de perder todos sus datos si comete un error tipográfico, por ejemplo.

  2. correr sudo fdisk /dev/sda

    • use ppara enumerar las particiones. Tome nota del cilindro de inicio de/dev/sda1
    • use dpara eliminar primero la partición de intercambio ( 2) y luego la /dev/sda1partición. Esto da mucho miedo, pero en realidad es inofensivo ya que los datos no se escriben en el disco hasta que escribe los cambios en el disco.
    • use npara crear una nueva partición primaria. Asegúrese de que su cilindro de arranque sea exactamente el mismo que /dev/sda1solía tener. Para el cilindro final de acuerdo con la opción predeterminada, que es hacer que la partición abarque todo el disco.
    • use apara alternar la bandera de arranque en el nuevo/dev/sda1
    • revise sus cambios, respire profundamente y úselo wpara escribir la nueva tabla de particiones en el disco. Recibirá un mensaje que le indica que el núcleo no pudo volver a leer la tabla de particiones porque el dispositivo está ocupado, pero está bien.
  3. Reiniciar con sudo reboot. Cuando se inicie el sistema, tendrás un sistema de archivos más pequeño dentro de una partición más grande .

  4. El siguiente comando mágico es resize2fs. Ejecutar sudo resize2fs /dev/sda1: este formulario utilizará de manera predeterminada el sistema de archivos para que ocupe todo el espacio disponible en la partición.

Eso es todo, acabamos de cambiar el tamaño de una partición en la que está instalado Ubuntu, sin arrancar desde una unidad externa.

Sergey
fuente
@EliahKagan: Por favor, eche un vistazo a la respuesta (de Gilles) a la que me vinculé. La idea es que es posible usar fdiskpara agrandar la partición , mientras que el sistema operativo continúa usando el sistema de archivos más pequeño. Entonces. después de reiniciar, después de que el núcleo vuelve a leer la tabla de particiones actualizada, podemos cambiar el tamaño del sistema de archivos porque ahora vive en una partición más grande.
Sergey
1
@ Isaac: Sí, todavía tenemos que reiniciar para hacer que el núcleo vuelva a leer la tabla de particiones. Sin embargo, un reinicio rápido en muchos escenarios es un problema mucho más pequeño que arrancar desde un medio externo (piense en máquinas remotas, máquinas sin cabeza, VPS, etc.)
Sergey
2
Dos notas rápidas: 1. Puede usar dfpara mostrar el espacio "resultante" después de esto (confirme que funcionó), y 2. ¡recuerde recrear algo de espacio de intercambio!
Christian Rondeau
1
Muchas gracias. Ubuntu nunca usó el espacio que le di al disco virtual de VirtualBox. Ahora se porque. ¡Muchas gracias!
penderi
1
@Sid: Es muy importante que el cilindro de arranque sea exactamente el mismo. Si el espacio libre está en cualquier lugar, pero inmediatamente después de la partición, debe usar otro método (que requeriría arrancar desde otra unidad)
Sergey
21

Dos métodos

1. Probado en Ubuntu Server 16.04 a 18.10

Después de extender el volumen en VMware ESXi (apagar vm, hacer copia de seguridad / exportar vm, eliminar todas las instantáneas, luego aumentar el número en el tamaño del disco, tomar una instantánea de vm nuevamente antes de seguir los siguientes pasos para que pueda revertir el error / error).

El siguiente ejemplo es extender el volumen en la partición raíz en un sistema que ya está usando LVM.

  1. sshen el sistema, cambie a root y ejecute cfdisk
    # cfdisk

  2. ingrese la descripción de la imagen aquí

  3. ingrese la descripción de la imagen aquí

  4. ingrese la descripción de la imagen aquí

  5. ingrese la descripción de la imagen aquí

  6. ingrese la descripción de la imagen aquí

  7. ingrese la descripción de la imagen aquí

  8. ingrese la descripción de la imagen aquí

  9. ingrese la descripción de la imagen aquí

  10. ingrese la descripción de la imagen aquí

  11. ingrese la descripción de la imagen aquí

  12. ingrese la descripción de la imagen aquí

  13. Después de salir de cfdisk

     # fdisk -l /dev/sda 
     Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 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: 0xc8b647ff
    
     Device     Boot    Start      End  Sectors  Size Id Type
     /dev/sda1  *        2048   999423   997376  487M 83 Linux
     /dev/sda2        1001470 16775167 15773698  7.5G  5 Extended
     /dev/sda3       16775168 41943039 25167872   12G 8e Linux LVM (***** See new partition /dev/sda3*****)
     /dev/sda5        1001472 16775167 15773696  7.5G 8e Linux LVM
    
  14. Reinicie el sistema antes del siguiente paso (o de lo contrario podría obtener Device /dev/sda3 not found (or ignored by filtering))

     # shutdown now -r
    
  15. Inicializar el nuevo volumen.

     # pvcreate /dev/sda3
       Physical volume "/dev/sda3" successfully created
    
  16. Obtenga el nombre del volumen para extender

     # vgdisplay
       --- Volume group ---
       VG Name               linuxetc1-vg (***** this is vg i'm extending*****)
       System ID             
       Format                lvm2
       Metadata Areas        1
       Metadata Sequence No  3
       VG Access             read/write
       VG Status             resizable
       MAX LV                0
       Cur LV                2
       Open LV               2
       Max PV                0
       Cur PV                1
       Act PV                1
       VG Size               7.52 GiB
       PE Size               4.00 MiB
       Total PE              1925
       Alloc PE / Size       1925 / 7.52 GiB
       Free  PE / Size       0 / 0  
       ...
    
  17. Ampliar grupo de volúmenes

     # vgextend linuxetc1-vg /dev/sda3
       Volume group "linuxetc1-vg" successfully extended
    
  18. Extender la raíz

     # lvextend -l+100%FREE /dev/linuxetc1-vg/root
       Size of logical volume linuxetc1-vg/root changed from 6.52 GiB (1669 extents) to 18.52 GiB (4741 extents).
       Logical volume root successfully resized.
    
    
     Or if you only wanted to give 5 more GB to root
     # lvextend -L +5g /dev/linuxetc1-vg/root
    
  19. Obtenga el nombre del sistema de archivos para el siguiente paso

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root  6.3G  2.5G  3.5G  42% /            (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    
  20. Ampliar sistema de archivos

     # resize2fs /dev/mapper/linuxetc1--vg-root
     resize2fs 1.42.13 (17-May-2015)
     Filesystem at /dev/mapper/linuxetc1--vg-root is mounted on /; on-line resizing required
     old_desc_blocks = 1, new_desc_blocks = 2
     The filesystem on /dev/mapper/linuxetc1--vg-root is now 4854784 (4k) blocks long.
    
  21. Ver el tamaño aumentado

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root   19G  2.5G   15G  15% /         (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    

2. Método más rápido probado en Ubuntu Server 18.04.3 LTS

Este método es un poco más rápido que el primero. Esto se debe a una nueva opción en el cfdiskmenú llamada "Cambiar tamaño" que guarda algunos pasos.

Después de extender el volumen en VMware ESXi (apagar vm, hacer copia de seguridad / exportar vm, eliminar todas las instantáneas, luego aumentar el número en el tamaño del disco, tomar una instantánea de vm nuevamente antes de seguir los siguientes pasos para que pueda revertir el error / error).

El siguiente ejemplo es extender el volumen en la partición raíz en un sistema que ya está usando LVM.

  1. sshen el sistema, cambie a root y ejecute cfdisk.

  2. Elija la partición para ampliar y seleccione "Cambiar tamaño". ingrese la descripción de la imagen aquí

  3. Establezca el "Nuevo tamaño". ingrese la descripción de la imagen aquí

  4. Después de presionar enter, verá la pantalla con la siguiente nota "Partition [someNumber] redimensionada": ingrese la descripción de la imagen aquí

  5. A continuación, deberá "Escribir" (guardar) sus cambios: ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

  6. Dejar de fumar cfdisk. Cuando salga, puede ver el mensaje "sincronización de discos". ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

  7. Reinicié mi sistema en este punto, pero puede que no sea necesario. Ahora puede continuar desde el paso 19 desde el primer método (que se repite a continuación).

  8. (19) Obtenga el nombre del sistema de archivos para el siguiente paso

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root  6.3G  2.5G  3.5G  42% /            (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    
  9. (20) Extender el sistema de archivos

     # resize2fs /dev/mapper/linuxetc1--vg-root
     resize2fs 1.42.13 (17-May-2015)
     Filesystem at /dev/mapper/linuxetc1--vg-root is mounted on /; on-line resizing required
     old_desc_blocks = 1, new_desc_blocks = 2
     The filesystem on /dev/mapper/linuxetc1--vg-root is now 4854784 (4k) blocks long.
    
  10. (21) Ver el tamaño aumentado

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root   19G  2.5G   15G  15% /         (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    

Artículos:
https://wiki.ubuntu.com/Lvm
http://www.geoffstratton.com/expand-hard-disk-ubuntu-lvm

jtlindsey
fuente
Guau. Esto fue extremadamente útil. Ojalá pudiera votar más de una vez. ¡Gracias!
Mario Tacke
1
Funcionó perfectamente en 18.10 corriendo bajo ESXi. ¡Gracias!
John Vinopal
Absolutamente fabuloso, justo lo que necesitaba como un novato de Linux. .
bigbadmouse
Gran guía! Seguido de esto para expandir el almacenamiento en Ubuntu ejecutándose como Proxmox VM.
tokenizer_fsj
¡Fantástico! Gracias por esto. Esto funcionó para 18.04 ejecutándose en ESXi.
one.time
0

La respuesta de Sergey fue excelente. Sin embargo, si tiene el espacio vacío no directamente en el siguiente dispositivo, deberá eliminar otros dispositivos. Por ejemplo:

Device     Boot    Start       End  Sectors Size Id Type
/dev/sda1  *        2048  33556477 33554430  16G 83 Linux
/dev/sda2       33556478  41940991  8384514   4G  5 Extended
/dev/sda3       41940992 125829119 83888128  40G 83 Linux
/dev/sda5       33556480  41940991  8384512   4G 82 Linux swap / Solaris

En el caso anterior, si desea combinar /dev/sda3con /dev/sda1, lo que se necesita para eliminar /dev/sda1, /dev/sda2y /dev/sda3(con dmando), y volver a añadir /dev/sda2y actualizar su tipo (con ny tcomandos).

Jaycode
fuente
0

Logré ampliar mi partición ext4 primaria utilizando la metodología descrita aquí .

Algunas notas de mi experiencia personal:

  • El ejemplo de enlace es para reducir la partición, por lo tanto, el orden es resize2fs primero y luego fdisk. Al agrandar la partición (como en mi caso), el orden debe ser fdisk primero, reiniciar y luego cambiar el tamaño de 2fs. Además, cuando se usa fdisk, las particiones primaria y extendida deben eliminarse y redefinirse.
  • Arranqué Ubuntu desde otra unidad y luego trabajé en esta unidad que en realidad era espejo (usando dd) de la unidad anterior. Lo hizo arrancable usando GParted
  • La versión actual de resize2fs (estoy usando Ubuntu 12.04LTS) es compatible con ext4: no es necesario realizar las acciones descritas en el enlace para cambiarlo ext2.
Elchanan
fuente
1
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Braiam