اذهب إلى المحتوى

كيفية تقسيم الأقراص على نظام لينكس


Hassan Hedr

عند شراءك لخادم وهمي خاص VPS ضمن مزودات مثل ديجيتال أوشن DigitalOcean أو OVH قد تحتاج لتخصيص طريقة التقسيم لها، ستختار عادة نظام التشغيل الذي تود استخدامه فقط وسيتم تثبيته على قسم واحد يأخذ مساحة القرص المتوفرة بالكامل، من غير الضروري الالتزام باستخدام خوادم ويب VPS تحوي قسمًا واحدًا فقط، بل يمكن تخصيص الأقسام وإضافة قسم تبادل swap وقسم آخر للبيانات الخاصة بنا حسب ما نريد.

قسم خادم VPS

توفر عدة مزودات وضعًا للإنقاذ rescue mode وهو نظام تشغيل بديل على قرص صلب منفصل يمكننا من خلاله تعديل نظام التشغيل والقرص الصلب الرئيسيان، في هذا المقال سنعتبر أن القسم الموجود من أحد الأنواع Ext4 أو Ext3 أو Ext2 وهي الحالة الافتراضية عند تثبيت نظام ديبيان أو أوبنتو، ويجب تنفيذ الخطوات ضمن هذا المقال من وضع الإنقاذ فقط وليس من داخل النظام، لذا تأكد بدايةً أن مزود VPS الخاص بك يوفر طرفية بوضع الوصول هذا.

عملية تعديل حجم نظام الملفات والتقسيم لا تمسح البيانات الموجودة سابقًا، وذلك في حال كان القياس الجديد أكبر من حجم تلك البيانات، مع ذلك يفضل إجراء نسخ احتياطي على قرص أو جهاز أو خادم خارجي، وسنفرض أننا نريد تقليص حجم القسم من 40 جيجابايت إلى 2 جيجابايت (بفرض البدء من بداية القرص) وذلك لإنشاء أقسام إضافية بعده.

الخطوة الأولى: الدخول إلى وضع الإنقاذ rescue mode وتحديد القرص

أول خطوة سنقوم بها هي إعادة التشغيل والدخول إلى وضع الإنقاذ، والذي يكون عادة بأحد أنظمة جنو لينكس مثل ديبيان، حيث سيتم إعطاءنا كلمة سر مؤقتة للمستخدم الجذر root لهذا النظام، وندخل إليه عبر SSH.

الدخول إلى وضع الإنقاذ rescue mode وتحديد القرص

بعدها نحدد القرص المٌستخدم من قبل النظام الأساسي باستخدام الأمر fdisk -l.

تحديد القرص المٌستخدم من قبل النظام الأساسي باستخدام الأمر fdisk -l

في حالتنا القرص ‎/dev/sdb هو الذي نريد تعديل مخطط تقسيمه والقسم ‎/dev/sdb1 هو الوحيد لدينا حاليًا، والقرص ‎/dev/sda هو المكان المٌثبت عليه نظام وضع الإنقاذ، وفي حال كان اسم القرص للقسم لديك مختلفًا عن sdb1 يمكنك تبديله خلال تطبيقك للخطوات التالية ضمن المقال.

الخطوة الثانية: تقليص نظام الملفات

يمكن تنفيذ الأمر e2fsck -f /dev/sdb1 للتحقق من نظام الملفات أولًا، وإلا لن يعمل الأمر resize2fs عند تنفيذه لاحقًا:

تقليص نظام الملفات

غالبًا يأتي الأمران e2fsck و resize2fs مثبتان مسبقًا ضمن نظام الإنقاذ، وفي حال لم يكونا كذلك يمكن تثبيت حزمة e2fsprogs على ديبيان بتنفيذ الأمر apt install e2fsprogs ويجب التأكد أيضًا أن حجم نظام الملفات لا يتجاوز 2 جيجابايت، وبفرض أن ‎/mnt فارغ يمكننا تركيب نظام الملفات باستخدام الأمر mount /dev/sdb1 /mnt والتحقق من حجمه باستخدام الأمر df:

كيفية تقليص نظام الملفات

بعدها يمكن إلغاء تركيب نظام الملفات بتنفيذ الأمر umount /dev/sdb1، وقبل تنفيذ بقية الأوامر وفي حال أجرينا أي تخصيصات على نظام التشغيل أو أضفنا أي بيانات هامة يفضل عندها إجراء نسخ احتياطي لتلك الملفات، بعدها يمكن تنفيذ الأمر التالي resize2fs /dev/sdb1 2G، حيث تشير الوحدة 2G إلى الحجم 2 جيجابايت، يمكننا كتابتها بوحدة الميجابايت كالتالي: 2048M.

في الصورة التالية تم تنفيذ الأمر resize2fs على اعتبار أن عدد القطاعات المُمرر سيُفهم على أنه 2000M أي 2000 ميجابايت، وبحساب تلك المساحة على أن كل قطاع لديه الحجم 512 بايت، سينتج لدينا عدد القطاعات التالي 4194304 والذي يساوي 2 جيجابايت، حيث يمكن استخدام الطريقتين والحصول على النتيجة نفسها:

نتيجة تقليص نظام الملفات

التقرير ضمن خرج تنفيذ الأمر السابق يخبرنا بتعديل حجم القسم إلى 524288 كتلة كل منها بحجم 4 كيلوبايت، وبحساب الحجم الكلي لها ‎524288 * 4096 بايت = 2 جيجابايت، وهي النتيجة المطلوبة، حيث أن 4 كيلوبايت هو حجم الكتلة الواحدة على مستوى نظام الملفات، بينما الحجم 512 بايت هو حجم القطاع الواحد على مستوى القرص، ويمكننا التأكد أن الحجم هو 512 بايت من خرج الأمر fdisk الذي نفذناه سابقًا.

الخطوة الثالثة: تقليص حجم القسم

نفذنا حتى الآن خطوة تقليص حجم نظام الملفات ما يعني أنه لم يعد بإمكاننا إضافة البيانات إليه لأنه لا يوجد مكان لها في الحجم المنطقي له والمساوي 2 جيجابايت، ولكن القسم الموجود ضمنه نظام الملفات لا يزال يشغل مساحة القرص المتوفر كاملةً.

يمكن الاستفادة من الأمر parted لإدارة الأقسام في لينكس، حيث يمكن تثبيته على ديبيان بتنفيذ الأمر apt install parted، ويمكن استخدام هذه الأداة تفاعليًا، حيث يمكن تنفيذ الأمر بتمرير المسار ‎/dev/sdb كمعامل له:

تقليص حجم القسم

يمكن استخدام الأمر unit s ليتم إظهار كافة الحجوم بعدد القطاعات داخلها بدلًا من وحدات الحجم مثل ميجابايت MiB أو جيجابايت GiB، وذلك للتحكم بالحجم بأكبر دقة ممكنة، وإلا سنواجه مشاكل مثل ظهور الرسالة التالية التي تعني أن الحجم المحدد لا يقدم أفضل أداء:

"The resulting partition is not properly aligned for best performance" 

ويمكن الاستفادة من الأمر print free لمعرفة حالة القرص:

كيفية تقليص حجم القسم في لينكس

إذا أردنا تحديد حجم القسم رقم 1 إلى 2 جيجابايت ما يعادل عدد القطاعات التالية:

2 * 1024 * 1024 * 1024 / 512 = 4194304

وننفذ الأمر resizepart 1 بعدها سيتنظر منا الأمر تحديد إحداثيات النهاية للقسم على القرص مُعبَّرًا عنها بعدد القطاعات منذ بداية القرص، وبما أنه يوجد منطقة محجوزة قبل القسم تنتهي عند القطاع رقم 2047 يجب إضافة هذا الحجم إلى حجم القسم الحالي 4194304 + 2047 = 4196351s، ومن المهم إضافة اللاحقة s لنهاية القيمة، بعدها نجيب بنعم Yes بعد الرسالة التحذيرية، ثم ننفذ الأمر print free للتأكد من تغيير حجم القسم.

تنفيذ الأمر print free للتأكد من تغيير حجم القسم

قد يتم إعادة القسم إلى حالته التي كان عليها قبل القيام بهذه الإعدادات في حال أعدنا التشغيل الآن، لذا للتحقق من التغييرات يفضل إضافة قسم آخر في المساحة الخالية المتبقية قبل الخروج وإعادة التشغيل.

الخطوة الرابعة: إضافة أقسام أخرى

بفرض نريد إضافة قسم بحجم 12 جيجابايت ومن نوع Ext4 بعد القسم المخصص لنظام التشغيل مباشرةً، فيجب تعريف ذلك القسم أولًا، وذلك بإضافة سجل ضمن جدول التقسيم في مكان ما داخل المنطقة المحجوزة، نستخدم لذلك الأمر mkpart primary ext4:

إضافة أقسام أخرى لنظام التشغيل

كما في المثال السابق يمكننا تحديد مكان بدء القسم بعد قطّاع واحد من نهاية القسم الذي يسبقه كي لا نهدر أي مساحة بين القسمين، حيث يكون عنوان البداية هو 4196351 + 1 = 4196352s، وعنوان النهاية بعد 12 * 1024 * 1024 * 1024 / 512 قطاعًا وهو حجم القسم بالكامل ونضيف إليه عدد قطاعات الأقسام التي تسبقه + 4196351 قطاعًا نحصل على = 29362175s قطاع.

الآن يمكننا الخروج من parted بالضغط على Ctrl + D ثم إنشاء نظام ملفات من النوع Ext4 على sdb2، ولتطبيق إعدادات Ext4 الافتراضية ننفذ الأمر الآتي:

 mkfs.ext4 /dev/sdb2

خاتمة

أجرينا في هذا المقال تعديلًا على التقسيم لنظام الملفات عبر سطر الأوامر، وركزنا على الحالة التي يحتوي فيها الخادم على قسم كبير واحد افتراضيًا ونريد تقسيمه.

ترجمة -وبتصرف- للمقال How to Change the Partition Scheme on Your Linux Server?‎ لفئة من المؤلفين.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...