افزایش سایز دیسک نوع استاندارد لینوکس (غیرLVM)

اگر نوع پارتیشن لینوکس شما از نوع Standard باشد، نمیتوانید از روش lvm و یا دستورات pvs استفاده کنید.
بدون ریستارت سیستم عامل برای افزایش سایز دیسک نوع استاندارد لینوکس (غیرLVM) مانند sda1 با فایلسیستم ext4 یا xfs باید مراحل زیررا انجام دهید
فهرست مطالب
چطور میتوانم حجم پارتیشن استاندارد را افزایش دهم؟
بعد از اینکه در تنظیمات مجازیساز حجم دیسک را از ۵۰ گیگ به ۱۰۰ گیگ افزایش دادهاید، باید در سیستم عامل لینوکس هم پارتیشنبندی انجام دهید.
در ابتدا مطمئن شوید که پارتیشن شما از نوع LVM نباشد.
# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 16G 0 16G 0% /dev tmpfs 16G 376K 16G 1% /dev/shm tmpfs 16G 9.0M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup ***************************************** /dev/sda1 59G 56G 861M 99% / ***************************************** /dev/loop0 2.0G 42M 1.8G 3% /tmp
حتی اگر دستور pvs هم وارد کنید، هیچ خروجی مشاهده نمیکنید. این نوع سیستم عامل ها از نوع استاندارد پارتیشنبندی شده اند.
مرحله اول: شناسایی نام دیسک با lsblk
همانطور که در خروجی دستور df -h مشاهده کردیم، نام دیسک در این لینوکس sda بود. ممکن است در برخی دستگاهها این نام متفاوت باشد. مثل vda یا sdb و …
برای اینکه بفهمیم نام دیسک ما چیست، میتوانیم دستور lsblk را اجرا کنیم:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 2G 0 loop /var/tmp sda 8:0 0 60G 0 disk `-sda1 8:1 0 60G 0 part / sr0 11:0 1 1024M 0 rom
همانطور که مشاهده میکنید sda تایپ disk دارد.
اگر چند دیسک داشته باشید، sda/sdb/sdc مشاهده خواهید کرد. در صورت مشاهده چندین دیسک در خروجی lsblk به راحتی میتوانید در همان خروجی بفهمید که مثلا part / چه لیبلی دارد. یا اگر /home را میخواهید اکستند کنید، میتوانید با تحلیل این خروجی بفهمید که چه لیبلی دارد.
مرحله دوم: شناسایی سایز جدید توسط کرنل بدون ریستارت
لازم است در ابتدا کرنل مقدار جدید سایز را شناسایی کند که به ۲ روش امکان پذیر است.
بدون ریستارت سیستم عامل با دستور زیر میخواهیم سایز جدید sda را شناسایی کنیم:
echo "- - -" | sudo tee /sys/class/block/sda/device/rescan
بعد از اجرای دستور بالا اگر دستور lsblk را اجرا کنید و یا وارد fdisk /dev/sda شوید، مشاهده خواهید کرد که حجم دیسک با سایز جدید نمایش داده می شود.
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 2G 0 loop /var/tmp ********************************* sda 8:0 0 100G 0 disk ********************************* `-sda1 8:1 0 60G 0 part / sr0 11:0 1 1024M 0 rom
شناسایی سایز جدید با ریستارت سیستم عامل
اگر از روش بالا برای شناسایی دیسک استفاده نکنید، با ریستارت سیستمعامل به سادگی کرنل حجم جدید را شناسایی میکند.
بعد از ریستارت اگر دستور lsblk را اجرا کنید، مقابل نام دیسک، حجم جدید رویت میشود.
مرحله سوم: حذف پارتیشن با fdisk
هرچند در این روش، اطلاعات از دست نمیروند، اما لازمه هر عملیاتی در سرورهای حساس، تهیه نسخه پشتیبان است.
پس از تهیه بکاپ، میتوانید دستور زیر را اجرا کنید:
fdisk /dev/sda
کلید p را وارد کنید تا پارتیشن ها پرینت شوند و آنها را مشاهده کنید.

در این لینوکس فقط یک Device بنام sda1 وجود دارد که سایز آن 60G است.
در اکثر لینوکسها تعداد این دیوایسها بیشتر است. معمولا ۳ الی ۴ عدد خروجی مشاهده میشود.
کلید d را وارد کنید تا برای حذف اقدام کنید.
اگر پارتیشن وجود داشته باشد، با زدن d بصورت خودکار پارتیشن حذف میشود.
اگر چند پارتیشن موجود باشد، باید عدد مربوطه را وارد کنید و اینتر بزنید.
مرحله چهارم: ایجاد پارتیشن با سایز جدید توسط fdisk
حالا با وارد کردن کلید n پارتیشن جدید ایجاد خواهد شد.
از شما Partition type پرسیده میشود. همان گزینه پیش فرض را اینتر بزنید.
سپس Partition number پرسیده می شود که آن هم بدون دستکاری اینتر بزنید.
سوال First sector و Last sector را ابدا تغییری ندهید و اینتر بزنید.
اگر سکتور اول دستکاری شود اطلاعات از دست می روند.

مرحله signature به شدت حساس است.
Partition #1 contains a ext4 signature
پارتیشن دارای فایل سیستم ext4 است. ممکن است برای شما xfs یا ext3 یا هر چیز دیگری باشد.
تحت هیچ شرایطی نباید فایل سیستم را حذف کنید تا اطلاعات شما از بین نرود.
پاسخ Do you want to remove the signature? [Y]es/[N]o: را باید حتما n بزنید.

تنظیمات را با وارد کردن w ذخیره کنید.
تا اینجا ۹۰ درصد تنظیمات افزایش سایز دیسک نوع استاندارد لینوکس (غیرLVM) را انجام دادهایم.
مرحله پنجم: افزایش سایز دیسک: مرحله پایانی
در این سناریو سایز دیسک ما از ۶۰ گیگ به ۱۰۰ گیگ ارتقا یافت اما اگر df -h اجرا کنیم، هنوز سایز روت همان ۶۰ گیگ است.

ما میخواهیم به /dev/sda1 این حجم اضافه شود.
resize2fs /dev/sda1
اگر با دستور بالا اعمال نشد، دیسک شما از نوع xfs است که باید از دستور زیر استفاده کنید:
xfs_growfs /dev/sda1
شما توانستهاید دیسک استاندارد را افزایش حجم دهید.
آموزش کاهش اندازه LVM – چگونه یک پارتیشن LVM را کاهش دهیم
سخن پایانی
در این آموزش به افزایش سایز دیسک نوع استاندارد در لینوکس بدون از دست رفتن اطلاعات و بدون نیاز به ریستارت پرداختیم. اگر لینوکس شما بصورت LVM پارتیشن بندی نشده باشد، هر اقدامی برای شما پر استرس خواهد بود. در این پست یک راه حل امن که بارها در سرور مجازی و سرور اختصاصی لینوکس پروداکشن توسط تیم مدیریت سرور تاد سرور تست کرده ایم را با شما به اشتراک گذاشتیم.
سوالات متداول
این پارتیشنها ساختار سنتی و سادهای دارند و برخلاف فناوریهای پیشرفتهتر مانند LVM، اندازه ثابتی دارند و به طور مستقیم روی دیسک ایجاد میشوند.
پارتیشن استاندارد در لینوکس به پارتیشنهای اصلی یا منطقی با اندازه ثابت گفته میشود که مستقیماً در جدول پارتیشنبندی (MBR یا GPT) تعریف شده و برای ذخیره سیستمعامل، دادهها یا اهداف خاص مانند /boot یا Swap استفاده میشوند، اما انعطافپذیری محدودی دارند. در مقابل، LVM (Logical Volume Manager) سیستمی پیشرفتهتر است که پارتیشنها را بهصورت منطقی (Logical Volumes) درون گروههای حجمی (Volume Groups) مدیریت میکند و امکان تغییر اندازه پویا، اضافه کردن دیسک جدید یا ایجاد Snapshot را فراهم میکند. برخلاف پارتیشن استاندارد که به ساختار فیزیکی دیسک وابسته است، LVM لایهای انتزاعی ایجاد میکند که مدیریت فضای ذخیرهسازی را انعطافپذیرتر و مناسب برای سیستمهای پیچیدهتر میسازد، هرچند تنظیم آن پیچیدگی بیشتری دارد.
اگر طبق این آموزش عمل کنید هیچ اطلاعاتی از دست نخواهد رفت و میتوانید بدون از دست رفتن اطلاعات عملیات افزایش سایز دیسک در پارتیشن استاندارد را انجام دهید. اما در صورتی که تنظیمات اشتباه انجام دهید بله. دستکاری سکتور شروع و یا حذف فایل سیستم در مراحل fdisk می تواند سبب از بین رفتن اطلاعات شود.
بله، در بسیاری از موارد میتوانید پارتیشن را بدون نیاز به ریاستارت افزایش دهید