sunucu.com.tr
Linux Sunucular

Ubuntu disk genişletme ve Linux'ta LVM: bulut sunucuda growpart, pvresize, lvextend ve standart bölümü büyütme

Panelden diski büyüttünüz ama df -h hâlâ eski boyutu mu gösteriyor? Bu rehberde Ubuntu ve diğer Linux dağıtımlarında yeni alanı kullanıma açmanın iki yolunu anlatıyoruz: LVM'de growpart, pvresize ve lvextend -r; LVM olmayan bölümde growpart ile resize2fs ya da xfs_growfs.

Güncellendi: 9 dk okuma

Sanal diski panelden ya da hipervizörden büyütmek işin yalnız ilk yarısı. Disk artık daha büyük ama bölüm tablosu, LVM katmanı ve dosya sistemi hâlâ eski boyutta, bu yüzden df -h aynı rakamı göstermeye devam eder. Bu rehberde Ubuntu disk genişletme işlemini ve diğer Linux dağıtımlarındaki karşılığını iki senaryoda anlatıyoruz: LVM kullanan sunucular ve LVM kullanmayan standart bölümler.

Eskiden yaygın olan yöntem, boş alana fdisk ile yeni bir bölüm açıp onu birim grubuna eklemekti. Bugün daha az adımlı ve daha az riskli yol, mevcut bölümü yerinde büyütmek. Aşağıdaki adımlar bu yaklaşımı esas alıyor; eski yönteme yazının sonunda kısaca değiniyoruz.

Önce yapıyı tanıyın: lsblk, df -hT ve findmnt

Hangi komutu çalıştıracağınız üç soruya bağlı: hangi diskte, hangi bölümde çalışıyorsunuz; arada LVM var mı; dosya sistemi ext4 mü, XFS mi? Bunu deneme yanılmayla değil, işlemden önce şu komutlarla öğrenin:

bash
lsblk -f
df -hT
findmnt /

Okurken şunlara bakın:

  • Disk adı: Sanal sunucularda genellikle /dev/sda ya da /dev/vda, NVMe disklerde /dev/nvme0n1 olur.
  • Bölüm numarası: Kök dosya sistemini taşıyan bölüm sda3, vda1 ya da nvme0n1p2 gibi görünür.
  • LVM var mı: lsblk -f çıktısında bölümün altında LVM2_member ve ondan türeyen ubuntu--vg-ubuntu--lv benzeri bir aygıt görüyorsanız LVM kullanıyorsunuz. df -hT çıktısında kök dizin /dev/mapper/... olarak görünüyorsa da durum aynıdır.
  • Dosya sistemi türü: df -hT çıktısındaki Type sütunu ext4 ya da xfs gösterir. Bu bilgi, son adımda resize2fs mi xfs_growfs mu kullanacağınızı belirler.

LVM tarafında ek ayrıntı için şu komutlar işinizi görür:

bash
sudo pvs
sudo vgs
sudo lvs

pvs hangi bölümün fiziksel birim (PV) olduğunu, vgs birim grubundaki (VG) boş alanı, lvs ise mantıksal birimlerin (LV) boyutunu gösterir.

Başlamadan önce kontrol listesi

Disk büyütme genellikle sorunsuz geçer, ama bölüm tablosuna dokunan her işlem gibi yanlış diskte ya da yanlış bölümde yapılırsa geri dönüşü zor olabilir. İşleme başlamadan önce:

  1. Güncel bir yedek ya da snapshot alın. Snapshot tek başına yedek sayılmaz, ama bu tür bir işlem öncesinde hızlı geri dönüş noktası sağlar. Kalıcı koruma için sunucunun dışında tutulan bir kopya gerekir; Bulut Yedekleme hizmeti bu amaçla kullanılabilir.
  2. Disk adını iki kez doğrulayın. Birden fazla diski olan sunucularda lsblk çıktısındaki boyutlara bakarak doğru diski seçtiğinizden emin olun.
  3. Hangi bölümün büyütüleceğini netleştirin. Bir bölüm yalnız hemen arkasındaki boş alana doğru büyüyebilir. Kök bölümün arkasında swap ya da başka bir bölüm varsa, yerinde büyütme bu haliyle mümkün olmaz.
  4. Küçültme planlamayın. XFS küçültmeyi yalnız çok sınırlı biçimde destekler; pratikte XFS'i yalnız büyüyebilen bir dosya sistemi olarak düşünün. Gereğinden fazla alan verirseniz geri almak zahmetli olur.

Bulut sunucuda disk büyütme sonrası: çekirdek yeni boyutu görüyor mu?

Bulut sunucu panelinden diski büyüttükten sonra ilk kontrol, işletim sisteminin yeni disk boyutunu görüp görmediğidir:

bash
lsblk /dev/sda

Disk satırındaki boyut yeni değeri gösteriyorsa sonraki adıma geçin. Hâlâ eski boyut görünüyorsa iki seçeneğiniz var. En basiti sunucuyu planlı bir zamanda yeniden başlatmaktır. Yeniden başlatma istemiyorsanız, SCSI olarak görünen disklerde çekirdekten diski yeniden okumasını isteyebilirsiniz:

bash
echo 1 | sudo tee /sys/class/block/sda/device/rescan
lsblk /dev/sda

sda yerine kendi disk adınızı yazın. Bu adımdan sonra disk büyük görünür ama bölümler hâlâ eski boyuttadır; aradaki fark, bölümün arkasında ayrılmamış alan olarak durur.

growpart aracının varlığını kontrol edin

Bölümü yerinde büyütmek için growpart kullanacağız. Bulut imajlarında çoğu zaman hazır gelir. Kurulu olup olmadığını şöyle kontrol edin:

bash
command -v growpart

Çıktı boşsa aracı dağıtımınızın paket deposundan kurun; Ubuntu ve Debian'da apt, RHEL tabanlı dağıtımlarda dnf ile growpart'ı sağlayan paketi arayabilirsiniz. Kullanım seçenekleri için growpart --help komutuna bakın.

growpart sözdiziminde disk ve bölüm numarası ayrı yazılır. /dev/sda3 değil, /dev/sda 3 biçiminde:

bash
sudo growpart /dev/sda 3
sudo growpart /dev/nvme0n1 2

Senaryo 1: LVM kullanan sunucuda disk genişletme

Bu senaryoda zincir şöyle: disk, bölüm, fiziksel birim (PV), birim grubu (VG), mantıksal birim (LV) ve dosya sistemi. Her katmanı sırayla büyütmeniz gerekir. Örneklerde PV'nin /dev/sda3 olduğunu, VG adının ubuntu-vg, LV adının ubuntu-lv olduğunu varsayıyoruz. Bunlar örnek adlardır; kendi adlarınızı pvs ve lvs çıktısından alın.

Adım 1: Bölümü büyütün

bash
sudo growpart /dev/sda 3
lsblk /dev/sda

Kontrol noktası: lsblk çıktısında sda3 artık diskin boş alanını da kapsamalı.

Adım 2: Fiziksel birimi büyütün

bash
sudo pvresize /dev/sda3
sudo pvs

pvresize, PV'yi büyüyen bölümün tamamını kaplayacak şekilde genişletir. PV bir birim grubuna dahil olabilir ve üzerinde etkin mantıksal birimler çalışıyor olabilir; işlem için bunları kapatmanız gerekmez. Yeni bölüm açıp vgextend yapma ihtiyacı da böylece ortadan kalkar.

Kontrol noktası: sudo vgs çıktısındaki VFree sütunu artık eklediğiniz alan kadar boş yer göstermeli.

Adım 3: Mantıksal birimi ve dosya sistemini tek komutla büyütün

bash
sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

Bu komutun iki parçası önemli:

  • -l +100%FREE, birim grubunda kalan boş alanın tamamını mantıksal birime ekler. Baştaki + işareti, değerin mevcut boyutun üzerine eklenmesini sağlar.
  • -r (uzun adıyla --resizefs), mantıksal birimi büyüttükten sonra üzerindeki dosya sistemini de fsadm aracılığıyla büyütür. Böylece ayrıca resize2fs ya da xfs_growfs çalıştırmanız gerekmez ve dosya sistemi türünü yanlış tahmin etme riski ortadan kalkar.

Boş alanın tamamını değil de bir kısmını vermek istiyorsanız boyutu doğrudan belirtin, kalan alan VG'de ileride kullanmak üzere bekler:

bash
sudo lvextend -r -L +50G /dev/ubuntu-vg/ubuntu-lv

Adım 4: Sonucu doğrulayın

bash
df -hT /
sudo lvs

df -hT çıktısında kök dosya sistemi yeni boyutu göstermeli. Göstermiyorsa büyük olasılıkla -r seçeneği unutulmuştur; bu durumda dosya sistemini aşağıdaki "Senaryo 2" bölümündeki son adımda anlatılan komutla ayrıca büyütün.

Senaryo 2: LVM kullanmayan standart bölümü genişletme

Birçok bulut imajı LVM kullanmaz; kök dosya sistemi doğrudan /dev/sda1 ya da /dev/vda1 gibi bir bölümün üzerindedir. Burada zincir daha kısa: disk, bölüm ve dosya sistemi.

Adım 1: Bölümü büyütün

bash
sudo growpart /dev/vda 1
lsblk /dev/vda

Adım 2a: ext4 dosya sistemini büyütün

bash
sudo resize2fs /dev/vda1

resize2fs ext2, ext3 ve ext4 dosya sistemleriyle çalışır. Çekirdek ve dosya sistemi destekliyorsa, bağlı (mount edilmiş) bir ext4 dosya sistemi çevrimiçi olarak büyütülebilir; yani kök dizini ayırmanız gerekmez. Boyut belirtmediğinizde dosya sistemi bölümün sonuna kadar genişler.

Adım 2b: XFS dosya sistemini büyütün

bash
sudo xfs_growfs -d /

xfs_growfs, XFS dosya sisteminin bağlı olmasını şart koşar ve parametre olarak bağlama noktasını (burada /) ya da bağlı dosya sisteminin blok aygıt adını kabul eder. -d seçeneği tek başına kullanıldığında veri bölümünü olabilecek en büyük boyuta çıkarır.

Bağlama noktası farklıysa, örneğin ayrı bir /data diski genişletiyorsanız, komutu o yolla çalıştırın:

bash
sudo xfs_growfs -d /data

Adım 3: Doğrulayın

bash
df -hT

Kontrol noktası: ilgili satırda Size sütunu yeni değeri, Type sütunu da beklediğiniz dosya sistemini göstermeli.

Ubuntu disk genişletme: uçtan uca örnek

Ubuntu sunucu kurulumunda LVM seçildiyse kök dosya sistemi bir mantıksal birim üzerinde durur. Panelden diski büyüttükten sonra izlenecek sıra şöyle özetlenebilir. Disk ve birim adları örnektir, kendi lsblk çıktınıza göre uyarlayın:

bash
# 1. Mevcut durumu kaydedin
lsblk -f
df -hT /
sudo vgs

# 2. Çekirdek yeni disk boyutunu görmüyorsa diski yeniden taratın
echo 1 | sudo tee /sys/class/block/sda/device/rescan

# 3. LVM bölümünü büyütün (örnekte 3 numaralı bölüm)
sudo growpart /dev/sda 3

# 4. PV'yi bölüm boyutuna genişletin
sudo pvresize /dev/sda3

# 5. LV'yi ve dosya sistemini birlikte büyütün
sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

# 6. Sonucu kontrol edin
df -hT /

Ubuntu sunucu LVM kullanmıyorsa 4. ve 5. adımların yerine, dosya sistemi ext4 ise sudo resize2fs /dev/sda1, XFS ise sudo xfs_growfs -d / çalıştırırsınız.

Ubuntu'da sık görülen bir durum da şu: disk zaten büyük ama kurulum sırasında birim grubunun yalnız bir kısmı kök mantıksal birime verilmiş. sudo vgs çıktısında VFree sıfırdan büyükse growpart ve pvresize adımlarını atlayıp doğrudan 5. adımı uygulayabilirsiniz.

Eski yöntem: yeni bölüm açıp vgextend yapmak

Eski rehberlerde, boş alana fdisk ile yeni bir bölüm (örneğin sda4) açılır, pvcreate ile PV yapılır, vgextend ile birim grubuna eklenir, ardından lvextend ile mantıksal birim büyütülür. Bu yöntem hâlâ çalışır ve bazı durumlarda mantıklıdır; örneğin mevcut bölüm diskin sonunda değilse ya da sunucuya ikinci bir disk eklediyseniz.

Yine de tek diski büyüttüğünüz olağan durumda dezavantajları vardır: bölüm tablosunu elle düzenlemek hata payını artırır, MBR tablosunda birincil bölüm sayısı sınırlıdır ve her büyütmede PV sayısı artar. Mevcut bölümü growpart ile büyütüp pvresize yapmak aynı sonucu daha az adımla verir.

İkinci bir disk eklediyseniz akış şu şekildedir: yeni diski lsblk ile bulun, üzerinde bölüm açın ya da diski doğrudan PV yapın, vgextend ile mevcut VG'ye ekleyin ve son olarak lvextend -r çalıştırın. Bu durumda yeni diskin boş olduğundan, içinde veri olmadığından emin olun.

Sık yapılan hatalar

  • Dosya sistemi türünü tahmin etmek. ext4 için resize2fs, XFS için xfs_growfs kullanılır. XFS üzerinde resize2fs çalıştırmak "Bad magic number in super-block" gibi bir hata verir. İşlemden önce df -hT ile türü öğrenin ya da LVM'de lvextend -r kullanarak seçimi araca bırakın.
  • growpart'a bölümü tek parça yazmak. growpart /dev/sda3 hatalıdır; doğrusu growpart /dev/sda 3.
  • pvresize adımını atlamak. Bölüm büyüdü ama PV büyütülmediyse vgs boş alan göstermez ve lvextend "yetersiz alan" hatası verir.
  • lvextend'te + işaretini unutmak. -L 50G mantıksal birimi toplamda 50G yapmaya çalışır; mevcut boyuta ekleme yapmak için -L +50G yazılmalıdır.
  • xfs_growfs'u bağlı olmayan dosya sisteminde çalıştırmak. XFS büyütme yalnız bağlı dosya sisteminde yapılır.
  • Yanlış diski seçmek. Birden fazla diski olan sunucularda boyutlara bakarak doğrulamadan komut çalıştırmayın.
  • Disk dolmadan önlem almamak. Büyütme genellikle disk dolduğunda acil olarak yapılır. Doluluğu önceden izlemek için Linux disk doluluk uyarısı betiği ile eşik aşıldığında bildirim alabilirsiniz.

Sık sorulan sorular

Disk genişletirken sunucuyu yeniden başlatmak gerekir mi?

Çoğu durumda hayır. growpart bağlı bir bölümü büyütebilir, pvresize etkin mantıksal birimler varken çalışır, ext4 ve XFS de bağlıyken çevrimiçi büyütülebilir. Yeniden başlatma genellikle yalnız çekirdek yeni disk boyutunu görmüyorsa ve diski yeniden taratamıyorsanız gerekir.

lvextend -r ile resize2fs ya da xfs_growfs arasındaki fark nedir?

lvextend -r, mantıksal birimi büyüttükten sonra dosya sistemini de fsadm aracılığıyla büyütür; dosya sistemi türünü sizin bilmeniz gerekmez. resize2fs ve xfs_growfs ise yalnız dosya sistemini büyütür. LVM yoksa ya da -r olmadan lvextend çalıştırdıysanız bu komutları elle kullanırsınız.

Ubuntu'da df -h neden hâlâ eski boyutu gösteriyor?

Zincirin bir halkası büyütülmemiştir. Sırayla kontrol edin: lsblk diskin ve bölümün yeni boyutunu gösteriyor mu, sudo vgs boş alan gösteriyor mu, sudo lvs mantıksal birimin büyüdüğünü gösteriyor mu? Hepsi tamamsa eksik kalan dosya sistemidir; türüne göre resize2fs ya da xfs_growfs çalıştırın.

Disk büyüttükten sonra küçültebilir miyim?

ext4 bağlı değilken küçültülebilir, ancak bu daha riskli bir işlemdir ve mutlaka yedekle yapılmalıdır. XFS yalnız çok sınırlı biçimde küçültülebildiği için pratikte geri alınamaz kabul edilmelidir. Bu yüzden ihtiyacınız kadar büyütün ve LVM'de kalan alanı VG'de bekletmeyi düşünün.

LVM sürümü komutları etkiler mi?

Bu rehberdeki pvresize, lvextend -l +100%FREE ve -r seçeneği güncel LVM araçlarında yer alır; kılavuz sayfalarının güncel hali LVM araçlarının 2.03.42 sürümünü belgeliyor. Eski bir dağıtım kullanıyorsanız seçenekleri kendi sisteminizde man lvextend ve man pvresize ile doğrulayın; kurulu sürümü sudo lvm version komutu gösterir.

Yazar

Kurucu, sunucu.com.tr · Bulut altyapısı ve yapay zeka otomasyonları

sunucu.com.tr ve Sunucu UK'in kurucusu. Bulut altyapısı, sanallaştırma ve sunucu yönetimi üzerine çalışıyor; şirketlerin iş yazılımlarını, web sitelerini ve yapay zeka iş yüklerini güvenli sunuculara taşıyor. Blogdaki rehberler sahada karşılaşılan kurulum, güvenlik ve taşıma işlerinden derlenir; yazılar yapay zeka desteğiyle hazırlanır ve kaynaklarla doğrulanır.

Tüm yazılarıProfil