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
Réponses
Trop de publicités?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.
-
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.
-
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.
- utiliser
-
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 . -
La prochaine commande magique est
resize2fs
. Exécutersudo 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.
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.
-
ssh
dans le système, passez en root et exécutezcfdisk
# cfdisk -
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
-
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
-
Initialiser le nouveau volume
# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created
-
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 ...
-
Étendre le groupe de volume
# vgextend linuxetc1-vg /dev/sda3 Volume group "linuxetc1-vg" successfully extended
-
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
-
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
-
É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.
-
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.
-
ssh
dans le système, passez en root et exécutezcfdisk
. -
Choisissez la partition à étendre et sélectionnez "Redimensionner".
-
Après avoir appuyé sur entrée, vous verrez un écran avec la note suivante "Partition [someNumber] resized" :
-
Ensuite, vous devrez "écrire" (enregistrer) vos modifications :
-
Arrêtez
cfdisk
. Lorsque vous quittez, vous pouvez voir le message "syncing disks". -
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).
-
(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 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
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.
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.
- Poursuivez jusqu'à l'étape 9.
- Exécuter
sudo lsblk
pour déterminer le nom de votre partition (la mienne était sda3). - Exécuter
sudo pvresize /dev/sda3
- Exécuter
sudo lvextend -L +76G /dev/mapper/ubuntu--vg-ubuntu--lv
(en remplaçant la taille et le nom par les vôtres) - Retournez à sa méthode et terminez les étapes restantes.
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).
- Réponses précédentes
- Plus de réponses