مدیریت سرور

تغییر اندازه پارتیشن لینوکس با فضای unallocated

در هنگام استفاده از سرور مجازی لینوکس مخصوصا زمان نصب وب سایت بر روی سرور لینوکس خود ممکن است با خطای کمبود فضای پارتیشن مواجه شوید. برای رفع این خطا باید ظرفیت پارتیشن مورد نیاز خود را در لینوکس افزایش بدهید.

برای مثال در vmware یا virtual box یا حتی esxi ممکن است ظرفیت اضافی به سیستم عامل لینوکس داده باشید و لینوکس این فضای اضافی را بدون استفاده ( unallocated ) رها کرده باشد و شما نیاز دارید تا ظرفیت پارتیشنی که با خطای کمبود فضا مواجه هست را افزایش دهید.

در این مقاله ما قصد داریم تا به شما آموزش تغییر اندازه پارتیشن لینوکس با فضای unallocated ارائه بدهیم اما قبل از هر کاری بهتر است از اطلاعات سیستم عامل و داده های خود بک آپ تهیه کنید تا در صورت ایجاد مشکلات پیش بینی نشده اطلاعات خود ررا از دست ندهید.

این روش بر روی اکثر توزیع های سیستم عامل لینوکس از جمله CentOS, RHEL, Ubuntu, Debian و… نتیجه می دهد.

در استفاده از این روش ممکن است partition table دارای مشکل بوده و پارتیشن جدید دارای فضای بسیار کمی (1کیلوبایت) باشد برای رفع مشکل احتمالی بهتر است از سه دستور زیر به ترتیب استفاده نمایید.

parted
print
Fix

سپس ادامه مراحل را طبق آموزش زیر ادامه دهید.

با زدن دستور cfdisk یا fdisk -l در ترمینال لینوکس میتوانید داده هایی همانند تصویر زیر را ببینید .

title

اطلاعاتی که در این تصویر به نماشی در می آید شامل:

sda1  شامل حجم 512 مگابایت می باشد که برای boot پارتیشن سیستم عامل در نظر گرفته شده است.

sda2 شامل حجم 6.8 گیگابایت می باشد که برای سیستم عامل لینوکس و پکیج های آن در نظر گرفته شده است.

unallocated (اختصاص داده نشده) شامل حجم 100 گیگابایت فضای اختصاص داده نشده استو آزاد می باشد.

در این مقاله ما قصد داریم 100 گیگ اختصاص داده نشده را به فضای 6.8 گیگ sda2 اضافه کنیم و فضای اختصاص داده شده به سیستم عامل لینوکس را به 106.8 گیگابایت برسانیم.

برای اینکار می توانید از ابزارهای خود لینوکس از جمله fdisk ، pvresize ، lvdisplay و lvextend  استفاده نمایید که در اکثر توزیع های سیستم عامل لینوکس از جمله CentOS 5.x ، CentOS 6.x ، CentOS 7.x ، RHEL ، Ubuntu و Debian  وجود دارند.

1-تغییر partition table :

ابتدا باید پارتیشن sda2 رو تغییر بدهیم تا تمام ظرفیت خالی دیسک را دریافت کند که در این مرحله داده های پارتیشن sda2 را از دست نخواهید داد.

برای تغییر partition table مراحل زیر را دنبال کنید.

ابتدا دستور زیر را وارد کنید تا داخل محیط برنامه fdisk شوید.

fdisk /dev/sda

سپس دکمه p را بر روی کیبورد فشار دهید تا partition table موجود در sda را نمایش دهد. مقدار عددی بخش start و end مربوط به dev/sda2 را یادداشت نمایید تا بعد از اعمال تغییرات با مقدارهای جدید مقایسه کنید.( در صورتی که مقادیر جدید کمتر باشد یعنی مراحل بعد به دقت انجام نگرفته و حجمی از داده ها از بین رفته است.)

سپس کلید d را فشار دهید تا به قسمت پاک کردن پارتیشن وارد شوید که در مثال ما عدد 2 همان پارتیشنی است که قرار است جدول آن به روز شود.

این دستور باعث حذف جدول map کننده آدرس ها از partition table می شود و به داده های شما آسیبی نمی رساند.

بعد از این مرحله کلید n را فشار دهید تا یک پارتیشن جدید اضافه نمایید و باید این پارتیشن مدلی همانند پارتیشن قبلی داشته باشد که در این مثال به صورت primary هست.

سپس مقدار start فضای آدرس دهی را که یادداشت کرده اید وارد کنید که معمولا خود سیستم به صورت پیشفرض این عدد را پیشنهاد خواهد داد و دقت کنید مقدار end نیز همان مقدار پیشفرض سیستم باشد.

در پایان این مرحله باید نوع پارتیشن را از Linux به Linux LVM تغییر بدهید.

برای این کار ابتدا کلید t را فشار دهید تا وارد partition mode شده و با فشردن عدد 2 پارتیشن مورد نظر ما برای افزایش فضا انتخاب خواهد شد. سپس مقدار 8e که عدد مربوط به Linux LVM هست را وارد نمایید تا نوع پارتیشن ما انتخاب شود.

با فشردن کلید p  می توانید مقدار start و end را مشاهده نمایید که باید مقدار start دقیقا مثل قبل باشد و مقدار end افزایش پیدا کرده باشد.

اگر این مورد صدق نمی کند یعتی در هنگام انجام مراحل بالا اشتباهی پیش آمده و می توانید با فشردن کلید d از ذخیره اقدامات انجام گرفته جلوگیری نمایید.

اگر همه موارد ذکر شده درست بود می توانید با فشردن کلید w تغییرات را ذخیره نمایید.

2- Reboot سیستم عامل:

پس از اعمال تغییرات با پیام زیر روبه رو خواهید شد که برای خواندن داده ها نیاز به ری استارت سیستم عامل می باشد.

the partition table couldn’t be accessed

3- توسعه LVM Partition

بعد از ری استارت سیستم زمان توسعه دادن پارتیشن تغییر داده شده می باشد.

ابتدا دستور زیر را وارد کنید.

pvresize /dev/sda2

سپس دستور cfdisk را وارد کنید.

cfdisk

اگر همه مراحل درست اجرا شده باشد با صفحه ای همانند تصویر زیر رو به رو خواهید شد. که بیانگر این مورد است که پارتیشن sda2 به حجم 106.8 گیگابایت افزایش پیدا کرده است.

title

ری استارت (reboot) دوم لازمه تا تغییرات سرویس ها روی حافظه جدید اعمال شود.

4- افزایش حجم منطقی پارتیشن (Logical Volume)

حال باید این حجم منطقی پارتیشن را توسعه بدهیم که با دستور زیر میتوانید مسیر مورد نظر این توسعه رو پیدا کنید.

lvdisplay -v

معمولا مسیر مورد نظر اولین گزینه از لیست خروجی دستور بالا می باشد اما می توان این مورد را با توجه به حجم آن مسیر را پیدا کرد که برای مثال ما مسیر / dev / vg / lv_root است.

حال با داشتن مسیر مورد نظر با دستور زیر می توانیم حجم آن را افزایش دهید.

lvextend -l +100%FREE /dev/vg/lv_root

5-افزایش فایل سیستم (Extend the File System)

اکنون تمام فضای unallocated روی logical volume اضافه کرده ایم باید مقادیر file system را با logical volume یکسان کرده تا مقادیر یکسانی را به نمایش بگذارند.

برای اینکار می توانید با توجه به اینکه از EXT4 یا XFS بهره می برید از دستور زیر استفاده کنید.

برای اینکه مطمئن بشید سیستم شما کدام یک از موارد زیر را استفاده می کند می توانید از دستور زیر استفاده کنید.

 df -Th

برای یکسان سازی مقادیر file system با logical volume در سیستم عامل های که از EXT4 بهره می برند دستور زیر:

resize2fs /dev/vg/lv_root

برای XFS نیز از دستور زیر:

xfs_growfs /root

استفاده نمایید.

حال تغییر اندازه پارتیشن لینوکس به خوبی انجام شده و شما می توانید بدون برخورد با خطای کمبود فضای پارتیشن به کار خود ادامه دهید.

علی احمدی

از سال 97 در حوزه seo به صورت تخصصی فعالیت میکنم و در 5 سایت با الکسای زیر هزار به عنوان مشاور و یا به صورت مستقیم فعالیت داشتم. عاشق دردسرای seo هستم اگه به مشکلی بر خوردین خوشحال میشم کمکتون کنم.

نوشته های مشابه

‫2 نظرها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *