دليل إدارة وتقسيم الأقراص في لينكس عبر أداة cfdisk

مقدمة عامة

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

تثبيت حزم cfdisk واستكشاف خريطة التخزين الحالية

لتجهيز النظام بالأدوات الأساسية المسؤولة عن التعامل مع جداول التقسيم ووحدات التخزين، ننفذ أمر التحديث وتثبيت الحزمتين util-linux وparted:

apt-get update -qq && apt-get install -y util-linux parted

تحديث المستودعات وتثبيت حزم إدارة الأقراص

تعتمد أداة cfdisk على مكتبة curses الرسومية داخل الطرفية لتتيح للمهندسين إدارة قطاعات التخزين بدقة ودون تعقيد. يمكننا التحقق من جاهزية البرنامج وإصداره الحالي عبر تشغيل الأمر التالي:

cfdisk --version

⚙️ [أبرز معاملات التشغيل]:

-z, --zero : تجاوز جدول التقسيم المسجل مسبقاً والبدء بجدول فارغ تماماً.
-L, --lock[=mode] : حظر وصول العمليات المتزامنة إلى وحدة التخزين لمنع التعارض أثناء التعديل.
--color[=when] : التحكم في تنسيق الألوان داخل واجهة التفاعل.
-V, --version : استعراض رقم الإصدار الحالي للأداة.
-h, --help : عرض قائمة التعليمات والمحددات المتاحة.

فحص إصدار برنامج cfdisk

تتطلب السلامة التشغيلية فحص خريطة الأقراص ونقاط التوصيل الحالية قبل الشروع في أي تعديل هيكلي، وذلك لتفادي الكتابة بالخطأ فوق أقراص النظام الحيوية عبر الأمر lsblk:

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS

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

استعراض خريطة وحدات التخزين ونقاط التوصيل الحالية

بناء بيئة معملية آمنة باستخدام قرص افتراضي وأجهزة Loop

لتفادي التلاعب بوحدات التخزين الفعلية والحفاظ على البيانات الحقيقية من التلف، نقوم بإنشاء مسار عمل مخصص للتجارب الميدانية عبر الأمر:

mkdir -p /tmp/disk-lab && cd /tmp/disk-lab

إنشاء مسار العمل المؤقت والدخول إليه

نقوم الآن بتوليد ملف صورة قرص تخيلي بسعة 1 غيغابايت مشبع بالأصفار، والذي سيمثل وحدة التخزين الخام لاختباراتنا العملية:

dd if=/dev/zero of=/tmp/disk-lab/virtual_disk.img bs=1M count=1024 status=progress

توليد ملف صورة القرص الافتراضي بسعة 1 غيغابايت

وللتأكد من نجاح عملية التوليد وسلامة الحجم المخصص للملف الناتج، نستعرض تفاصيل خصائص الملف عبر أمر العرض:

ls -lh /tmp/disk-lab/virtual_disk.img

التحقق من حجم ملف القرص الافتراضي

تهيئة جدول التقسيم وضبط بارامترات cfdisk

للاطلاع الشامل على كافة الخيارات المتقدمة التي توفرها أداة cfdisk، يمكن طلب نافذة المساعدة عبر الأمر:

cfdisk --help

استعراض دليل خيارات cfdisk المتاحة

نقوم بتهيئة القرص الافتراضي بتخطيط جدول تقسيم حديث من نوع GPT وتقسيم المساحة المتاحة إلى جزأين متساويين بحجم 500 ميغابايت تقريباً باستخدام أداة parted:

parted -s /tmp/disk-lab/virtual_disk.img mklabel gpt mkpart primary ext4 1MiB 500MiB mkpart primary ext4 500MiB 100%

إنشاء جدول تقسيم GPT وتوزيع الأقسام

يمكننا اختبار استجابة cfdisk للملف مع تطبيق الخيار -z لتجاهل التخطيط السابق واستعراض شاشات التهيئة:

cfdisk -z /tmp/disk-lab/virtual_disk.img --help || true

التحقق من توافق معاملات cfdisk مع صورة القرص

للتثبت من مطابقة الأقسام الجديدة للمواصفات المطلوبة، نستعرض بنية ملف القرص المكتوبة عبر:

parted /tmp/disk-lab/virtual_disk.img print

توضح النتائج وجود جدول من نوع GPT يحوي قسمين مستقلين، كل منهما بحجم يقارب 500 ميغابايت وبحالة جاهزة للمرحلة التالية.

مراجعة جدول التقسيم للتأكد من نجاح العملية

ربط وحدة التخزين وتهيئة نظام الملفات واختبار التوصيل

نبدأ بتثبيت حزمة الأدوات الضرورية لإنشاء وإدارة أنظمة ملفات ext4 عبر الأمر:

apt-get install -y e2fsprogs

تثبيت حزمة أدوات أنظمة ملفات e2fsprogs

كي يتمكن نواة نظام لينكس من التعاطي مع أقسام ملف القرص كوحدات كتلية منفصلة، نقوم بربط الصورة بجهاز loop وتفعيل فحص الأقسام الفرعية عبر الوسيط -P:

LOOP_DEV=$(losetup --find --show -P /tmp/disk-lab/virtual_disk.img) && echo "Connected to: $LOOP_DEV"

تؤكد المخرجات ربط ملف القرص الافتراضي بنجاح عبر المعرف التلقائي المتاح مثل /dev/loop0.

ربط ملف القرص بجهاز loop device جديد

نستعرض توزيع الأجهزة الفرعية الناتجة عن عملية الربط للتأكد من تمييز النواة للأقسام:

lsblk ${LOOP_DEV}

يظهر الناتج تسجيل قسمين مستقلين (loop0p1 و loop0p2) كأجهزة كتلية معترف بها داخل النظام.

التحقق من ظهور أقسام جهاز loop في قائمة الأجهزة الكتلية

لتهيئة القسم الأول ليصبح صالحاً لتخزين البيانات، نقوم بإنشاء نظام ملفات ext4 عليه عبر الأمر:

mkfs.ext4 -F ${LOOP_DEV}p1

تؤسس هذه الخطوة البنية التحتية لتسجيل الملفات والأدلة، وتحدد جداول العقد الفهرسية (inodes) داخل القسم المختار.

تهيئة القسم الأول بنظام ملفات ext4

لكي تتاح المساحة المهيأة للاستخدام المباشر في شجرة النظام، ننشئ مسار التوصيل ونربط القسم به:

mkdir -p /mnt/virtual_disk && mount ${LOOP_DEV}p1 /mnt/virtual_disk

إنشاء نقطة التوصيل وتثبيت القسم المهيأ

نختتم الإجراء بالتحقق من حالة التوصيل، والسعة الكلية، والمساحة المتاحة للاستخدام الفعلي:

df -h /mnt/virtual_disk

تؤكد المؤشرات النهائية إتاحة وحدة التخزين بنجاح تحت مسار التوصيل المحدد وجاهزيتها التامة لكتابة وقراءة الملفات.

التأكد من سلامة نقطة التوصيل والسعة التخزينية المتاحة

بهذا نكون قد استعرضنا منهجية استخدام cfdisk ومزاياها التفاعلية في تسهيل عمليات تقسيم الأقراص مقارنة بالطرق التقليدية. تمثل هذه الأداة ركيزة ممتازة تمنح مديري الأنظمة السرعة والأمان أثناء إعادة هيكلة وحدات التخزين داخل بيئات لينكس المختلفة.