Comment étendre la partition CentOS 5 sur VMware?

15

J'ai une machine virtuelle CentOS 5 et j'ai ajouté 20 Go de plus à la taille du disque. Comment initialiser et étendre l'espace disponible?

J'ai également essayé de charger GParted, mais le lecteur est verrouillé; comment le déverrouiller?

entrez la description de l'image ici

entrez la description de l'image ici

Andrew
la source

Réponses:

25

Vous ne pourrez pas utiliser GParted car le système de fichiers est sur LVM et GParted ne le prend pas en charge.

D'abord, FAITES UNE SAUVEGARDE DE LA VM. Effectuez ensuite les opérations suivantes en tant que "root" à partir d'une ligne de commande.

  1. Il semble que vous ayez déjà redémarré, mais au cas où, assurez-vous que le noyau reconnaît le disque plus grand

    echo 1 > /sys/class/scsi_disk/0:0:0:0/device/rescan
    
  2. Redimensionner la deuxième partition avec fdisk

    fdisk /dev/sda
    p     # print current
    d     # delete
    - 2
    n     # create
    - p   # primary partition
    2     # partition number
    - default first/last cylinders
    t     # change partition id
    - 2
    - 8e (hex code)
    p     # print the current again to verify it's expanded
    w     # write changes
    
  3. Redémarrez la machine virtuelle

    shutdown -r now
    
  4. Une fois la sauvegarde terminée, redimensionnez le volume physique LVM

    pvresize /dev/sda2
    
  5. Redimensionnez maintenant le volume logique LVM ( REMARQUE: je ne peux pas déchiffrer le nom de vos volumes logiques sur la base des captures d'écran et je suppose donc LogVol00. Vous pouvez le déterminer en exécutant lvdisplay.)

    lvresize -l +100%FREE /dev/VolGroup00/LogVol00
    
  6. Enfin, permet de redimensionner le système de fichiers

    resize2fs -p /dev/VolGroup00/LogVol00
    
  7. Vérifiez que le système de fichiers est plus grand

    df -h
    
  8. Terminé

Le mec
la source
Aucun redémarrage nécessaire après fdisk. Utilisez partprobe-le. Le SCSI-rescan est intéressant - fonctionne-t-il sur un disque en cours d'utilisation?
Nils
1
Tard dans la soirée: p J'ai eu des problèmes avec partprobe pour ne pas relire les partitions qui étaient utilisées, donc je finis par redémarrer dans presque tous les cas. La nouvelle analyse SCSI fonctionne très bien avec les disques en cours d'utilisation. Vous pouvez exécuter dmesgpour confirmer que le disque est considéré comme la nouvelle taille
TheDude
triste qu'il n'y ait rien comme un scsi-rescan pour les disques xen-pv. Mais c'est un autre sujet ...
Nils
1
Merci beaucoup, vos instructions ont parfaitement fonctionné!
Chris Haas
Que dois-je rechercher après l'étape 1 (écho et nouvelle analyse)? Comment savoir si le noyau reconnaît ou non l'espace supplémentaire?
Jeff
4

Les étapes ci-dessous ont étendu ma partition de 12G à 26 Go sur un VMWare EXSi 5.5 exécutant Centos 6 EXT4 VPS.

1) Identifiez le nom du périphérique, qui est par défaut / dev / sda, et confirmez la nouvelle taille en exécutant la commande:

# fdisk -l

2) Obtenez la liste des partitions pour le périphérique / dev / sda:

# ls -al /dev/sda*

brw-rw---- 1 root disk 8, 0 Dec 29 15:32 /dev/sda
brw-rw---- 1 root disk 8, 1 Dec 29 15:32 /dev/sda1
brw-rw---- 1 root disk 8, 2 Dec 29 15:32 /dev/sda2

3) Créer une nouvelle partition principale

# fdisk /dev/sda

Then type:
  n (enter) [create new partition]
  p (enter) [primary partition]
  3 (enter) [next available number from listed /dev/sda partitions in 2)
  (enter)   [start cylinder]
  (enter to use all available physical space) or specify size in +cylinders, +size{K,M,G}
  t (enter) [change partition type]
  3 (enter) [selecting /dev/sda3 partition]
  8e (enter) [this sets partition type to Linux LVM or type L then enter to see list of types] 
  w (enter)

  The partition table has been altered!

4) Redémarrez Centos 6.X puis reconnectez-vous avec les privilèges root

# reboot

5) Vérifiez que la nouvelle partition est prête et tapez '8e':

# fdisk -l

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2089    16264192   8e  Linux LVM
/dev/sda3            2089        3916    14678054   8e  Linux LVM

6) Créez un volume physique:

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created

7) Découvrez le nom du groupe de volumes:

# vgdisplay

--- Volume group ---
VG Name               vg_app1
...

8) Augmentez le volume physique:

# vgextend vg_app1 /dev/sda3

Volume group "vg_app1" successfully extended

9) Étendez le groupe de volumes existant au nouveau volume physique (+ 100% GRATUIT peut être modifié à la taille souhaitée). Puisque nous étendons la partition racine, pointant ainsi vers lv_root dans le groupe de volumes vg_app1.

# lvextend -l +100%FREE /dev/vg_app1/lv_root

Size of logical volume vg_app1/lv_root changed from 11.63 GiB (2978 extents) to 25.63 GiB (6561 extents).
Logical volume lv_root successfully resized

10) Redimensionner le volume racine logique:

# resize2fs /dev/vg_app1/lv_root

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_app1/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_app1/lv_root to 6718464 (4k) blocks.
The filesystem on /dev/vg_app1/lv_root is now 6718464 blocks long.

Remarque: Utilisez ext2online au lieu de resize2fs s'il s'agit d'une machine virtuelle Red Hat.

11) Vérifiez l'espace disponible:

# df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_app1-lv_root
                      26G   10G   14G  42% /
tmpfs                 9.8G     0  9.8G   0% /dev/shm
/dev/sda1             477M   88M  364M  20% /boot
webcoder.eu
la source
2

Facile. Accédez à votre machine virtuelle en tant que root. Tapez "fdisk -l" - si vous voyez déjà la nouvelle taille du disque - bien.

Sinon - essayez partprobe- si vous ne voyez toujours pas la nouvelle taille du disque - redémarrez.

Maintenant fdisk /dev/sda

  1. Notez votre cylindre de départ pour la deuxième partition.
  2. "Supprimer" la deuxième partition
  3. Recréer la deuxième partition, même cylindre de départ, dernier cylindre pour la fin
  4. définissez le type de la partition recréée sur 8e (LVM)
  5. écrire les modifications et quitter fdisk
  6. partprobe
  7. pvresize /dev/sda2

Votre VG VolGroup00 dispose désormais de 20 Go d'espace supplémentaire. Faites ce que vous voulez avec. Tout comme vous le feriez sur un système physique (redimensionnez les LV, puis redimensionnez le FS par exemple).

Nils
la source
echo 1> / sys / class / scsi_disk / 0 \: 0 \: 0 \: 0 / device / rescan effectue la magie de nouvelle
analyse
@andrej Même si le disque est en cours d'utilisation?
Nils
Oui, c'est de la magie de bas niveau du côté du contrôleur, donc cela fonctionnera également sur les disques montés. Il vous suffit de vous assurer que vous avez agrandi le lecteur, et non de lui soustraire de l'espace.
andrej
2

Téléchargez l' ISO du CD live de Gparted . Ensuite, attachez l'ISO à CentOS et démarrez à partir du CD live (allez dans les paramètres de la machine virtuelle, sélectionnez «CD / DVD» et sélectionnez «Utiliser ISO» dans le panneau de droite). Sélectionnez ensuite la partition que vous souhaitez redimensionner. Cliquez sur le menu de partition (barre de menu supérieure) puis cliquez sur «Redimensionner». Sélectionnez ensuite «Appliquer toutes les opérations» dans le menu «Modifier».

Manula Waidyanatha
la source
J'ai chargé, mais le lecteur a l'icône de verrouillage. J'ai joint l'image
Andrew
consultez ce unix.stackexchange.com/questions/37900/…
Manula Waidyanatha
Merci! +1 pour cette suggestion d'application de type Particion Magic.
jstuardo
0

Ici, je prends un exemple de partition pour étendre le disque de 5 Go à 7 Go sans perdre de données. Vous pouvez changer en fonction de votre espace libre disponible.

Avant d'augmenter le disque, j'ai pris les détails suivants de la machine virtuelle Linux:

# df -h
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             6.8G  2.1G  4.5G  32% /
 /dev/sda1              99M   12M   83M  13% /boot
 none                  252M     0  252M   0% /dev/shm
 /dev/sdb1             5.0G   39M  4.7G   1% /mnt/test
# fdisk -s /dev/sdb
Disk /dev/sdb: 5368 MB, 5368709120 bytes
 255 heads, 63 sectors/track, 652 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1               1         652     5237158+  83  Linux

Arrêtez la machine virtuelle maintenant.

Maintenant , je vais augmenter le disque virtuel existant ( /dev/sdb) de VMware l'invite de commande. Remarque: cette tâche ne doit être effectuée que lorsque la machine virtuelle est hors tension.

Accédez à l'emplacement de l'emplacement du disque virtuel.

# vmware-vdiskmanager -x  7Gb RedHatEnterprise_Linux_4-0.vmdk

Maintenant, il augmentera le disque virtuel à 7 Go

Vous devez maintenant allumer la VM. Connectez-vous à la machine virtuelle à l'aide de PuTTY ou de la console en tant qu'utilisateur root.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             6.8G  2.1G  4.5G  32% /
 /dev/sda1              99M   12M   83M  13% /boot
 none                  252M     0  252M   0% /dev/shm
 /dev/sdb1             5.0G   39M  4.7G   1% /mnt/test

Il montre toujours l'ancienne taille. Démontez la partition que vous allez augmenter.

# umount /dev/sdb1

Exécutez la réparation du système de fichiers sur le disque

# fsck -n /dev/sdb1

Il fallait maintenant supprimer le journal du disque pour en faire un système de fichiers ext2.

# tune2fs -O ^has_journal /dev/sdb1

Maintenant, commencez à partitionner /dev/sdbpour affecter l'espace supplémentaire à /dev/sdb1. Remarque: Ne paniquez pas, vous ne perdrez pas de données ici.

Je supprime l'existant /dev/sdb1et le recrée avec l'espace libre disponible.

# fdisk /dev/sdb
Command (m for help): m
Command action
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition
l   list known partition types
m   print this menu
n   add a new partition
o   create a new empty DOS partition table
p   print the partition table
q   quit without saving changes
s   create a new empty Sun disklabel
t   change a partition’s system id
u   change display/entry units
v   verify the partition table
w   write table to disk and exit
x   extra functionality (experts only)

Command (m for help): p
Disk /dev/sdb: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+  83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-913, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-913, default 913):
Using default value 913

Command (m for help): p
Disk /dev/sdb: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         913     7333641   83  Linux

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

Redémarrez maintenant la machine Linux pour prendre effet de la partition (nous pouvons également utiliser partprobe, il est strictement recommandé de redémarrer la machine).

# shutdown now -r

Maintenant, vérifiez à nouveau le système de fichiers étendu, si vous sautez cette étape, la resize2fscommande recommandera de l'exécuter.

# e2fsck -f /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 13/655360 files (7.7% non-contiguous), 22121/1309289 blocks

Redimensionnez maintenant le système de fichiers.

# resize2fs /dev/sdb1
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/sdb1 to 1833410 (4k) blocks.
The filesystem on /dev/sdb1 is now 1833410 blocks long.

Vérifiez maintenant le système de fichiers.

# fsck -n /dev/sdb1
fsck 1.35 (28-Feb-2004)
e2fsck 1.35 (28-Feb-2004)
/dev/sdb1: clean, 13/917504 files, 30538/1833410 blocks

Recréez maintenant la partition au format ext3.

# tune2fs -j /dev/sdb1
tune2fs 1.35 (28-Feb-2004)
Creating journal inode: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Redémarrez la machine Linux une fois pour utiliser efficacement le système de fichiers ext3.

# shutdown -r now

Une fois de plus, vous vous connectez à la boîte Linux en utilisant les privilèges root. Vous pouvez maintenant trouver la partition augmentée à 7 Go.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             6.8G  2.1G  4.5G  32% /
/dev/sda1              99M   12M   83M  13% /boot
none                  252M     0  252M   0% /dev/shm
/dev/sdb1             6.9G   39M  6.7G   1% /mnt/test
Jahanzeb
la source
Pourquoi supprimez-vous puis rétablissez le journal? Ce n'est pas nécessaire, un système de fichiers ext3 peut être étendu aussi bien qu'un système de fichiers ext2. De plus, il vous manque une grande pièce du puzzle: la partition à étendre est sur LVM.
Gilles 'SO- arrête d'être méchant'
0

Je viens de le faire, dans VMware, avec CentOS 6.4. La réponse numéro 1 est correcte, mais il manque une étape, que j'ai découverte.

Dans Gparted, la mienne avait également l'icône de cadenas.

Sur la ligne avec la partition, qui a l'icône de verrouillage, faites un clic droit et sélectionnez "désactiver". Cela fait disparaître la serrure.

Ensuite, vous pouvez cliquer avec le bouton droit et modifier la taille de la partition.

Appliquez ensuite la modification.

Cliquez ensuite avec le bouton droit et sélectionnez "activer".

user41633
la source
0

Vous pouvez effectuer les étapes 5 et 6 pour ne faire qu'un en ajoutant le -rcommutateur à lvresize. Cela fera lvresizefonctionner resize2fsautomatiquement avec les paramètres requis:

lvresize -r -l +100%FREE /dev/VolGroup00/LogVol00
user44724
la source
Bienvenue sur le * nix StackExchange!
0

Pour CentOS 6.6 sur VMWare, j'ai fait ce qui suit pour passer de 30 Go à 40 Go (notez que je n'utilisais pas LVM, juste des partitions Linux natives régulières (Id 83)):

REMARQUE: effectuez d'abord une sauvegarde de votre machine virtuelle au cas où vous perdriez des données. Vous ne devriez pas perdre de données si tout se passe bien.

  1. VMWare m'a donné une interface graphique lorsque j'ai modifié ma machine virtuelle avant de la démarrer pour redimensionner la quantité disponible pour la machine virtuelle. Je l'ai utilisé et l'ai étendu à 40 Go.
  2. J'ai ensuite démarré CentOS et exécuté «fdisk -l» en tant que root. Je pouvais voir le nouvel espace. J'ai ensuite exécuté «df -h» pour vérifier que mon ancienne partition était toujours là.
  3. J'ai ensuite exécuté 'cfdisk / dev / sda' et obtenu une interface graphique textuelle qui montrait mes partitions. Dans mon cas, la partition que je voulais redimensionner était / dev / sda3 et était la dernière partition.
  4. J'ai ensuite utilisé cfdisk pour supprimer la partition, puis en créer une nouvelle avec tout l'espace disponible. J'ai écrit mes modifications et j'ai quitté.
  5. J'ai ensuite redémarré la machine virtuelle (arrêt maintenant -r).
  6. Après le redémarrage, j'ai utilisé «resize2fs / dev / sda3», où / dev / sda3 est la partition que j'ai recréée. Cela a automatiquement terminé le redimensionnement pour moi.
  7. Maintenant, avec «df -h», je vois la nouvelle taille réelle.

Informations trouvées à partir d'une combinaison de réponses sur cette page et sur http://positon.org/resize-an-ext3-ext4-partition

Shygar
la source
0

Une autre approche consiste à créer un LVM réparti sur un disque complet au lieu d'une partition.

Dans ce cas, vous pouvez ajouter un disque à chaud en utilisant la méthode suivante

blockscan --rereadpt /dev/<PV disk
pvresize /dev/<PV disk>
# The associated VG is now resized
lvresize /dev/mapper/<LV> -r -l +100%FREE
ThinkBriK
la source
0

Parfois, vous devez faire

echo "- - -" >  /sys/class/scsi_host/host<n>/scan

Cela dépend si vous créez un nouveau disque ou étendez un disque existant en fonction du type de nouvelle analyse requis.

Robert B.
la source