web-dev-qa-db-fra.com

Redimensionner la partition Ubuntu / dev / sda1 dans VirtualBox VMDK lorsque / dev / sda est déjà plus grand

Il y a quelque temps, j'ai créé un VMDK qui a été mappé sur une partition brute sur un SSD.

Le disque SSD était de 128 Go. Je l'ai partitionné sous Windows (l'hôte), j'ai rendu la seconde partition accessible à Windows (NTFS) et j'ai utilisé la première partition pour le mapper sur un VMDK.

Cette première partition a une taille d'environ 48 Go.

Quand j’ai ensuite installé Ubuntu Server dans un VM qui utilisait ce VMDK, j’ai remarqué que la taille de /dev/sda qui me correspondait à 128 Go, mais j’ai créé la partition lors de l’installation d’Ubuntu à la taille du première partition, de sorte que /dev/sda1 est de 48 Go.

En raison du manque d'espace sur /dev/sda1 (il y a 5 Go gratuits), j'ai acheté un autre disque SSD et j'ai décidé de ne plus utiliser les mappages bruts. J'ai copié le VMDK via le gestionnaire de média virtuel sur le nouveau SSD. J'ai donc maintenant un fichier VMDK d'aprox. 44 Go (ne le prenez pas très exactement, c'est le problème MiB vs GiB vs GB).

J'ai alors remplacé le disque dur du VM par le VMDK nouvellement copié et démarré. Cela fonctionne comme prévu.

Maintenant j'ai ceci:

:~$ cat /proc/partitions
major minor  #blocks  name

  11        0      58100 sr0
   8        0  125034840 sda
   8        1   46873600 sda1
   8       16  488386584 sdb
   8       17  181189085 sdb1

ce

~$ Sudo fdisk -l
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 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: 0x000271d1

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1  *     2048 93749247 93747200 44.7G 83 Linux


Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 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: gpt
Disk identifier: 59B4B505-C79F-11E3-8F9C-709E29CA19D2

Device     Start       End   Sectors   Size Type
/dev/sdb1     34 362378204 362378171 172.8G Linux filesystem

et ça

:/$ df -h
Filesystem       Size  Used Avail Use% Mounted on
udev             7.9G     0  7.9G   0% /dev
tmpfs            1.6G  9.1M  1.6G   1% /run
/dev/sda1         44G   37G  5.1G  88% /
tmpfs            7.9G  1.1M  7.9G   1% /dev/shm
tmpfs            5.0M     0  5.0M   0% /run/lock
tmpfs            7.9G     0  7.9G   0% /sys/fs/cgroup
windows-avconv   1.9T  1.8T  103G  95% /home/user/windows-avconv
windows-storage  1.9T  1.8T  103G  95% /home/user/windows-storage
windows-share     50G  101M   50G   1% /home/user/windows
cgmfs            100K     0  100K   0% /run/cgmanager/fs
/dev/sdb1        170G   91G   72G  56% /media/hdd
tmpfs            1.6G     0  1.6G   0% /run/user/1000

Tout cela semble indiquer que je peux simplement émettre un

Sudo resize2fs /dev/sda1

et /dev/sda1 deviendra 119.2 GiB big sans que je doive utiliser VBoxManage modifyhd <absolute path to file> --resize <size in MB>

Suis-je correct avec cette hypothèse?


Mise à jour: j’ai fait une copie de sauvegarde du VMDK et publié un

:~$ Sudo resize2fs /dev/sda1

Voici le résultat:

resize2fs 1.42.13 (17-May-2015)
The filesystem is already 11718400 (4k) blocks long.  Nothing to do!

Dois-je émettre un

Sudo growpart /dev/sda 1

avant que resize2fs puisse fonctionner?

4
Daniel F

Vous devez d’abord redimensionner la partition en procédant comme suit:

  1. parted /dev/sda pour entrer l'invite "(en partie)"
  2. resizepart 1 pour redimensionner la partition 1
  3. -0 le redimensionne à la fin du disque. - indique qu'il devrait compter à partir de la fin du disque, pas au début. Cela fait de -0 le dernier secteur du disque - ce qui convient lorsque vous voulez le rendre aussi grand que possible. Étape 4:
  4. quit to exit parted

Les méta-informations du système de fichiers doivent indiquer la taille du disque, ce que resize2fs met à jour. Ainsi, après avoir développé, exécutez resize2fs /dev/sda1.

Il est fortement recommandé de le faire en mode utilisateur unique/mode de récupération ou avec le système de fichiers monté en lecture seule. Vous pouvez le monter en lecture seule par mount -o remount,ro /dev/sda1.

Étendre est possible avec un système de fichiers en mode RW, mais augmente les risques de perte de données. Comme il s’agit d’une machine virtuelle et que vous pouvez facilement effectuer une sauvegarde, il peut être judicieux de le faire avec l’enregistreur de volume monté.

Addendum: lancez les commandes en tant que root pour l’effet désiré.

8
vidarlo