العربية

توسيع القسم ونظام الملفات على VPS لينكس

2 min
استضافة VPS/VDS

بعد ترقية القرص على VPS Linux Infrawire يصبح القرص الافتراضي أكبر، لكن القسم ونظام الملفات يبقيان بحجمهما القديم. عليك توسيعهما يدويًا، ويمكن ذلك أثناء عمل النظام ودون فصل نظام ملفات الجذر.

يغطي هذا الدليل الأقسام العادية (ext4 وXFS) وإعدادات LVM على Ubuntu 24.04 وDebian 12 وAlmaLinux 9 وRocky 9.

📋 المتطلبات

  • خادم VPS تمت زيادة قرصه بالفعل (يظهر الحجم الجديد في lsblk)
  • وصول SSH بصلاحية root (تجد عنوان 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. تحديد القرص والقسم ونظام الملفات

Bash
lsblk -f df -hT /

مخرجات نموذجية: القرص vda بحجم 80G، والقسم vda1 بحجم 40G مركّب على /، ونظام الملفات 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

ثم وسّع القسم رقم 1 من القرص /dev/vda (انتبه للمسافة بين القرص والرقم):

Bash
growpart /dev/vda 1

إذا ظهرت الرسالة NOCHANGE فالقسم يشغل المساحة كلها بالفعل. بعض الصور تحتوي على قسم صغير بعد قسم الجذر (مثل swap): في هذه الحالة لا يستطيع growpart توسيع الجذر، ويجب حذف ذلك القسم أو نقله أولًا.

تأكد من أن النواة ترى الحجم الجديد:

Bash
lsblk /dev/vda # إذا ظهر الحجم القديم بعد: partprobe /dev/vda

4. توسيع نظام الملفات

استخدم الأمر المناسب لنوع نظام الملفات (يعرضه lsblk -f).

مع ext4:

Bash
resize2fs /dev/vda1

مع XFS (الافتراضي على AlmaLinux وRocky). الوسيط هو نقطة التركيب وليس الجهاز، ويمكن لـ XFS أن يكبر فقط ولا يمكن تصغيره أبدًا:

Bash
xfs_growfs /

5. حالة LVM: pvresize وlvextend

عندما يكون وحدة الجذر المنطقية على LVM توجد طبقة إضافية: القسم، ثم الوحدة الفيزيائية، ثم الوحدة المنطقية، ثم نظام الملفات.

Bash
lsblk 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. التحقق من النتيجة

Bash
df -h / lsblk

يجب أن يطابق عمود Size في df -h السعة الجديدة، وأن يُظهر 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: نظام الملفات على الأرجح XFS وليس ext4. نفّذ lsblk -f واستخدم xfs_growfs / بدلًا منه.

xfs_growfs: / is not a mounted XFS filesystem: مررت اسم جهاز، أو أن نظام الملفات ext4. مرّر نقطة التركيب وتحقق من النوع أولًا.

lvextend يبلغ عن عدم وجود extents حرة: تخطيت growpart أو pvresize. نفّذ pvs وراجع عمود PFree.


🎉 مساحة القرص الإضافية أصبحت جاهزة للاستخدام: دون إعادة تشغيل ودون انقطاع، وdf -h يثبت ذلك!

ابقَ على اطلاع بأحدث العروض والخصومات والعروض الترويجية الخاصة.

عرض العروض الترويجية

نستخدم ملفات تعريف الارتباط

نستخدم كوكيز تحليلية لتحسين تجربتك. لا نبيع البيانات لأطراف ثالثة. المزيد في سياسة الخصوصية.