Aller à : navigation, rechercher

Xenserver - Agrandir le disque d'une VM Linux

ATTENTION : Avant toutes modifications penser à faire trois choses

* Vérifier la taille du disque à resizer (avec un df -h)
* Vérifier la présence de partition sur le disk à resizer. Si il n'y a pas de partition ne pas faire les opération de fdisk
* Si vous avez un doute faite un snapshot de la machine avant opération

Opération sur le disque virtuel

Sur le Xenserver, récupération de l' UUID du VDI disque :

xe vm-disk-list vm=srvtest

Agrandissement du disque dur

xe vdi-resize uuid=b46a60c5-1692-4964-a3c4-03bc59136864  disk-size=30GiB

Opération sur l'OS Linux

Cas Général

On relance la machine virtuelle, dans le linux, si il n'y a qu'une seule partition

fdisk -u /dev/xvda

Afficher la table de partition, bien noter le début de la partition (ici 63, ça peut aussi être 2048 sur des squeeze)

Device Boot            Start         End          Blocks     Id  System
/dev/xvda1              63             31455269    15727603+  83  Linux
                        /\
                        ||

Supprimer la partition et la recréé, vérifier que le début de la partition correspond bien à l'ancienne partition

d

Recréer la partition, de type primary

n
p
1

Choisir comme début la valeur qui a été récupéré à l'étape un peu plus au dessus)

63 ou 2048 ou autre chose

Taper enter directement pour choisir la fin de la partition

enter

Afficher le résultat

p

Toujours dans le fdisk, toggler le flag du type de partition pour mettre du ext3 0x83

t
1
83
w

Rebooter puis lancer un resize2fs

resize2fs /dev/xvda1

Cas spécifique, forcer le secteur 63

Sur des disques qui ont été créées sur des vieilles vm (type debian 5 ou mandriva 2008) le premier secteur se trouve en 63, et fdisk indique un "out of range"

Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4, default 1): 1
First sector (2048-2930277167, default 2048): 63
'''Value out of range.'''
First sector (2048-2930277167, default 2048): q
First sector (2048-2930277167, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2930277167, default 2930277167):
Using default value 2930277167
 
Command (m for help): q


On lance alors fdisk avec des options spécifiques (mode "old DOS-style disk block addressing")

fdisk -c=dos -u=cylinders /dev/xvdc
 
WARNING: DOS-compatible mode is deprecated. It s strongly recommended to switch off the mode (with command c).
WARNING: cylinders as display units are deprecated. Use command u to change units to sectors.
 
Command (m for help): p
 
Disk /dev/xvdc: 644.2 GB, 644245094400 bytes
255 heads, 63 sectors/track, 78325 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8896f40d
 
       Device Boot      Start         End      Blocks   Id  System
/dev/xvdc1               1       78325   629145531   83  Linux

On delete la partition existante

Command (m for help): d
Selected partition 1

Et on recré la nouvelle en spécifiant le laissant les options par défaut.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First cylinder (1-78325, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-78325, default 78325): 
Using default value 78325

On change les options d'affichage

Command (m for help): u
Changing display/entry units to sectors

On vérifie que le premier secteur est bien le 63eme

Command (m for help): p
 
Disk /dev/xvdc: 644.2 GB, 644245094400 bytes
255 heads, 63 sectors/track, 78325 cylinders, total 1258291200 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
Disk identifier: 0x8896f40d
 
Device Boot            Start  End                 Blocks          Id    System
/dev/xvdc1              63      1258291124   629145531   83   Linux

On valide les changements :

Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

puis on reboot la machine

reboot

et on fait un resize du filesystem

resize2fs /dev/xvdc1