web-dev-qa-db-fra.com

Redimensionner une image disque

Je ne parviens pas à augmenter la taille d'une image disque Ubuntu. Je sais que je dois effectuer les étapes suivantes - au moins -:

$ # 1. resize the image using qemu-img
$ qemu-img resize linux-x86.img +12G
$ # this step succeeded
$ # 2. mount, chroot
$ Sudo mount -o loop,offset=32256 linux-x86.img /mnt
$ Sudo mount --bind /proc /mnt/proc
$ Sudo mount --bind /dev /mnt/dev
$ cd /mnt
$ Sudo chroot .

Maintenant, les étapes suivantes sont effectuées dans chroot:

$ df -h
df: cannot read table of mounted file systems: No such file or directory
$ # fix this error 
$ cp /proc/mounts /etc/mtab
$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/loop0            496M  458M   13M  98% /
udev                  2.0G  4.0K  2.0G   1% /dev

Vous pouvez constater que l’espace disponible n’est que de 13 Mo, même si j’ai augmenté la taille de l’image à 12 Go de plus.

J'ai essayé de démarrer fdisk, mais la table de partition était vide:

$ fdisk /dev/loop0
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xa95b4787.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.


The number of cylinders for this disk is set to 1631.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p

Disk /dev/loop0: 13.4 GB, 13421609472 bytes
255 heads, 63 sectors/track, 1631 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa95b4787

      Device Boot      Start         End      Blocks   Id  System

Command (m for help): 

Voici/etc/mtab pour votre information:

/dev/loop0 / ext2 rw,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=2010936k,nr_inodes=502734,mode=755 0 0

Aussi, voici le résultat de "uname -a":

Linux ubuntu 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz GenuineIntel GNU/Linux

Quelqu'un peut-il aider s'il vous plaît?

1
user8420488483439

Eh bien, vous avez la partie disque du redimensionnement. Ce que vous n'avez pas fait, c'est redimensionner la partition, ce qui est une étape distincte du redimensionnement du système de fichiers. La raison pour laquelle fdisk ne trouve aucune partition est parce qu’il n’a pas accès à tout le "disque". Fondamentalement, ce que vous avez fait est fdisk/dev/sd? 1, lorsque vous devez fdisk/dev/sd ?, ou, dans votre cas, fdisk linux-x86.img. Vous devriez le faire avant de chrooter aussi.

Quelque chose qui vous aidera à combiner le redimensionnement de la partition et du système de fichiers en une seule étape ...

$ Sudo udisksctl loop-setup -f linux-x86.img
Mapped file linux-x86.img as /dev/loop0.
$ Sudo gparted /dev/loop0

Vous pouvez ensuite aussi monter/dev/loop0p1, ou autre, au lieu de trouver l’octet de début de la partition et de monter ce décalage.

2
user7455651