Jak rozszerzyć partycję CentOS 5 na VMware?

15

Mam maszynę wirtualną CentOS 5 i dodałem 20 GB więcej do rozmiaru dysku. Jak zainicjować i rozszerzyć dostępne miejsce?

Próbowałem również załadować GParted, ale dysk jest zablokowany; jak mogę to odblokować?

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Andrzej
źródło

Odpowiedzi:

25

Nie będziesz mógł korzystać z GParted, ponieważ system plików jest na LVM, a GParted nie obsługuje tego.

Najpierw Zrób kopię zapasową maszyny wirtualnej. Następnie wykonaj następujące czynności jako „root” z wiersza poleceń.

  1. Wygląda na to, że już się zrestartowałeś, ale na wszelki wypadek upewnij się, że jądro rozpoznaje większy dysk

    echo 1 > /sys/class/scsi_disk/0:0:0:0/device/rescan
    
  2. Zmień rozmiar drugiej partycji za pomocą 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. Uruchom ponownie maszynę wirtualną

    shutdown -r now
    
  4. Po utworzeniu kopii zapasowej zmień rozmiar woluminu fizycznego LVM

    pvresize /dev/sda2
    
  5. Teraz zmień rozmiar woluminu logicznego LVM ( UWAGA: Nie jestem w stanie odszyfrować nazwy twojego woluminu logicznego na podstawie zrzutów ekranu i dlatego zakładam LogVol00. Możesz to ustalić, uruchamiając lvdisplay.)

    lvresize -l +100%FREE /dev/VolGroup00/LogVol00
    
  6. Wreszcie pozwala zmienić rozmiar systemu plików

    resize2fs -p /dev/VolGroup00/LogVol00
    
  7. Sprawdź, czy system plików jest większy

    df -h
    
  8. Gotowy

Koleś
źródło
Po tym nie jest wymagane ponowne uruchomienie komputera fdisk. Użyj partprobetam. SCSI-rescan jest interesujące - czy działa na używanym dysku?
Nils,
1
Późno na imprezę: p Mam problemy z brakiem ponownego odczytu partycji przez partprobe, które były w użyciu, więc prawie we wszystkich przypadkach kończę restart. Ponowne skanowanie SCSI działa dobrze z używanymi dyskami. Możesz uruchomić, dmesgaby potwierdzić, że dysk jest widziany jako nowy rozmiar
TheDude,
smutne, że nie ma nic takiego jak scsi-rescan dla dysków xen-pv. Ale to kolejny temat ...
Nils,
1
Dziękuję bardzo, wasze instrukcje działały idealnie!
Chris Haas,
Czego powinienem szukać po kroku 1 (echo i ponowne skanowanie)? Jak mogę sprawdzić, czy jądro rozpoznaje dodatkową przestrzeń, czy nie?
Jeff
4

Poniższe kroki rozszerzyły moją partycję z 12G do 26GB na VMWare EXSi 5.5 z systemem Centos 6 EXT4 VPS.

1) Zidentyfikuj nazwę urządzenia, która jest domyślnie / dev / sda, i potwierdź nowy rozmiar, uruchamiając polecenie:

# fdisk -l

2) Uzyskaj listę partycji dla urządzenia / 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) Utwórz nową partycję podstawową

# 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) Uruchom ponownie Centos 6.X, a następnie zaloguj się ponownie z uprawnieniami administratora

# reboot

5) Sprawdź, czy nowa partycja jest gotowa i wpisz „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) Utwórz wolumin fizyczny:

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created

7) Znajdź nazwę grupy woluminów:

# vgdisplay

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

8) Zwiększ objętość fizyczną:

# vgextend vg_app1 /dev/sda3

Volume group "vg_app1" successfully extended

9) Rozszerz istniejącą grupę woluminów na nowy wolumin fizyczny (+ 100% ZA DARMO można zmienić na pożądany rozmiar). Ponieważ rozszerzamy partycję root, wskazujemy na lv_root w grupie woluminów 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) Zmień rozmiar logicznego woluminu głównego:

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

Uwaga: Użyj ext2online zamiast resize2fs, jeśli jest to maszyna wirtualna Red Hat.

11) Sprawdź dostępne miejsce:

# 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
źródło
2

Łatwo. Przejdź do maszyny wirtualnej jako root. Wpisz „fdisk -l” - jeśli już widzisz nowy rozmiar dysku - dobrze.

Jeśli nie - spróbuj partprobe- jeśli nadal nie widzisz nowego rozmiaru dysku - uruchom ponownie.

Teraz fdisk /dev/sda

  1. Zapisz cylinder startowy dla drugiej partycji.
  2. „Usuń” drugą partycję
  3. Odtwórz drugą partię, ten sam cylinder startowy, ostatni cylinder na koniec
  4. ustaw typ odtworzonej partycji na 8e (LVM)
  5. zapisz zmiany i wyjdź z fdisk
  6. partprobe
  7. pvresize /dev/sda2

Teraz twoja VG VolGroup00 ma o 20 GB więcej miejsca. Rób z tym, co chcesz. Podobnie jak w przypadku systemu fizycznego (na przykład zmień rozmiar LV, a następnie zmień rozmiar FS).

Nils
źródło
echo 1> / sys / class / scsi_disk / 0 \: 0 \: 0 \: 0 / device / rescan wykonuje magię ponownego skanowania bez restartu
andrej
@andrej Nawet jeśli dysk jest w użyciu?
Nils
Tak, to magia niskiego poziomu po stronie kontrolera, więc będzie działać również na zamontowanych dyskach. Musisz tylko upewnić się, że powiększyłeś dysk, aby nie odjąć od niego miejsca.
andrej
2

Pobierz ISO CD Gparted na żywo . Następnie podłącz ISO do CentOS i uruchom z live CD (przejdź do ustawień maszyny wirtualnej, wybierz „CD / DVD” i wybierz „Użyj ISO” z panelu po prawej stronie). Następnie wybierz partycję, której rozmiar chcesz zmienić. Kliknij menu partycji (górny pasek menu), a następnie kliknij „Zmień rozmiar”. Następnie wybierz „Zastosuj wszystkie operacje” z menu „Edycja”.

Manula Waidyanatha
źródło
Załadowałem, ale na dysku jest ikona kłódki. Dołączyłem obraz
Andrew,
sprawdź to unix.stackexchange.com/questions/37900/…
Manula Waidyanatha,
Dzięki! +1 za tę sugestię dotyczącą aplikacji Particion Magic.
jstuardo
0

Tutaj biorę przykładową partycję, aby powiększyć dysk z 5 GB do 7 GB bez utraty danych. Możesz zmienić w zależności od dostępnego wolnego miejsca.

Przed powiększeniem dysku wziąłem następujące szczegóły z maszyny wirtualnej z systemem 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

Zamknij maszynę wirtualną teraz.

Teraz zamierzam zwiększyć istniejący dysk wirtualny ( /dev/sdb) z VMware z wiersza polecenia. Uwaga: to zadanie należy wykonać tylko po wyłączeniu maszyny wirtualnej.

Przejdź do lokalizacji lokalizacji dysku wirtualnego.

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

Teraz zwiększy dysk wirtualny do 7 Gb

Teraz musisz włączyć maszynę wirtualną. Zaloguj się do maszyny wirtualnej przy użyciu PuTTY lub konsoli jako użytkownik 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

Nadal pokazuje stary rozmiar. Odmontuj partycję, którą zamierzasz zwiększyć.

# umount /dev/sdb1

Uruchom naprawę systemu plików na dysku

# fsck -n /dev/sdb1

Teraz jesteśmy gotowi usunąć dziennik z dysku i przekształcić go w system plików ext2.

# tune2fs -O ^has_journal /dev/sdb1

Teraz rozpocznij partycjonowanie, /dev/sdbaby przypisać zwiększone miejsce /dev/sdb1. Uwaga: Nie panikuj, nie stracisz tutaj danych.

Usuwam istniejące /dev/sdb1i odtwarzam wraz z dostępną wolną przestrzenią.

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

Teraz zrestartuj komputer z Linuksem, aby zastosować partycję (możemy również użyć partprobe, jest absolutnie zalecane, aby ponownie uruchomić maszynę).

# shutdown now -r

Teraz jeszcze raz sprawdź rozszerzony system plików, jeśli pominiesz ten krok, resize2fspolecenie zaleci jego uruchomienie.

# 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

Teraz zmień rozmiar systemu plików.

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

Teraz sprawdź system plików.

# 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

Teraz ponownie utwórz partycję w formacie 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.

Ponownie uruchom komputer z systemem Linux, aby skutecznie korzystać z systemu plików ext3.

# shutdown -r now

Jeszcze raz logujesz się do Linux-a przy użyciu wcześniejszych uprawnień roota. Teraz możesz znaleźć partycję powiększoną do 7 GB.

# 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
źródło
Dlaczego usuwasz, a następnie przywracasz dziennik? Nie jest to konieczne, system plików ext3 można rozszerzyć tak samo, jak system plików ext2. Co więcej, brakuje ci jednego dużego elementu układanki: partycja do rozszerzenia znajduje się w LVM.
Gilles 'SO - przestań być zły'
0

Właśnie to zrobiłem, w VMware, z CentOS 6.4. Odpowiedź nr 1 jest poprawna, ale brakuje mi jednego kroku, który odkryłem.

W Gparted moja również miała ikonę kłódki.

W wierszu z partycją, który ma ikonę kłódki, kliknij prawym przyciskiem myszy i wybierz „dezaktywuj”. To sprawia, że ​​zamek znika.

Następnie możesz kliknąć prawym przyciskiem myszy i zmienić rozmiar partycji.

Następnie zastosuj zmianę.

Następnie kliknij prawym przyciskiem myszy i wybierz „aktywuj”.

użytkownik41633
źródło
0

Możesz zrobić kroki 5 i 6, aby być jednym, dodając -rprzełącznik do lvresize. To lvresizeuruchomi się resize2fsautomatycznie z wymaganymi parametrami:

lvresize -r -l +100%FREE /dev/VolGroup00/LogVol00
użytkownik44724
źródło
Witamy w * nix StackExchange!
0

W przypadku CentOS 6.6 na VMWare wykonałem następujące czynności, aby zwiększyć z 30 GB do 40 GB (uwaga: nie korzystałem z LVM, tylko zwykłe rodzime partycje linux (Id 83)):

UWAGA: Zrób kopię zapasową maszyny wirtualnej w pierwszej kolejności na wypadek utraty danych. Nie powinieneś tracić danych, jeśli wszystko pójdzie dobrze.

  1. VMWare dało mi GUI, kiedy edytowałem moją maszynę wirtualną przed rozpoczęciem jej zmiany rozmiaru dostępnej dla maszyny wirtualnej. Użyłem tego i rozszerzyłem do 40 GB.
  2. Następnie uruchomiłem CentOS i uruchomiłem 'fdisk -l' jako root. Widziałem nową przestrzeń. Następnie uruchomiłem „df -h”, aby sprawdzić, czy moja stara partycja nadal tam jest.
  3. Następnie uruchomiłem „cfdisk / dev / sda” i dostałem tekstowy GUI pokazujący moje partycje. W moim przypadku partycja, której rozmiar chciałem zmienić, to / dev / sda3 i była ostatnią partycją.
  4. Następnie użyłem cfdisk, aby usunąć partycję, a następnie utworzyć nową z całą dostępną przestrzenią. Napisałem moje zmiany i zrezygnowałem.
  5. Następnie ponownie uruchomiłem maszynę wirtualną (zamknij teraz -r).
  6. Po ponownym uruchomieniu użyłem „resize2fs / dev / sda3”, gdzie / dev / sda3 to partycja, którą odtworzyłem. To automatycznie zakończyło zmianę rozmiaru dla mnie.
  7. Teraz z „df -h” widzę nowy pełny rozmiar.

Informacje znalezione z kombinacji odpowiedzi na tej stronie i na http://positon.org/resize-an-ext3-ext4-partition

Shygar
źródło
0

Innym podejściem jest utworzenie LVM obejmującego cały dysk zamiast partycji.

W takim przypadku możesz dodać dysk na gorąco, stosując następującą metodę

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

Czasami musisz to zrobić

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

Zależy to od tego, czy tworzysz nowy dysk, czy rozszerzasz istniejący, w zależności od tego, jaki typ ponownego skanowania jest wymagany.

Robert B.
źródło