Fedora'daki kök LVM bölümünün LiveCD veya Yeniden Başlatma olmadan nasıl yeniden boyutlandırılacağı


24

Geçenlerde disk görüntüsünü 20 GB'tan 50 GB'a yükselten bir sanal fdisk -lmakinem var ve VM'nin bu yeni boyutu görebildiğini doğrular. Şimdi fazladan 30GB’i doldurmak için kök LVM bölümümü yeniden boyutlandırmam gerekiyor.

LVM'yi yeniden boyutlandırma hakkında birkaç makale buldum , ancak kök bölümün yeniden boyutlandırılmasını kapsayan birkaç makalenin tümü bir LiveCD'den başlatmanız gerektiğini iddia ediyor. Sunucuyu kaldırmadan bunu yapmanın bir yolu var mı? Sunucu kritiktir, bu yüzden aksama süresini en aza indirmek istiyorum.

Düzenleme: Çıktı fdisk -l:

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 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: 0x00097c90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    83886079    41430016   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 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: 0x00000000

Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table

Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 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: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table

Düzenleme: Fiziksel bölümü nasıl yeniden boyutlandırabilirim? fdisk boş alanı görebilir, ancak kullanmak için birincil LVM bölümünü nasıl yeniden boyutlandıracağımı bilmiyorum. Bir LiveCD'ye önyüklemeyi ve parted'd resizekomutunu kullanarak denemeyi denedim , fakat bana sadece "Dosya sistemi tespit edilemiyor" hatası verdi. Bölümü silmek ve doğru boyutta yeni bir tane oluşturmak zorunda olduğumu söyleyen bu kılavuzu buldum , ancak bu çok tehlikeli görünüyor.

Son Düzenleme: Parted'in resizekomutu LVM bölümlerini yeniden boyutlandıramaz. Git figürü. Bunun yerine, eski bölümü sildim ve yukarıdaki bağlantıda belirtildiği gibi yeni aralıkla yeni bir tane oluşturdum ve bu LVM bölümünü doğru şekilde yeniden boyutlandırdı. Sonra hacimleri ve dosya sistemlerini yeniden boyutlandırmak için aşağıdaki tavsiyesine uyarak LVM bölümü.


Bize fdisk - l'in çıktısını gösterin. Sadece ses seviyesini değil, bölümü de yeniden boyutlandırdınız mı?
Zoredache

@Zoredache, soruyu bu çıktı ekledi.
Cerin

Yanıtlar:


32

Çevrimiçi bir mantıksal hacmi büyüyebilir. Küçültmek için bağlantısını kesmeniz gerekir (bu bir LiveCD / Kurtarma Modu gerektirir).

  1. pvresize /dev/sda2(LVM bölümünüzün olduğu varsayılmaktadır sda2. Gerektiği gibi değiştirin.)
  2. lvextend /dev/mapper/root -l+100%FREE (veya kök mantıksal biriminiz ne denirse).
  3. resize2fs /dev/mapper/root (ext2 / 3/4 varsayılarak)

1
Ben şahsen tercih ederim lvextend -L [size][unit] /dev/group/volume, çünkü sadece bir hacmi 10 gigabayt kadar -L +10G
arttırabilirim.

Evet, ancak OP sordu; Now I need to resize my root LVM partition to fill the extra 30GB.(Bu, mantıksal hacmi mevcut boş alanla büyütmektir.)
Aaron Copley

"Yeni boyut (1076 uzantı) varolan boyutla eşleşiyor (1076 uzantı)"
Cerin

7
Bu numara temiz olduğunu düşündüm: Eğer -rseçeneği eklerseniz , FS yeniden boyutlandırmak için lvextendkanca olacak fsadm. Bu 3. adımı gereksiz kılar.
Jodie C

3
Bu cevabı, boş alanı doldurmak için bölümün zaten genişletildiğini ve yalnızca mantıksal hacimlerin güncellenmesi gerektiğini varsayalım. pvresize /dev/sda2Komut / dev / hda2 bölümü kadar hiçbir şey ayırdı veya fdisk yeniden boyutlandırıldı yapar. Benim sistemde fdisk ile yeniden boyutlandırmak zorunda kaldım, çünkü sistemimde bir yeniden boyutlandırma komutu görünmüyor ya da göstermiyordu. Fdisk yeniden boyutlandırma, bölümü silmeyi ve yeniden oluşturmayı içerir.
Jason,

2

Sisteminiz gerçekten 20 ila 50 GB arasında değişti mi? Sda2 cihazınız ~ 40GB olduğu için bu gerçekten garip görünüyor, lv_root 36GB gösterir ve takas 6GB gösterir.

Sizin çıkış fdisk -lgösterileri toplam sektörleri /dev/sdaDİR 104857600. Tarafından kullanılan son sektör /dev/sda2olduğunu 83886079. Bu, sürücüdeki tüm kullanılabilir alanı kullanmak için bölüm boyutunu ayarlamadığınızı söyler. Pvresize komutu bölüm tablosunu değiştirmez. Önce bölüm tablosunu değiştirmeniz gerekir.


1

Gparted'i takın. Kök olarak çalıştırın (uzaksa ssh -X veya x2go kullanın) Bölümü seçin. Sonundan (sağa doğru) boş alan göstermelidir. Olmazsa, sanal makinenizin yeni boyutunu görmesi için sanal makinenizi yeniden başlatmanız gerekir. Bu systemd ile minimum kesinti olmamalıdır.

Sağ tıklayın ve yeniden boyutlandır'ı seçin. Sonunu diskin sonuna sürükleyin. Başa dokunmadığınızdan emin olun. gparted, yeniden boyutlandırma sırasında bir bölümü hareket ettirebilir, ancak bu elbette çalışan bir sistemi yok edecektir. Ama sonun taşınması iyi. Beklemedeki işlemi gözden geçirin gparted, bölmeyi genişletmediğinizden ve taşımadığınızdan emin olmak için gerçekleştirecektir . Uygula'yı tıklayın. gparted diskteki bölümü değiştirecek, daha sonra canlı blok cihazının boyutunu değiştirerek, bölüm tablosunu yeniden okumak için çekirdeği ioctl verecektir. Ardından, bir LVM PV olduğunu gördüğü için sizin için pvresize eder. Gparted'den çıkın ve vgs şimdi yeni alanınızı gösterir.

Ayrılan söylentilerin, bir GUI'nin yükü olmadan tüm bunları yapabildiğini duydum, ancak hiçbir zaman vuduyu çözemedim. Parted, şimdiye kadar kullanmaya çalıştığım en kötü CLI arayüzlerinden biri olmalı.

Fdisk'i kullanmayın, yeniden boyutlandırmak için bölümü silmeniz ve yeniden konumlandırmanız gerekir ve varsayılan olarak LVM2 imzasını yazarken silecektir. Sanırım bu yıkıcı davranışı kapatmak için "gelişmiş" bir seçenek gördüm, ama bunu hiç denemedim.

Ayrıca cfdisk'i deneyebilirsiniz (curses fdisk). Kullanılabilir bir bölüm boyutlandırma olabilir. Pvresize'ı elle çalıştırmak yeterince kolaydır ve çekirdeğe bölüm tablosunu yeniden okumalarını söyleyen bir komut vardır. Fakat LVM imzasını fdisk gibi silmediğinden emin olmak için test etmek zorunda kalacağım.


0

LVM fiziksel birimi bir bölmede ise, hayır, yeniden başlatmadan yeniden boyutlandıramazsınız.

Bölüm tablosunu sürücüde düzenleyebilirsiniz, ancak Linux yeniden başlatana kadar kullanmayı reddedecektir.

Eğer XFS kullanıyorsanız, anahtar resize2fsiçin xfs_growfs.

Sen kullanarak hacim grubunda kullandığınız PV'leri ve LVs görüntüleyebilir pvsve lvs.

Ham diskte PV

pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

Bir bölümdeki PV

Önce bölümü, kullanımını yeniden boyutlandırmak zorunda parted, fdiskbunun için veya benzeri bir alet. Bu araçların yalnızca bölümlerin bulunduğu yerleri düzenlediğini , verileri dolaşmadıklarını unutmayın. Başka bir deyişle, kolayca diskteki sadece son bölümü genişletebilirsiniz. Ardından makinenizi yeniden başlatın ve bundan sonra LVM'ye ek alanın mevcut olduğunu bildirebilmeniz gerekir:

pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

Gparted Live CD kullanarak, sudo pvresize /dev/sda2"1 fiziksel birim (ler) yeniden boyutlandırıldı" raporunu veriyor , ancak sudo lvextend /dev/mapper/VolGroup-lv_root -L +10G"yetersiz boş alan: 320 uzantı gerekli, ancak yalnızca 0 kullanılabilir" hatasıyla başarısız oluyor. sudo fdisk -l54G olduğumu sudo pvdisplaybildiren raporlar, yalnızca 40G raporları kullanımda. Lvextend neden başarısız oluyor?
Cerin

1
@Cerin, bir bölümdeki PV için ilk Huberts deyimini kaçırdın. Öncelikle bölümü yeniden boyutlandırmanız, bunun için parted, fdisk veya benzeri bir araç kullanmanız gerekir .
Zoredache

@Zoredache, Tamam, peki, temelde benim bütün sorum bu. Bunu nasıl yapacağımı bilmiyorum. Az önce bir Gparted LiveCD'ye boot ettim resizeve birincil bölümleme boyutunu arttırmak için parted komutunu kullanmaya çalıştım , ancak bana "Dosya sistemi algılanamadı" hatası verdi. Parted veya fdisk kullanarak bölümü nasıl yeniden boyutlandırırsınız?
Cerin

@Cerin: SF'de arama yapın veya başka bir soru sorun
Hubert

0

Dağıtımınız için uygunsa ssm'yi (sistem depolama yöneticisi) kontrol etmeyi düşünürdüm.

Biraz daha fazla bilgi için bunu göz atın: /unix//a/293173

ssm, mantıklı birimlerin her şeyi kendiniz yapmak zorunda kalmadan yeniden boyutlandırılmasını kolaylaştırıyor gibi görünmektedir.

İşletim sistemimi yeniden başlattıktan ve ilk olarak root olarak giriş yaptıktan sonra, evdeki bölümümü genişletmek için kullanabildim. (Toplamda iki kez yeniden başlatmak zorunda kaldım, ancak sonuçta işe yaradı ve şimdi evde / evimde fazladan 50G var.)


0

25 howto'yu birleştirdikten sonra nihayet bu çözüme sahibim. Canlı cd gerektirmiyor, tamamen yanıyor.

Adım 1. Bölümü parçalı olarak biçimlendirin (gui yok). Bu örnekte, sanal kutuda diskin maksimum boyutu 8BG'den 32 GB'a yükselmiştir.

    # parted
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
       ....
    (parted) mkpart primary ext2 8590 100%
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
         3      8590MB  34,4GB  25,8GB   primary  ext2             lba
       ....
    (parted) set 3 lvm on
    (parted) set 3 lba off
    (parted) print
       ....
         3      8590MB  34,4GB  25,8GB   primary  ext2             lvm
       ....
    (parted) quit

Adım 2. Yeni bölüme göre bir Fiziksel Birim oluşturun

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

Adım 3. Fiziksel hacmi Birim Grubuna ekleyin. Düz bir fedora 28 sunucu kurulumunda hacim grubuna fedora adı verilir.

# vgextend fedora /dev/sda3
  Volume group "fedora" successfully extended

Adım 4. Birim grubundaki kullanılabilir alanı mantıksal birime ekleyin. Bir düz fedora 28 sunucu kurulumunda mantıksal birim kök denir.

# lvextend -l+100%FREE /dev/fedora/root
  Size of logical volume fedora/root changed from <6,20 GiB (1586 extents) to 30,19 GiB (7729 extents).
  Logical volume fedora/root successfully resized.

Adım 5. Dosya alanına, fazladan boşluk kullanması için mantıksal birimde söyleyin. Fedora'da dosya sistemi xfs'dir.

Dikkat! xfs_growfs, df çıktısında bulduğunuz dosya sisteminin adını değil, dosya sistemini tanımlamak için bağlama noktasını kullanır !!!!!!!

'Xfs_growfs / dev / mapper / fedora-root' komutu size / dev / mapper / fedora-root'un monte edilmiş bir XFS dosya sistemi olmadığını söyleyecektir. Farklı bir dosya sistemi kullanıyorsanız, https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html adresine bakın.

# xfs_growfs /
    data blocks changed from 1624064 to 7914496

6. Adım

# df
FileSystem               1K-blocks      Used   Available used% Mounted on
....
/dev/mapper/fedora-root   31647744   6492840    25154904  21% /
/dev/sda1                   999320    125576      804932  14% /boot
....

-1

Testdisk'i deneyin

sudo dnf testdisk'i yükle

sudo test diski

Sadece bir günlük dosyası oluşturmayı ayarlayın Sonra bölümleri listeler, - medyayı / bölümü seçin - sonra yazın - ve analiz edin - hızlı arama - seçin ve yazın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.