अपने VPS Linux Infrawire पर डिस्क अपग्रेड के बाद वर्चुअल डिस्क बड़ी हो जाती है, लेकिन पार्टिशन और फ़ाइल सिस्टम का आकार पुराना ही रहता है। दोनों को हाथ से बढ़ाना पड़ता है, और यह चलते सिस्टम पर, रूट फ़ाइल सिस्टम को अनमाउंट किए बिना किया जा सकता है।
यह गाइड Ubuntu 24.04, Debian 12, AlmaLinux 9 और Rocky 9 पर सामान्य पार्टिशन (ext4 और XFS) तथा LVM सेटअप को कवर करती है।
📋 पूर्वापेक्षाएँ
- ऐसा VPS जिसकी डिस्क पहले ही बढ़ाई जा चुकी हो (नया आकार
lsblkमें दिखना चाहिए) - root SSH एक्सेस (IP और root पासवर्ड आपके क्लाइंट एरिया में मिलते हैं)
- महत्वपूर्ण डेटा का हालिया बैकअप
1. पार्टिशन छूने से पहले बैकअप लें
माउंटेड ext4 या XFS फ़ाइल सिस्टम का आकार बदलना आम बात है, पर पार्टिशन टेबल में गलती से डेटा नष्ट हो सकता है। पहले ज़रूरी चीज़ें सुरक्षित करें:
Bash# जो डेटा खो नहीं सकते उसे आर्काइव करें tar -czf /root/backup-etc.tar.gz /etc rsync -avz /var/www/ USER@BACKUP_HOST:/backups/www/ # पार्टिशन टेबल सहेजें (बहाल करने में काम आती है) sfdisk -d /dev/vda > /root/vda-partition-table.txt
2. डिस्क, पार्टिशन और फ़ाइल सिस्टम पहचानें
Bashlsblk -f df -hT /
सामान्य आउटपुट: 80G की डिस्क vda, / पर माउंट 40G का पार्टिशन vda1, फ़ाइल सिस्टम ext4 या xfs। अगर रूट /dev/mapper/... पर है तो आप LVM इस्तेमाल कर रहे हैं: खंड 5 देखें। डिस्क का नाम sda या nvme0n1 भी हो सकता है (तब पार्टिशन p1 पर खत्म होते हैं)।
3. growpart से पार्टिशन बढ़ाएँ
टूल इंस्टॉल करें। Ubuntu और Debian पर पैकेज cloud-guest-utils है, AlmaLinux और Rocky पर cloud-utils-growpart:
Bash# Ubuntu / Debian apt update && apt install -y cloud-guest-utils # AlmaLinux / Rocky dnf install -y cloud-utils-growpart
फिर डिस्क /dev/vda का पार्टिशन नंबर 1 बढ़ाएँ (डिस्क और नंबर के बीच स्पेस पर ध्यान दें):
Bashgrowpart /dev/vda 1
अगर संदेश NOCHANGE कहे, तो पार्टिशन पहले से पूरी जगह ले रहा है। कुछ इमेज में रूट पार्टिशन के बाद एक छोटा पार्टिशन भी होता है (जैसे swap): तब growpart रूट को नहीं बढ़ा सकता, और पहले उस पार्टिशन को हटाना या खिसकाना पड़ता है।
जाँचें कि कर्नेल नया आकार देख रहा है:
Bashlsblk /dev/vda # अगर पुराना आकार अब भी दिखे: partprobe /dev/vda
4. फ़ाइल सिस्टम बढ़ाएँ
अपने फ़ाइल सिस्टम प्रकार (जो lsblk -f दिखाता है) के अनुसार कमांड चुनें।
ext4 के लिए:
Bashresize2fs /dev/vda1
XFS के लिए (AlmaLinux और Rocky पर डिफ़ॉल्ट)। आर्गुमेंट डिवाइस नहीं, माउंट पॉइंट होता है, और XFS केवल बढ़ सकता है, कभी घट नहीं सकता:
Bashxfs_growfs /
5. LVM की स्थिति: pvresize और lvextend
जब रूट लॉजिकल वॉल्यूम LVM पर हो, तो एक परत और होती है: पार्टिशन, फिर फ़िज़िकल वॉल्यूम, फिर लॉजिकल वॉल्यूम, फिर फ़ाइल सिस्टम।
Bashlsblk pvs && vgs && lvs # 1. फ़िज़िकल वॉल्यूम वाला पार्टिशन बढ़ाएँ (यहाँ vda3) growpart /dev/vda 3 # 2. LVM को बताएँ कि फ़िज़िकल वॉल्यूम बड़ा हो गया है pvresize /dev/vda3 # 3. लॉजिकल वॉल्यूम और उसका फ़ाइल सिस्टम एक साथ बढ़ाएँ (-r) lvextend -r -l +100%FREE /dev/mapper/VG_NAME-LV_NAME
-r विकल्प सही टूल (resize2fs या xfs_growfs) खुद चला देता है। VG_NAME-LV_NAME को lvs के आउटपुट के अनुसार बदलें, जैसे /dev/ubuntu-vg/ubuntu-lv। खाली जगह का सिर्फ़ एक हिस्सा लेना हो तो -l +100%FREE की जगह -L +10G लिखें।
6. नतीजा जाँचें
Bashdf -h / lsblk
df -h का Size कॉलम अब नई क्षमता के बराबर होना चाहिए, और lsblk में पार्टिशन पूरी डिस्क भरता दिखना चाहिए। रीबूट ज़रूरी नहीं है; पूरी प्रक्रिया में आपके एप्लिकेशन चलते रहते हैं।
🛠️ समस्या निवारण
growpart: command not found: पैकेज इंस्टॉल नहीं है। cloud-guest-utils (apt) या cloud-utils-growpart (dnf) इंस्टॉल करें।
NOCHANGE: partition 1 could not be grown: या तो डिस्क असल में बढ़ी ही नहीं (lsblk को अपने ऑर्डर से मिलाएँ), या जिस पार्टिशन को बढ़ाना है उसके ठीक बाद दूसरा पार्टिशन है। fdisk -l /dev/vda से जाँचें।
resize2fs: Bad magic number in super-block: फ़ाइल सिस्टम शायद ext4 नहीं, XFS है। lsblk -f चलाएँ और xfs_growfs / इस्तेमाल करें।
xfs_growfs: / is not a mounted XFS filesystem: आपने डिवाइस का नाम दिया, या फ़ाइल सिस्टम ext4 है। माउंट पॉइंट दें और पहले प्रकार जाँचें।
lvextend बताता है कि कोई खाली extent नहीं: आपने growpart या pvresize छोड़ दिया। pvs चलाकर PFree कॉलम देखें।
🎉 आपकी अतिरिक्त डिस्क जगह अब इस्तेमाल के लिए तैयार है: बिना रीबूट, बिना डाउनटाइम, और df -h इसका प्रमाण है!