عند شراءك لخادم وهمي خاص VPS ضمن مزودات مثل ديجيتال أوشن DigitalOcean أو OVH قد تحتاج لتخصيص طريقة التقسيم لها، ستختار عادة نظام التشغيل الذي تود استخدامه فقط وسيتم تثبيته على قسم واحد يأخذ مساحة القرص المتوفرة بالكامل، من غير الضروري الالتزام باستخدام خوادم ويب VPS تحوي قسمًا واحدًا فقط، بل يمكن تخصيص الأقسام وإضافة قسم تبادل swap وقسم آخر للبيانات الخاصة بنا حسب ما نريد.
توفر عدة مزودات وضعًا للإنقاذ rescue mode وهو نظام تشغيل بديل على قرص صلب منفصل يمكننا من خلاله تعديل نظام التشغيل والقرص الصلب الرئيسيان، في هذا المقال سنعتبر أن القسم الموجود من أحد الأنواع Ext4 أو Ext3 أو Ext2 وهي الحالة الافتراضية عند تثبيت نظام ديبيان أو أوبنتو، ويجب تنفيذ الخطوات ضمن هذا المقال من وضع الإنقاذ فقط وليس من داخل النظام، لذا تأكد بدايةً أن مزود VPS الخاص بك يوفر طرفية بوضع الوصول هذا.
عملية تعديل حجم نظام الملفات والتقسيم لا تمسح البيانات الموجودة سابقًا، وذلك في حال كان القياس الجديد أكبر من حجم تلك البيانات، مع ذلك يفضل إجراء نسخ احتياطي على قرص أو جهاز أو خادم خارجي، وسنفرض أننا نريد تقليص حجم القسم من 40 جيجابايت إلى 2 جيجابايت (بفرض البدء من بداية القرص) وذلك لإنشاء أقسام إضافية بعده.
الخطوة الأولى: الدخول إلى وضع الإنقاذ rescue mode وتحديد القرص
أول خطوة سنقوم بها هي إعادة التشغيل والدخول إلى وضع الإنقاذ، والذي يكون عادة بأحد أنظمة جنو لينكس مثل ديبيان، حيث سيتم إعطاءنا كلمة سر مؤقتة للمستخدم الجذر root لهذا النظام، وندخل إليه عبر SSH.
بعدها نحدد القرص المٌستخدم من قبل النظام الأساسي باستخدام الأمر 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
للتأكد من تغيير حجم القسم.
قد يتم إعادة القسم إلى حالته التي كان عليها قبل القيام بهذه الإعدادات في حال أعدنا التشغيل الآن، لذا للتحقق من التغييرات يفضل إضافة قسم آخر في المساحة الخالية المتبقية قبل الخروج وإعادة التشغيل.
الخطوة الرابعة: إضافة أقسام أخرى
بفرض نريد إضافة قسم بحجم 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? لفئة من المؤلفين.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.