Wie kann ich die CentOS 5-Partition auf VMware erweitern?


15

Ich besitze eine virtuelle CentOS 5-Maschine und habe der Festplattengröße 20 GB mehr hinzugefügt. Wie initialisiere und erweitere ich den verfügbaren Speicherplatz?

Ich habe versucht, auch GParted zu laden, aber das Laufwerk ist gesperrt. Wie schalte ich es frei?

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Antworten:


25

Sie können GParted nicht verwenden, da sich das Dateisystem in LVM befindet und GParted dies nicht unterstützt.

Nehmen Sie zunächst eine Sicherung der VM vor. Führen Sie dann Folgendes als "root" über eine Befehlszeile aus.

  1. Es sieht so aus, als hätten Sie bereits einen Neustart durchgeführt, aber stellen Sie sicher, dass der Kernel die größere Festplatte erkennt

    echo 1 > /sys/class/scsi_disk/0:0:0:0/device/rescan
    
  2. Ändern Sie die Größe der zweiten Partition mit 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. Starten Sie die virtuelle Maschine neu

    shutdown -r now
    
  4. Ändern Sie nach dem Sichern die Größe des physischen LVM-Volumes

    pvresize /dev/sda2
    
  5. Ändern Sie nun die Größe des logischen LVM-Volumes. ( HINWEIS: Ich kann den Namen Ihres logischen Volumes anhand der Screenshots nicht entschlüsseln und gehe daher davon aus LogVol00. Sie können dies ermitteln, indem Sie ausführen lvdisplay.)

    lvresize -l +100%FREE /dev/VolGroup00/LogVol00
    
  6. Zuletzt können Sie die Größe des Dateisystems ändern

    resize2fs -p /dev/VolGroup00/LogVol00
    
  7. Stellen Sie sicher, dass das Dateisystem größer ist

    df -h
    
  8. Erledigt


Kein Neustart nötig fdisk. Verwenden Sie partprobedort. Der SCSI-Rescan ist interessant - funktioniert er auf einer verwendeten Festplatte?
Nils

1
Verspätet zur Party: p Ich hatte Probleme mit partprobe, die Partitionen, die verwendet wurden, nicht erneut zu lesen, so dass ich fast immer einen Neustart durchführte. Der SCSI-Rescan funktioniert einwandfrei, wenn Festplatten verwendet werden. Sie können ausführen dmesg, um zu bestätigen, dass die Festplatte als die neue Größe
angezeigt wird

schade, dass es nichts gibt wie einen scsi-rescan für xen-pv-disks. Aber das ist ein anderes Thema ...
Nils

1
Vielen Dank, Ihre Anweisungen haben einwandfrei funktioniert!
Chris Haas

Was muss ich nach Schritt 1 (Echo & Rescan) beachten? Wie kann ich feststellen, ob der Kernel den zusätzlichen Speicherplatz erkennt oder nicht?
Jeff

4

Die folgenden Schritte haben meine Partition auf einem VMWare EXSi 5.5 mit Centos 6 EXT4 VPS von 12G auf 26GB erweitert.

1) Identifizieren Sie den Gerätenamen, der standardmäßig / dev / sda lautet, und bestätigen Sie die neue Größe, indem Sie den Befehl ausführen:

# fdisk -l

2) Liste der Partitionen für das Gerät / dev / sda abrufen:

# 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) Erstellen Sie eine neue primäre Partition

# 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) Starten Sie Centos 6.X neu und melden Sie sich mit Root-Rechten erneut an

# reboot

5) Überprüfen Sie, ob die neue Partition bereit ist und geben Sie '8e' ein:

# 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) Erstellen Sie ein physisches Volume:

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created

7) Finden Sie den Namen der Volumengruppe heraus:

# vgdisplay

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

8) Erweitern Sie das physische Volumen:

# vgextend vg_app1 /dev/sda3

Volume group "vg_app1" successfully extended

9) Erweitern Sie die vorhandene Volume-Gruppe auf das neue physische Volume (+ 100% FREE kann auf die gewünschte Größe geändert werden). Da wir die Root-Partition erweitern, zeigt dies auf lv_root in der Volume-Gruppe 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) Ändern Sie die Größe des logischen Root-Volumes:

# 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.

Hinweis: Verwenden Sie ext2online anstelle von resize2fs, wenn es sich um eine virtuelle Red Hat-Maschine handelt.

11) Überprüfen Sie den verfügbaren Speicherplatz:

# 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

2

Einfach. Gehen Sie als root in Ihre VM. Geben Sie "fdisk -l" ein - wenn Sie die neue Festplattengröße bereits sehen - gut.

Wenn nicht - versuchen partprobeSie es - wenn Sie die neue Festplattengröße immer noch nicht sehen - starten Sie neu.

Jetzt fdisk /dev/sda

  1. Notieren Sie sich den Startzylinder für die zweite Partition.
  2. "Löschen" Sie die zweite Partition
  3. Erstellen Sie die zweite Partition, den gleichen Startzylinder und den letzten Zylinder für das Ende
  4. Setze den Typ der neu erstellten Partition auf 8e (LVM)
  5. Schreiben Sie die Änderungen und beenden Sie fdisk
  6. partprobe
  7. pvresize /dev/sda2

Jetzt hat Ihre VG VolGroup00 20 GB mehr Speicherplatz. Mach damit, was du willst. Genau wie bei einem physischen System (ändern Sie die Größe von LVs, und ändern Sie dann beispielsweise die Größe des FS).


echo 1> / sys / class / scsi_disk / 0 \: 0 \: 0 \: 0 / device / rescan führt den Rescan ohne Neustart durch
andrej

@andrej Auch wenn die Festplatte in Gebrauch ist?
Nils

Ja, es ist Low-Level-Magie auf der Controllerseite, so dass es auch auf montierten Disks funktioniert. Sie müssen nur sicherstellen, dass Sie das Laufwerk vergrößert haben, und nicht, dass der Speicherplatz davon abgezogen wird.
andrej

2

Laden Sie die Gparted Live-CD ISO herunter . Schließen Sie dann das ISO an CentOS an und booten Sie von der Live-CD (gehen Sie zu den Einstellungen der virtuellen Maschine, wählen Sie "CD / DVD" und wählen Sie "ISO verwenden" auf der rechten Seite). Wählen Sie dann die Partition aus, deren Größe Sie ändern möchten. Klicken Sie auf das Partitionsmenü (obere Menüleiste) und dann auf "Größe ändern". Wählen Sie dann im Menü „Bearbeiten“ die Option „Alle Vorgänge anwenden“.


Ich habe geladen, aber das Laufwerk hat das Schlosssymbol .. Ich habe das Bild angehängt
Andrew


Vielen Dank! +1 für diesen Particion Magic-ähnlichen Anwendungsvorschlag.
Jstuardo

0

Hier nehme ich eine Beispielpartition, um die Festplatte von 5 GB auf 7 GB zu erweitern, ohne Daten zu verlieren. Sie können den verfügbaren Speicherplatz entsprechend ändern.

Vor dem Erhöhen des Datenträgers habe ich der Linux-VM die folgenden Details entnommen:

# 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

Fahren Sie die VM jetzt herunter.

Jetzt werde ich das vorhandene virtuelle Laufwerk ( /dev/sdb) von VMware über die Eingabeaufforderung vergrößern . Hinweis: Diese Aufgabe sollte nur ausgeführt werden, wenn die VM ausgeschaltet ist.

Wechseln Sie zum Speicherort der virtuellen Festplatte.

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

Jetzt wird die virtuelle Festplatte auf 7 GB erweitert

Jetzt müssen Sie die VM einschalten. Melden Sie sich bei der VM mit PuTTY oder der Konsole als Root-Benutzer an.

# 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

Es zeigt immer noch die alte Größe. Hängen Sie die Partition aus, die Sie vergrößern möchten.

# umount /dev/sdb1

Führen Sie die Dateisystemreparatur auf dem Datenträger aus

# fsck -n /dev/sdb1

Nun müssen wir das Journal von der Festplatte entfernen, um es in ein ext2-Dateisystem zu verwandeln.

# tune2fs -O ^has_journal /dev/sdb1

Beginnen Sie nun mit der Partitionierung /dev/sdb, um den vergrößerten Speicherplatz zuzuweisen /dev/sdb1. Hinweis: Keine Panik, hier gehen keine Daten verloren.

Ich entferne das Vorhandene /dev/sdb1und erstelle es zusammen mit dem verfügbaren freien Speicherplatz neu.

# 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.

Starten Sie nun den Linux-Rechner neu, damit die Partition wirksam wird (wir können auch verwenden partprobe, es wird dringend empfohlen, den Rechner neu zu starten).

# shutdown now -r

Überprüfen Sie nun noch einmal das erweiterte Dateisystem. Wenn Sie diesen Schritt überspringen, resize2fsempfiehlt der Befehl, es auszuführen .

# 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

Ändern Sie nun die Größe des Dateisystems.

# 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.

Überprüfen Sie nun das Dateisystem.

# 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

Erstellen Sie nun die Partition mit dem ext3-Format neu.

# 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.

Starten Sie den Linux-Rechner einmal neu, um das ext3-Dateisystem effektiv zu nutzen.

# shutdown -r now

Nochmals melden Sie sich bei Linux Box mit root-Berechtigungen an. Jetzt finden Sie die Partition auf 7 GB erhöht.

# 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

Warum entfernen Sie das Journal und stellen es dann wieder her? Dies ist nicht erforderlich, ein ext3-Dateisystem kann ebenso wie ein ext2-Dateisystem erweitert werden. Außerdem fehlt Ihnen ein großes Puzzleteil: Die zu erweiternde Partition befindet sich in LVM.
Gilles 'SO- hör auf böse zu sein'

0

Ich habe das gerade in VMware mit CentOS 6.4 gemacht. Antwort Nummer 1 ist richtig, aber es fehlt ein Schritt, den ich entdeckt habe.

In Gparted hatte meine auch das Schlosssymbol.

Klicken Sie in der Zeile mit der Partition mit dem Schlosssymbol mit der rechten Maustaste und wählen Sie "Deaktivieren". Das Schloss verschwindet.

Dann können Sie mit der rechten Maustaste klicken und die Partitionsgröße ändern.

Übernehmen Sie dann die Änderung.

Klicken Sie dann mit der rechten Maustaste und wählen Sie "Aktivieren".


0

Sie können die Schritte 5 und 6 zu einem Schritt machen, indem Sie den -rSchalter zu hinzufügen lvresize. Das macht lvresizeläuft resize2fsautomatisch mit dem erforderlichen params:

lvresize -r -l +100%FREE /dev/VolGroup00/LogVol00

Willkommen beim * nix StackExchange!

0

Für CentOS 6.6 unter VMWare habe ich Folgendes getan, um die Größe von 30 GB auf 40 GB zu erhöhen (Anmerkung: Ich habe kein LVM verwendet, sondern nur normale native Linux-Partitionen (ID 83)):

HINWEIS: Erstellen Sie zuerst eine Sicherungskopie Ihrer VM, falls Sie Daten verlieren. Sie sollten keine Daten verlieren, wenn alles gut geht.

  1. VMWare gab mir eine GUI, als ich meine VM bearbeitete, bevor ich sie startete, um die Größe der für die VM verfügbaren Menge zu ändern. Ich habe es benutzt und auf 40 GB erweitert.
  2. Ich habe dann CentOS gebootet und 'fdisk -l' als root ausgeführt. Ich konnte den neuen Raum sehen. Ich habe dann 'df -h' ausgeführt, um zu überprüfen, ob meine alte Partition noch vorhanden ist.
  3. Ich ließ dann 'cfdisk / dev / sda' laufen und bekam eine textuelle GUI, die meine Partitionen zeigte. In meinem Fall war die Partition, deren Größe ich ändern wollte, / dev / sda3 und die letzte Partition.
  4. Ich habe dann mit cfdisk die Partition gelöscht und dann eine neue mit dem gesamten verfügbaren Speicherplatz erstellt. Ich schrieb meine Änderungen und kündigte.
  5. Ich habe dann die VM neu gestartet (jetzt herunterfahren -r).
  6. Nach dem Neustart habe ich 'resize2fs / dev / sda3' verwendet, wobei / dev / sda3 die Partition ist, die ich neu erstellt habe. Dadurch wurde die Größenänderung für mich automatisch vervollständigt.
  7. Jetzt sehe ich mit 'df -h' die neue volle Größe.

Informationen aus einer Kombination von Antworten auf dieser Seite und auf http://positon.org/resize-an-ext3-ext4-partition


0

Ein anderer Ansatz besteht darin, eine LVM zu erstellen, die sich auf einer vollständigen Festplatte anstelle einer Partition erstreckt.

In diesem Fall können Sie die Festplatte mit der folgenden Methode im laufenden Betrieb hinzufügen

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

0

Manchmal muss man das tun

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

Dies hängt davon ab, ob Sie eine neue Festplatte erstellen oder eine vorhandene erweitern, um festzustellen, welche Art der erneuten Überprüfung erforderlich ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.