افزایش حجم پارتیشن لینوکس بعد از ارتقای دیسک VPS معمولاً بهصورت خودکار انجام نمیشود. خیلی وقتها در پنل سرویسدهنده میبینید که اندازه دیسک بیشتر شده، اما داخل لینوکس هنوز همان ظرفیت قبلی در دسترس است. این رفتار طبیعی است، چون بزرگتر شدن دیسک مجازی لزوماً به معنی بزرگ شدن پارتیشن، لایه LVM یا خود فایلسیستم نیست. برای همین اگر بدون بررسی دقیق سراغ اجرای چند دستور پراکنده بروید، ممکن است روی دیسک یا پارتیشن اشتباه تغییر ایجاد کنید.

در این آموزش، مسیر کار را مرحلهبهمرحله و بر اساس ساختار واقعی سرور پیش میبریم. تمرکز مقاله روی سناریوی رایج بعد از ارتقای دیسک VPS است؛ یعنی حالتی که دیسک اصلی بزرگتر شده اما فضای جدید هنوز به روت یا پارتیشن مورد نظر اضافه نشده است. در ادامه میبینید چطور تشخیص دهید مشکل در کدام لایه قرار دارد، چه زمانی فقط باید پارتیشن را بزرگ کنید، چه زمانی LVM هم در میان است، و برای فایلسیستمهای ext4 و XFS دقیقاً چه تفاوتی وجود دارد.
هدف این مطلب فقط گفتن چند دستور نیست. مهمتر از خود دستورها این است که بدانید هرکدام را در چه شرایطی باید اجرا کنید. اگر این تشخیص اولیه درست باشد، فرایند افزایش حجم پارتیشن لینوکس معمولاً ساده و کمریسک میشود. اما اگر ساختار فعلی را اشتباه تشخیص دهید، حتی دستورهای درست هم ممکن است در جای نادرست دردسر ایجاد کنند.
در این مقاله سناریوهای رایج با دیسکهایی مانند /dev/vda، /dev/sda و /dev/nvme0n1 پوشش داده میشود. همچنین خطاهای متداول، محدودیتهای مهم، نکات ایمنی و روش بررسی نتیجه نهایی را هم مرور میکنیم تا بعد از ارتقای دیسک VPS، فضای اضافه واقعاً داخل سیستمعامل قابل استفاده شود.
افزایش حجم پارتیشن لینوکس از کدام لایه شروع میشود؟
برای حل درست مسئله افزایش حجم پارتیشن لینوکس، ابتدا باید مشخص کنید افزایش فضا در کدام لایه متوقف شده است. معمولاً یکی از این حالتها رخ میدهد:
- اندازه خود دیسک در سیستمعامل هنوز بهروزرسانی نشده است.
- دیسک بزرگتر شده، اما پارتیشن قبلی هنوز تا انتهای فضای آزاد توسعه پیدا نکرده است.
- پارتیشن بزرگ شده، اما فایلسیستم هنوز از فضای جدید استفاده نمیکند.
- بین پارتیشن و فایلسیستم یک لایه LVM وجود دارد و باید آن را هم جداگانه گسترش دهید.
پس قبل از هر تغییری، این چند دستور تشخیصی را کنار هم ببینید:
lsblk
fdisk -l
df -h
findmnt
cat /etc/fstab
lsblk نمای کلی از دیسکها، پارتیشنها، نوع آنها و نقطه اتصال میدهد. fdisk -l برای دیدن اندازه واقعی دیسک و مرز پارتیشنها مفید است. df -h نشان میدهد فایلسیستمهای mount شده واقعاً چه ظرفیتی دارند. findmnt کمک میکند بفهمید مثلاً روت روی کدام دستگاه mount شده است. فایل /etc/fstab هم برای بررسی UUIDها و ساختار mount اهمیت دارد.
خروجی این ابزارها را باید کنار هم تفسیر کنید. مثلاً اگر lsblk نشان دهد دیسک بزرگتر شده ولی پارتیشن روت هنوز کوچک است، باید پارتیشن را توسعه دهید. اگر اندازه پارتیشن درست است اما df -h هنوز ظرفیت قبلی را نشان میدهد، مرحله بعدی توسعه فایلسیستم است. اگر روت روی چیزی مثل /dev/mapper/vg0-root قرار دارد، احتمالاً با LVM سروکار دارید و فقط بزرگ کردن پارتیشن کافی نیست.
پیشنیازها و احتیاطهای مهم قبل از هر تغییر
بخش زیادی از موفقیت در افزایش حجم پارتیشن لینوکس، نه به اجرای دستورها بلکه به احتیاط پیش از اجرا مربوط است. چند نکته زیر را باید جدی بگیرید.
شناخت دقیق نام دیسک و پارتیشن
نامگذاری دیسکها در همه VPSها یکسان نیست. ممکن است دیسک اصلی شما /dev/vda باشد، یا /dev/sda، یا روی بستر NVMe چیزی مثل /dev/nvme0n1. همین تفاوت روی نام پارتیشنها هم اثر میگذارد:
/dev/sda1/dev/vda2/dev/nvme0n1p1
اگر این تفاوت کوچک را نادیده بگیرید، ممکن است دستور را روی مقصد اشتباه اجرا کنید. در افزایش حجم پارتیشن لینوکس همیشه نام واقعی دیسک و شماره پارتیشن را از خروجی سیستم خودتان استخراج کنید، نه از روی مثال.
تشخیص محل واقعی روت
در خیلی از سرورها، پارتیشن بوت از پارتیشن روت جدا است. در سیستمهایی با GPT و EFI هم معمولاً یک پارتیشن EFI جداگانه وجود دارد. در اغلب موارد هدف شما افزایش پارتیشن روت یا پارتیشنی است که به LVM اختصاص داده شده، نه دستکاری پارتیشن EFI یا /boot. بنابراین قبل از هر تغییر، با findmnt و lsblk مطمئن شوید روت دقیقاً روی چه دستگاهی قرار دارد.
داشتن نسخه پشتیبان و دسترسی نجات
اگر ارائهدهنده VPS امکان snapshot، backup یا rescue mode دارد، قبل از شروع از آن استفاده کنید. این کار بهویژه وقتی مهم است که بخواهید مرز پارتیشن را تغییر دهید. همچنین در فرایند افزایش حجم پارتیشن لینوکس، دسترسی به کنسول وب یا KVM میتواند زمانی که SSH بعد از تغییرات دچار مشکل شود بسیار نجاتبخش باشد.
شناخت نوع فایلسیستم
برای توسعه فایلسیستم باید ابزار مناسب همان فایلسیستم را بهکار ببرید. مثلاً:
- برای
ext4معمولاً ازresize2fsاستفاده میشود. - برای
XFSباید ازxfs_growfsاستفاده کنید.
اگر نوع فایلسیستم را ندانید، ممکن است دستور نامناسبی اجرا کنید. برای تشخیص در سناریوی افزایش حجم پارتیشن لینوکس، این دستورها مفید هستند:
lsblk -f
df -T
توجه به موقعیت پارتیشن
اگر پارتیشن مورد نظر آخرین پارتیشن دیسک نباشد، افزایش حجم پارتیشن لینوکس برای آن همیشه مستقیم، ساده یا حتی ممکن نیست. در بیشتر سناریوهای رایج VPS، پارتیشن روت یا PV مربوط به LVM آخرین پارتیشن است و همین موضوع کار را راحتتر میکند. اما اگر بعد از پارتیشن شما، پارتیشن دیگری وجود داشته باشد، باید با دقت بیشتری تصمیم بگیرید.
چطور تشخیص دهیم ساختار سیستم مستقیم است یا LVM؟
اول این دستور را اجرا کنید:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
اگر خروجی شبیه این باشد:
vda 80G disk
├─vda1 1G part /boot
└─vda2 39G part /
به احتمال زیاد روت مستقیماً روی پارتیشن قرار دارد. در این وضعیت برای افزایش حجم پارتیشن لینوکس کافی است پارتیشن را بزرگ کنید و بعد فایلسیستم را توسعه دهید.
اما اگر خروجی چیزی شبیه این باشد:
vda 80G disk
├─vda1 1G part /boot
└─vda2 79G part
└─vg0-root 39G lvm /
یعنی پارتیشن vda2 فقط حامل یک Physical Volume برای LVM است و روت روی Logical Volume قرار دارد. در این حالت باید چند مرحله پشتسرهم انجام شود: توسعه پارتیشن، سپس pvresize، بعد lvextend و در پایان توسعه فایلسیستم.
برای تأیید این ساختار، این دستورها هم مفیدند:
pvs
vgs
lvs
حالت اول: افزایش حجم پارتیشن لینوکس بدون LVM
این سناریو در VPSهای ساده بسیار رایج است. فرض کنید سرویسدهنده اندازه دیسک را افزایش داده و حالا فضای آزاد در انتهای دیسک وجود دارد، اما در فرایند افزایش حجم پارتیشن لینوکس، پارتیشن روت هنوز همان اندازه قبلی را دارد.
مرحله اول: بررسی اینکه کرنل اندازه جدید دیسک را میبیند
قبل از هر چیز با lsblk یا fdisk -l بررسی کنید که خود لینوکس اندازه جدید دیسک را تشخیص داده است یا نه. اگر هنوز اندازه قدیمی دیده میشود، ممکن است لازم باشد جدول دستگاه دوباره خوانده شود یا در برخی محیطها یک reboot کنترلشده انجام شود. چون این رفتار به بستر مجازیسازی وابسته است، بدون دیدن خروجی واقعی نباید حدسی تصمیم گرفت.
مرحله دوم: توسعه پارتیشن با growpart
اگر ابزار growpart در دسترس باشد، در بسیاری از VPSها سادهترین گزینه است. مثال:
growpart /dev/vda 2
این دستور پارتیشن دوم روی دیسک /dev/vda را تا جایی که ممکن باشد به سمت فضای آزاد انتهای دیسک گسترش میدهد. اگر دیسک شما NVMe باشد، الگو به این شکل است:
growpart /dev/nvme0n1 2
بعد از اجرا، دوباره وضعیت را بررسی کنید:
lsblk
fdisk -l /dev/vda
اگر اندازه پارتیشن بزرگتر شده باشد، هنوز کار تمام نشده است. تا اینجا فقط ظرف پارتیشن را بزرگ کردهاید و برای تکمیل افزایش حجم پارتیشن لینوکس باید فایلسیستم را هم گسترش دهید.
مرحله سوم: توسعه فایلسیستم ext4
اگر نوع فایلسیستم ext4 باشد، معمولاً از این دستور استفاده میشود:
resize2fs /dev/vda2
بعد از آن با df -h نتیجه را بررسی کنید. در بسیاری از توزیعها، توسعه ext4 در حالت mount شده هم قابل انجام است، اما همچنان باید مطمئن باشید که دستگاه درست را هدف گرفتهاید.
مرحله چهارم: توسعه فایلسیستم XFS
اگر فایلسیستم XFS باشد، دستور روی mount point اجرا میشود، نه مستقیماً روی بلاکدیوایس:
xfs_growfs /
اگر پارتیشن دیگری غیر از روت را توسعه میدهید، باید mount point همان را بدهید.
نمونه روند کامل در سناریوی مستقیم
اگر ساختار شما مستقیم باشد و فایلسیستم ext4 داشته باشید، روند کلی میتواند چنین باشد:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
growpart /dev/vda 2
resize2fs /dev/vda2
df -h
و اگر فایلسیستم XFS باشد:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
growpart /dev/vda 2
xfs_growfs /
df -h
البته این مثال فقط زمانی درست است که واقعاً روت روی همان پارتیشن باشد و لایه دیگری مثل LVM در مسیر وجود نداشته باشد.
حالت دوم: افزایش حجم پارتیشن لینوکس در ساختار LVM
در بسیاری از نصبهای سروری، بهویژه در برخی قالبهای آماده توزیعها، LVM بهصورت پیشفرض فعال است. در این حالت مسیر افزایش حجم پارتیشن لینوکس چندلایه است. یعنی باید بهترتیب پارتیشن، Physical Volume، Logical Volume و در نهایت فایلسیستم را توسعه دهید.
مرحله اول: پیدا کردن PV و LV مرتبط با روت
با این دستورها ساختار را ببینید:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
lvs
اگر مثلاً روت روی /dev/mapper/vg0-root باشد و /dev/vda2 عضو همان Volume Group باشد، ابتدا باید خود پارتیشن vda2 را بزرگ کنید.
مرحله دوم: توسعه پارتیشن حامل PV
مثل سناریوی قبلی، اگر پارتیشن دوم میزبان PV باشد:
growpart /dev/vda 2
در این مرحله فقط اندازه پارتیشنی که LVM روی آن سوار است افزایش پیدا میکند.
مرحله سوم: شناساندن فضای جدید به LVM
بعد از توسعه پارتیشن، LVM هنوز فضای جدید را نمیشناسد. برای همین باید PV را resize کنید:
pvresize /dev/vda2
حالا با pvs و vgs میتوانید ببینید که فضای آزاد جدید وارد Volume Group شده است یا نه.
مرحله چهارم: توسعه Logical Volume
در ادامه باید Logical Volume مورد نظر را گسترش دهید. اگر میخواهید تمام فضای آزاد موجود به LV روت اضافه شود:
lvextend -l +100%FREE /dev/vg0/root
مسیر LV در همه سیستمها یکسان نیست. ممکن است چیزی مانند /dev/vg0/root، یا /dev/mapper/ubuntu--vg-ubuntu--lv ببینید. ملاک شما باید خروجی lvs باشد، نه نامهای فرضی.
مرحله پنجم: توسعه فایلسیستم روی LV
حالا نوبت فایلسیستم است. اگر ext4 دارید:
resize2fs /dev/vg0/root
و اگر XFS دارید و روت روی / mount شده است:
xfs_growfs /
نمونه روند کامل در سناریوی LVM
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
lvs
growpart /dev/vda 2
pvresize /dev/vda2
lvextend -l +100%FREE /dev/vg0/root
resize2fs /dev/vg0/root
df -h
اگر فایلسیستم شما XFS باشد، در خط آخر توسعه فایلسیستم باید بهجای resize2fs از xfs_growfs / استفاده کنید.
اگر growpart موجود نبود یا جواب نداد چه کنیم؟
در بعضی سیستمها growpart نصب نیست یا در شرایط خاص رفتار مورد انتظار را ندارد. در این حالت ابزارهایی مثل parted مطرح میشوند. با این حال، در این مرحله باید با دقت بیشتری عمل کنید، چون دارید مرز پارتیشن را مستقیماً تغییر میدهید.
استفاده از parted برای resizepart
اگر پارتیشن مورد نظر آخرین پارتیشن دیسک است و بعد از آن فضای آزاد پیوسته وجود دارد، معمولاً میتوان از parted استفاده کرد:
parted /dev/vda print free
parted /dev/vda resizepart 2 100%
این دستور فقط مرز پارتیشن را تغییر میدهد. بعد از آن در فرایند افزایش حجم پارتیشن لینوکس همچنان باید فایلسیستم، یا در صورت وجود LVM، لایههای بعدی را هم توسعه دهید.
درباره بازسازی دستی پارتیشن با احتیاط کامل
گاهی در آموزشهای پراکنده پیشنهاد میشود پارتیشن حذف و دوباره با همان سکتور شروع قبلی ساخته شود. هرچند این روش در بعضی شرایط ممکن است جواب بدهد، اما برای محیط عملیاتی VPS رویکرد محافظهکارانهای نیست؛ مگر اینکه دقیقاً بدانید جدول پارتیشن چگونه است، به بکاپ معتبر دسترسی داشته باشید و از کنسول نجات هم محروم نباشید. در بیشتر سناریوهای رایج، growpart یا parted resizepart روشنتر و امنتر هستند.
محدودیتها و سناریوهایی که باید جداگانه بررسی شوند
این آموزش روی سناریوهای رایج و نسبتاً استاندارد VPS تمرکز دارد. اگر ساختار شما پیچیدهتر باشد، باید قبل از تعمیم این مراحل احتیاط بیشتری داشته باشید.
- اگر از رمزگذاری دیسک استفاده میکنید، بین پارتیشن و فایلسیستم لایه دیگری هم وجود دارد.
- اگر RAID نرمافزاری دارید، ترتیب توسعه فضا ممکن است متفاوت باشد.
- اگر چند دیسک و چند Volume Group دارید، باید دقیقتر تشخیص دهید کدام لایه به کدام mount point مربوط است.
- اگر پارتیشن هدف آخرین پارتیشن دیسک نیست، توسعه مستقیم آن همیشه ساده نیست.
- اگر سرویسدهنده هنوز اندازه جدید دیسک را به سیستمعامل ارائه نکرده باشد، ادامه کار قبل از حل این مرحله بیفایده است.
در این شرایط، اصل مهم این است که ابتدا نقشه لایههای ذخیرهسازی را کامل بفهمید و بعد تصمیم بگیرید. اجرای دستورات استاندارد بدون تطبیق با ساختار واقعی سیستم، ریسک را بالا میبرد.
اشتباههای رایج در افزایش حجم و روش عیبیابی
در فرایند افزایش حجم پارتیشن لینوکس چند خطا بارها تکرار میشوند. اگر آنها را بشناسید، هم سریعتر مشکل را پیدا میکنید و هم از تصمیم اشتباه جلوگیری میشود.
اشتباه اول: اتکا فقط به df -h
df -h فقط اندازه فایلسیستمهای mount شده را نشان میدهد، نه لزوماً اندازه کل دیسک یا پارتیشن. بنابراین اگر بعد از ارتقا هنوز ظرفیت قبلی را میبینید، فوراً نتیجه نگیرید که ارتقا اعمال نشده است. باید همزمان lsblk و fdisk -l را هم ببینید.
اشتباه دوم: اجرای دستور توسعه فایلسیستم اشتباه
استفاده از resize2fs برای XFS یا تلاش برای اجرای xfs_growfs بدون تشخیص mount point درست از خطاهای رایج است. پیش از هر کاری، نوع فایلسیستم را با lsblk -f یا df -T بررسی کنید.
اشتباه سوم: فراموش کردن LVM
بعضی مدیران سیستم پارتیشن را بزرگ میکنند اما چون فراموش میکنند pvresize و lvextend لازم است، در نهایت فضای روت تغییری نمیکند. اگر در خروجیها کلمه lvm یا مسیرهای /dev/mapper/... میبینید، این مرحله را حذف نکنید.
اشتباه چهارم: انتخاب پارتیشن اشتباه
در سرورهایی که /boot و / جدا هستند، گاهی پارتیشن بوت به اشتباه هدف قرار میگیرد. همیشه از روی mount point و خروجی lsblk مطمئن شوید کدام پارتیشن واقعاً مربوط به روت یا PV اصلی است.
اشتباه پنجم: نادیده گرفتن همخوانی کرنل با جدول پارتیشن جدید
ممکن است جدول پارتیشن تغییر کند، اما کرنل هنوز نمای قبلی را نگه دارد. در چنین شرایطی بعضی ابزارها هشدار میدهند که باید جدول دوباره خوانده شود. بسته به وضعیت، ممکن است نیاز به partprobe یا reboot کنترلشده وجود داشته باشد. تصمیم درست، وابسته به خروجی واقعی سیستم است.
اشتباه ششم: بررسی نکردن نتیجه نهایی در همه لایهها
گاهی کاربر فقط به بزرگ شدن LV یا پارتیشن توجه میکند و بررسی نمیکند که فایلسیستم هم واقعاً بزرگ شده یا نه. در پایان باید همه اینها را ببینید:
- اندازه دیسک در
lsblk - اندازه پارتیشن در
fdisk -lیاlsblk - وضعیت LVM در
pvs،vgsوlvsدر صورت وجود - ظرفیت نهایی فایلسیستم در
df -h
چکلیست عملی برای بعد از ارتقای دیسک VPS
اگر میخواهید یک مسیر ذهنی روشن برای اجرا داشته باشید، این چکلیست کمک میکند:
- با
lsblkوfdisk -lمطمئن شوید دیسک واقعاً بزرگتر شده است. - با
findmntوlsblk -fمشخص کنید روت روی کدام دستگاه و با چه فایلسیستمی قرار دارد. - تشخیص دهید ساختار مستقیم است یا LVM.
- اگر لازم است، پارتیشن را با
growpartیاparted resizepartگسترش دهید. - اگر LVM دارید،
pvresizeو سپسlvextendرا انجام دهید. - فایلسیستم را با ابزار مناسب خودش توسعه دهید.
- در پایان با
df -hو سایر ابزارهای تشخیصی نتیجه را تأیید کنید.
این ترتیب ساده بهنظر میرسد، اما رعایت همین توالی جلوی بسیاری از خطاهای رایج را میگیرد.
نمونههای سریع برای سناریوهای رایج
پارتیشن مستقیم با ext4
lsblk -f
growpart /dev/vda 2
resize2fs /dev/vda2
df -h
پارتیشن مستقیم با XFS
lsblk -f
growpart /dev/vda 2
xfs_growfs /
df -h
LVM با ext4
lsblk -f
pvs
lvs
growpart /dev/vda 2
pvresize /dev/vda2
lvextend -l +100%FREE /dev/vg0/root
resize2fs /dev/vg0/root
df -h
LVM با XFS
lsblk -f
pvs
lvs
growpart /dev/vda 2
pvresize /dev/vda2
lvextend -l +100%FREE /dev/vg0/root
xfs_growfs /
df -h
این نمونهها فقط الگو هستند. قبل از اجرا باید مسیر واقعی دیسک، شماره پارتیشن، نام VG و نام LV را با سیستم خودتان تطبیق دهید.
جمعبندی
افزایش حجم پارتیشن لینوکس بعد از ارتقای دیسک VPS یک کار تکمرحلهای نیست. باید لایهبهلایه جلو بروید: اول مطمئن شوید خود دیسک در سیستمعامل بزرگتر دیده میشود، بعد پارتیشن را توسعه دهید، در صورت وجود LVM فضای جدید را به PV و LV اضافه کنید، و در پایان فایلسیستم را رشد بدهید. اگر این زنجیره را درست تشخیص دهید، اجرای عملیات معمولاً مستقیم و قابل پیشبینی خواهد بود.
منطقیترین رویکرد این است که قبل از هر تغییر، با lsblk، fdisk -l، df -h و در صورت نیاز pvs و lvs تصویری کامل از ساختار فعلی تهیه کنید. سپس بر اساس همان ساختار، یکی از دو مسیر «پارتیشن مستقیم» یا «LVM» را انتخاب کنید. این تشخیص اولیه مهمترین عامل برای جلوگیری از خطاهای پرهزینه است.
اگر فقط یک نکته را از این مقاله به خاطر بسپارید، آن نکته این است: قبل از اجرای هر دستور توسعه، دقیقاً بدانید روت شما روی کدام دیسک، کدام پارتیشن، کدام لایه حجمی و کدام فایلسیستم قرار دارد. همین شناخت، بخش بزرگی از ریسک را حذف میکند و باعث میشود فضای جدیدی که برای VPS خریدهاید واقعاً داخل لینوکس قابل استفاده شود.
برای مشاهده این خدمت در ماهان کلود، صفحه سرور ابری و سرور مجازی VPS را ببینید.




دیدگاهها