Tout d'abord, je suis un débutant absolu dans Linux, mais j'ai été chargé d'automatiser le processus de redimensionnement d'une partition sur RHEL 6.5. Le serveur réside sous forme de machine virtuelle dans VMWare, et nous essayons d'orchestrer une activité par laquelle un fichier VMDK existant est étendu et les partitions de ce VMDK sont redimensionnées automatiquement.
En guise de test, le VMDK est visible sur le système sous le nom de /dev/sdb. Sa taille est de 5 Go. Maintenant, j'ai 2 partitions sur ce disque, /dev/sdb1, /dev/sdb2, sdb1 occupant 1 Go et sdb2 occupant 5 Go.
Si quelqu'un augmente maintenant la taille du VMDK de 5 Go à 10 Go et spécifie que l'espace supplémentaire doit aller sur /dev/sdb1, comment puis-je faire cela ? Jusqu'à présent, j'ai réussi à créer un processus dans lequel la dernière partition peut être redimensionnée sans problème (c'est-à-dire /dev/sdb2), mais pas les précédentes à cause des numéros de bloc de départ et de fin.
Mon processus est le suivant :
1) Augmenter la taille du VMDK 2) Exécutez echo "1" > /sys/class/scsi_device/0:0:0:0/device/rescan pour récupérer le disque redimensionné. 3) Avec fdisk, supprimez la partition et recréez-la.
Cela fonctionne bien si la partition en cours de modification est la dernière partition, mais si c'est la première ou la deuxième, alors la partition est juste recréée comme elle était. Existe-t-il un outil qui puisse faire cela intelligemment ?
Voici la sortie de fdisk dans mon environnement :
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
67 heads, 62 sectors/track, 5048 cylinders
Units = cylinders of 4154 * 512 = 2126848 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf3405e93
Device Boot Start End Blocks Id System
/dev/sdb1 1 510 1059239 83 Linux
/dev/sdb2 511 2524 4183078 83 Linux
Comme vous pouvez le voir, sdb1 occupe 1 Go et SDB2 4 Go, mais il reste environ 5 Go "libres" sur le disque. Maintenant, comment puis-je changer cela pour que sdb1 occupe l'espace restant ? Si je supprime sdb1 et que je le recrée, il crée la même partition. Je peux facilement créer une nouvelle partition pour occuper cet espace, ou même modifier sdb2 pour qu'il occupe l'espace restant (il suffit de supprimer sdb2 et de le recréer en utilisant fdisk), mais la question est de savoir comment modifier sdb1 pour qu'il occupe cet espace ?
J'espère que ma question est claire, et merci d'avance.