111 votes

Augmenter la taille de la partition sur laquelle Ubuntu est installé ?

J'ai installé Ubuntu sur un disque. Le problème est qu'il manque d'espace disque. Il est installé sur vmware. J'ai étendu le lecteur virtuel et démarré dans Ubuntu. Mais lorsque j'ai ouvert gparted (sudo gparted), l'option déplacer/redimensionner est indisponible. C'est la partition sur laquelle Ubuntu est installé, mais j'ai besoin de la redimensionner. Avez-vous des idées ? Je suis à l'aise avec la ligne de commande

216voto

John Points 9

En fait, vous CAN agrandir le système de fichiers racine pendant qu'Ubuntu est en cours d'exécution (j'ai appris cela récemment moi-même aquí ) - cela semble incroyable mais c'est vrai :)

Voici la liste des étapes pour un scénario simple où vous avez deux partitions, /dev/sda1 est une partition ext4 sur laquelle le système d'exploitation est démarré et /dev/sdb2 est un échange. Pour cet exercice, nous voulons supprimer la partition swap et étendre le système d'exploitation de l'entreprise. /dev/sda1 à l'ensemble du disque.

  1. Comme toujours, assurez-vous d'avoir une sauvegarde de vos données - puisque nous allons modifier la table de partition, il y a une chance de perdre toutes vos données si vous faites une faute de frappe, par exemple.

  2. Exécuter sudo fdisk /dev/sda

    • utiliser p pour lister les partitions. Notez le cylindre de départ de /dev/sda1
    • utiliser d a supprimer d'abord la partition swap ( 2 ) et ensuite le /dev/sda1 partition. Cela fait très peur, mais c'est en fait inoffensif car les données ne sont pas écrites sur le disque tant que vous n'avez pas écrit les modifications sur le disque.
    • utiliser n a créer une nouvelle partition primaire. Assurez-vous que son cylindre de départ est exactement le même que celui de l'ancienne partition. /dev/sda1 avait l'habitude d'avoir. Pour le cylindre final, je suis d'accord avec le choix par défaut, qui consiste à faire en sorte que la partition s'étende sur tout le disque.
    • utiliser a pour basculer l'indicateur de démarrage sur la nouvelle /dev/sda1
    • revoir vos modifications, prenez une grande respiration et utilisez w pour écrire la nouvelle table de partition sur le disque. Vous obtiendrez un message indiquant que le noyau n'a pas pu relire la table de partition car le périphérique est occupé, mais ce n'est pas grave.
  3. Redémarrer avec sudo reboot . Lorsque le système démarre, vous aurez une plus petite système de fichiers vivre à l'intérieur d'un plus grand partición .

  4. La prochaine commande magique est resize2fs . Exécuter sudo resize2fs /dev/sda1 - ce formulaire fera en sorte que le système de fichiers prenne tout l'espace disponible sur la partition.

Voilà, nous venons de redimensionner une partition sur laquelle Ubuntu est installé, sans démarrer à partir d'un disque externe.

65voto

jtlindsey Points 1400

Deux méthodes

1. Testé dans Ubuntu Server 16.04 à 18.10

Après avoir étendu le volume dans VMware ESXi (arrêtez le vm, sauvegardez/exportez le vm, supprimez tous les snapshots, puis augmentez la taille du disque, refaites un snapshot du vm avant de suivre les étapes suivantes afin de pouvoir revenir sur votre erreur).

L'exemple suivant étend le volume de la partition racine d'un système qui utilise déjà LVM.

  1. ssh dans le système, passez en root et exécutez cfdisk
    # cfdisk

  2. enter image description here

  3. enter image description here

  4. enter image description here

  5. enter image description here

  6. enter image description here

  7. enter image description here

  8. enter image description here

  9. enter image description here

  10. enter image description here

  11. enter image description here

  12. enter image description here

  13. Après avoir quitté 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. Redémarrez le système avant l'étape suivante (sinon vous risquez d'obtenir Device /dev/sda3 not found (or ignored by filtering) )

     # shutdown now -r
  15. Initialiser le nouveau volume

     # pvcreate /dev/sda3
       Physical volume "/dev/sda3" successfully created
  16. Obtenir le nom du volume à étendre

     # 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. Étendre le groupe de volume

     # vgextend linuxetc1-vg /dev/sda3
       Volume group "linuxetc1-vg" successfully extended
  18. Prolonger la racine

     # 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. Obtenir le nom du système de fichiers pour l'étape suivante

     # 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. Étendre le système de fichiers

     # 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. Voir l'augmentation de la taille

     # 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éthode plus rapide testée dans Ubuntu Server 18.04.3 LTS

Cette méthode est un peu plus rapide que la première. Cela est dû à une nouvelle option dans le fichier cfdisk menu appelé "Redimensionner" qui permet de gagner quelques étapes.

Après avoir étendu le volume dans VMware ESXi (arrêtez le vm, sauvegardez/exportez le vm, supprimez tous les snapshots, puis augmentez la taille du disque, refaites un snapshot du vm avant de suivre les étapes suivantes afin de pouvoir revenir sur votre erreur).

L'exemple suivant étend le volume de la partition racine d'un système qui utilise déjà LVM.

  1. ssh dans le système, passez en root et exécutez cfdisk .

  2. Choisissez la partition à étendre et sélectionnez "Redimensionner". enter image description here

  3. Définissez la "Nouvelle taille". enter image description here

  4. Après avoir appuyé sur entrée, vous verrez un écran avec la note suivante "Partition [someNumber] resized" : enter image description here

  5. Ensuite, vous devrez "écrire" (enregistrer) vos modifications : enter image description here enter image description here enter image description here

  6. Arrêtez cfdisk . Lorsque vous quittez, vous pouvez voir le message "syncing disks". enter image description here enter image description here

  7. J'ai redémarré mon système à ce moment-là, mais ce n'est peut-être pas nécessaire. Maintenant vous pouvez reprendre à partir de l'étape 19 de la première méthode (répétée ci-dessous).

  8. (19) Obtenir le nom du système de fichiers pour l'étape suivante

     # 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) Étendre le système de fichiers

     # 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) Voir la taille accrue

     # 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

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

29voto

Tom De Leu Points 3164

EDIT: Comme mentionné ci-dessous par @kent, il s'agit d'une ancienne réponse qui n'est plus vraie.

Vous y êtes presque.
Vous ne peut pas redimensionnez la partition en utilisant GParted pendant qu'Ubuntu est en cours d'exécution.
Vous devrez joindre les ISO de GParted sous forme de CD à la machine virtuelle et redémarrer la machine pour que GParted soit chargé à la place d'Ubuntu (je pense que vous pouvez démarrer à partir du CD virtuel en appuyant sur F12 immédiatement après le démarrage de la machine).
Une fois que vous avez démarré dans GParted, l'option de déplacement/redimensionnement sera activée car Ubuntu n'est pas en cours d'exécution.

4voto

Tyler Montney Points 171

La méthode "plus rapide" de jtlindsey fonctionne sur les LVM mais il lui manque quelques étapes. df -h ne montrerait pas l'espace supplémentaire.

  1. Poursuivez jusqu'à l'étape 9.
  2. Exécuter sudo lsblk pour déterminer le nom de votre partition (la mienne était sda3).
  3. Exécuter sudo pvresize /dev/sda3
  4. Exécuter sudo lvextend -L +76G /dev/mapper/ubuntu--vg-ubuntu--lv (en remplaçant la taille et le nom par les vôtres)
  5. Retournez à sa méthode et terminez les étapes restantes.

Source : https://askubuntu.com/a/1047512/393368

3voto

SpiRail Points 233

J'ai remarqué que ma VM ubuntu avait un LVM qui n'utilisait tout simplement pas tout l'espace alloué. Donc pour ajouter de l'espace à mon LVM c'était tout simplement ça : https://wiki.ubuntu.com/Lvm chapitre : "redimensionnement des partitions".

Par exemple : Un moyen rapide de savoir si vous avez un LVM est de faire df -h et cherchez cette ligne :

/dev/mapper/ubuntu--vg-ubuntu--lv  689G   20G  639G   3% /

Et... vous voyez que ce n'est pas le point de montage classique de type "/dev/sda1".

Ensuite, exécutez les commandes d'extension sur cette partition.

sudo lvextend -L +500g /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

Un autre indice rapide qui m'a rappelé qu'il fallait vérifier la présence d'un LVM, c'est que j'ai remarqué, en regardant les partitions fdisk, que j'avais une grande partition /dev/sda3 qui n'était montée nulle part. (ie : quand j'ai vérifié avec la commande mount).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X