FDISK(8)

الاسم
fdisk - عالج جدول أقسام القرص

موجز

fdisk [خيارات] جهاز

fdisk -l [جهاز...]

الوصف

fdisk برنامج قائم على الحوار لإنشاء ومعالجة جداول الأقسام. يدعم جداول أقسام GPT و MBR و Sun و SGI و BSD.

يمكن تقسيم الأجهزة الكتلية إلى قرص منطقي واحد أو أكثر تسمى أقسام. يُسجل هذا التقسيم في جدول الأقسام، والذي يوجد عادة في القطاع 0 من القرص. (في عالم BSD يُتحدث عن `شرائح القرص' و `ملصق القرص'.)

تُقاد كافة عمليات التقسيم بواسطة حدود الإدخال/الإخراج للجهاز (الطوبولوجيا) مبدئيًا. يستطيع fdisk تحسين تخطيط القرص لحجم قطاع 4K واستخدام إزاحة محاذاة على الأجهزة الحديثة لـ MBR وGPT. من الجيد دائمًا اتباع قيم fdisk المبدئية حيث أن القيم المبدئية (مثل قطاعات القسم الأولى والأخيرة) وأحجام الأقسام المحددة بصيغة +/-<الحجم>{M,G,...} تُحاذى دائمًا وفقًا لخصائص الجهاز.

عنونة CHS (أسطوانة-رأس-قطاع) مهجورة ولا تُستخدم مبدئيًا. من فضلك، لا تتبع المقالات والتوصيات القديمة التي تنصح بـ fdisk -S <n> -H <n> لأجهزة SSD أو الأجهزة ذات قطاع 4K.

لاحظ أن partx(8) يوفر واجهة غنية للبرامج النصية لطباعة تخطيطات القرص، بينما صُمم fdisk للبشر بشكل أساسي. التوافقية مع الإصدارات السابقة في مخرجات fdisk غير مضمونة. يجب أن تكون المدخلات (الأوامر) متوافقة مع الإصدارات السابقة دائمًا.

الخيارات

-b، --sector-size حجم_القطاع
    حدد حجم قطاع القرص. القيم الصالحة هي 512 و 1024 و 2048 و 4096. تدرك النواة حجم القطاع للأجهزة الكتلية العادية. استخدم هذا الخيار فقط في النوى القديمة جداً، أو عند التعامل مع صور الأقراص، أو لتجاوز حجم القطاع المبدئي للنواة. منذ الإصدار 2.17 من util-linux، يفرق fdisk بين حجم القطاع المنطقي والفيزيائي. يغير هذا الخيار كلا حجمي القطاع إلى حجم_القطاع المحدد.

-B، --protect-boot
    لا تمسح بداية أول قطاع في القرص عند إنشاء لصيقة قرص جديدة. هذه الميزة متاحة لـ GPT وMBR.

-c، --compatibility[=وضع]
    حدد وضع التوافق: 'dos' أو 'nondos'. الوضع المبدئي هو وضع non-DOS. للتوافق مع الإصدارات السابقة، يمكن استخدام الخيار دون معامل وضع — وعندها يُستخدم المبدئي. لاحظ أن معامل وضع الاختياري لا يمكن فصله عن الخيار -c بمسافة؛ الصيغة الصحيحة هي -c=dos، على سبيل المثال.

-L، --color[=متى]
    لون المخرجات. المعامل الاختياري متى يمكن أن يكون auto أو never أو always. إذا حُذف معامل متى، فإنه يعود إلى auto آليًا. يمكن تعطيل الألوان؛ للاطلاع على الوضع المبدئي المدمج الحالي راجع مخرجات --help. انظر أيضًا قسم الألوان.

-l، --list
    أدرج جداول الأقسام للأجهزة المحددة ثم اخرج.

    إذا لم تُعطَ أي أجهزة، تُستخدم الأجهزة المذكورة في /proc/partitions (في حال وجود هذا الملف). تُدرج الأجهزة دائمًا بالترتيب الذي حُددت به في سطر الأوامر، أو بواسطة النواة المدرجة في /proc/partitions.

-x، --list-details
    مثل --list، ولكن يوفر تفاصيل أكثر.

--lock[=وضع]
    استخدم قفل BSD حصرياً للجهاز أو الملف الذي يُعمل عليه. يمكن أن يكون المعامل الاختياري وضع هو yes (1) أو no (0) أو nonblock. وإذا حُذف معامل وضع، فسيُضبط مبدئياً على yes. يتجاوز هذا الخيار متغير البيئة $LOCK_BLOCK_DEVICE. المبدئي هو عدم استخدام أي قفل على الإطلاق، ولكن يوصى باستخدام قفل لتجنب التصادم مع systemd-udevd(8) أو الأدوات الأخرى.

-n، --noauto-pt
    لا تُنشئ جدول أقسام مبدئي آليًا على جهاز فارغ. يجب أن يُنشأ جدول الأقسام صراحة بواسطة المستخدم (بواسطة أمر مثل 'o' أو 'g'، إلخ).

-o، --output قائمة
    حدد أعمدة المخرجات المراد طباعتها. استخدم --help للحصول على قائمة بجميع الأعمدة المتاحة.

    يمكن تمديد القائمة المبدئية للأعمدة إذا حُددت قائمة بصيغة +القائمة (مثلًا، -o +UUID).

--bytes*
    اطبع الحجم بالبايت بدلاً من الصيغة السهلة القراءة للبشر.

-s، --getsz
    اطبع الحجم بقطاعات ذات 512 بايت لكل جهاز كتلي معطى. هذا الخيار مهجور لصالح blockdev(8).

-t، --type نوع
    مكّن الدعم فقط للصائق الأقراص من الـ نوع المحدد، وعطل الدعم لجميع الأنواع الأخرى.

-u، --units[=وحدة]
    عند عرض جداول الأقسام، تُعرض الأحجام بـ 'القطاعات' أو 'الأسطوانات'. المبدئي هو عرض الأحجام بالقطاعات. وللتوافق مع الإصدارات السابقة، يمكن استخدام الخيار دون معامل وحدة وعندها سيُستخدم المبدئي. لاحظ أن معامل وحدة الاختياري لا يمكن فصله عن الخيار -u بمسافة؛ الصيغة الصحيحة هي -u=cylinders، على سبيل المثال.

-C، --cylinders رقم
    تحديد عدد أسطوانات القرص. ليس لدي أدنى فكرة لماذا قد يرغب أي شخص في القيام بذلك.

-H، --heads رقم
    حدد عدد رؤوس القرص. (ليس العدد الفيزيائي بالطبع، بل العدد المستخدم لجداول الأقسام.) القيم المعقولة هي 255 و 16.

-S، --sectors رقم
    حدد عدد القطاعات لكل مسار في القرص. (ليس العدد الفيزيائي بالطبع، بل العدد المستخدم لجداول الأقسام.) القيمة المعقولة هي 63.

-w، --wipe متى
    مسح تواقيع نظام الملفات وRAID وجدول الأقسام من الجهاز، لتجنب التداخلات المحتملة. يمكن أن تكون الوسيطة متى إما auto أو never أو always. عند عدم تحديد هذا الخيار، يكون الافتراضي هو auto، وفي هذه الحالة يتم مسح التواقيع فقط في الوضع التفاعلي. في جميع الحالات، يتم الإبلاغ عن التواقيع المكتشفة عبر رسائل تحذير قبل إنشاء جدول أقسام جديد. راجع أيضاً الأمر wipefs(8).

-W، --wipe-partitions متى
    مسح تواقيع نظام الملفات وRAID وجدول الأقسام من الأقسام المنشأة حديثاً، لتجنب التداخلات المحتملة. يمكن أن تكون الوسيطة متى إما auto أو never أو always. عند عدم تحديد هذا الخيار، يكون الافتراضي هو auto، وفي هذه الحالة يتم مسح التواقيع فقط في الوضع التفاعلي وبعد تأكيد المستخدم. في جميع الحالات، يتم الإبلاغ عن التواقيع المكتشفة عبر رسائل تحذير قبل إنشاء قسم جديد. راجع أيضاً الأمر wipefs(8).

-h، --help
    اعرض نص المساعدة ثم اخرج.

-V، --version
    اعرض الإصدار واخرج.

الأجهزة

عادةً ما يكون جهاز هو /dev/sda أو /dev/sdb وما شابه. يشير اسم الجهاز إلى القرص بأكمله. الأنظمة القديمة التي لا تحتوي على libata (وهي مكتبة تستخدم داخل نواة لينكس لدعم أجهزة وتحكم ATA) تفرق بين أقراص IDE وأقراص SCSI. في هذه الحالات، سيكون اسم الجهاز /dev/hd* (لـ IDE) أو /dev/sd* (لـ SCSI).

الـ قسم هو اسم جهاز متبوع برقم القسم. على سبيل المثال، /dev/sda1 هو القسم الأول على أول قرص صلب في النظام. راجع أيضاً وثائق نواة لينكس (ملف Documentation/admin-guide/devices.txt).

الحجم

يقبل حوار "القطاع الأخير" حجم القسم المحدد بعدد القطاعات أو بصيغة +/-<الحجم>{K,B,M,G,...}.

إذا كان الحجم مسبوقاً بـ '+'، فسيتم تفسيره على أنه نسبي بالنسبة للقطاع الأول للقسم. أما إذا كان مسبوقاً بـ '-'، فسيتم تفسيره على أنه نسبي بالنسبة للحد الأقصى (آخر قطاع متاح للقسم).

في حال تحديد الحجم بالبايت، يمكن أن يتبع الرقم لواحق مضاعفة مثل KiB (1024 بايت)، MiB (1024*1024 بايت)، وهكذا لـ GiB و TiB و PiB و EiB و ZiB و YiB. الـ "iB" اختيارية، فعلى سبيل المثال، "K" لها نفس معنى "KiB".

الأحجام النسبية إذا حُددت بلواحق مضاعفة (مثل +100MiB) يتم محاذاتها دائماً وفقاً لحدود الإدخال/الإخراج للجهاز. يوصى باستخدام صيغة +/-<الحجم>{K,B,M,G,...}.

يتم حساب القطاع الأخير للقسم بدقة كـ <البداية> + <الحجم> (دون -1) إذا حُدد الحجم بصيغة +<القطاعات>. في هذه الحالة، لا يتم محاذاة الحجم مع حدود الإدخال/الإخراج للجهاز.

من أجل التوافق مع الإصدارات السابقة، يقبل fdisk أيضاً اللواحق KB (1000 بايت)، و MB (1000*1000 بايت)، وهكذا لـ GB و TB و PB و EB و ZB و YB. هذه اللواحق القائمة على 10^N مهجورة.

ملفات السكربتات

يسمح fdisk بقراءة ملفات البرامج النصية (scripts) المتوافقة مع sfdisk(8) (باستخدام الأمر 'I'). يتم تطبيق البرنامج النصي على جدول الأقسام في الذاكرة، ومن ثم يمكن تعديل جدول الأقسام قبل كتابته على الجهاز.

والعكس صحيح، حيث يمكن كتابة تخطيط القرص الحالي الموجود في الذاكرة إلى ملف برنامج نصي باستخدام الأمر 'O'.

ملفات البرامج النصية متوافقة بين cfdisk(8) و sfdisk(8) و fdisk وتطبيقات libfdisk الأخرى. لمزيد من التفاصيل، راجع sfdisk(8).

اللصائق الأجهزة

GPT (GUID Partition Table)
    GPT هو معيار حديث لتخطيط جدول الأقسام. يستخدم GPT عناوين كتل منطقية 64-بت، ومجاميع فحص (checksums)، ومعرفات فريدة (UUIDs)، وأسماء للأقسام، ويدعم عدداً غير محدود من الأقسام (رغم أن عدد الأقسام عادةً ما يكون مقيداً بـ 128 في العديد من أدوات التقسيم).

    لاحظ أن القطاع الأول لا يزال محجوزاً لـ MBR واقٍ (protective MBR) في مواصفات GPT. وهذا يمنع أدوات التقسيم التي تدعم MBR فقط من التعرف الخاطئ على أقراص GPT والكتابة فوقها.

    يُعد GPT دائمًا خيارًا أفضل من MBR، خاصةً على الحواسيب الحديثة التي تستخدم مُحمّل إقلاع UEFI.

DOS-type (MBR)
    يمكن لجدول أقسام من نوع DOS وصف عدد غير محدود من الأقسام. توجد مساحة في القطاع 0 لوصف 4 أقسام (تُسمى 'أساسية'). يمكن أن يكون أحدها قسمًا ممتدًا؛ وهو عبارة عن حاوية تحوي أقسامًا منطقية، مع وجود واصفات في قائمة قطاعات متصلة، يسبق كل منها الأقسام المنطقية المقابلة لها. تأخذ الأقسام الأساسية الأربعة الأرقام 1-4، سواء كانت موجودة أم لا. وتُرقم الأقسام المنطقية بدءًا من 5.

    في جدول أقسام نوع DOS، تُخزن إزاحة البداية وحجم كل قسم بطريقتين: كعدد مطلق من القطاعات (مُعطى في 32 بت)، وكتلاثية أسطوانات/رؤوس/قطاعات (مُعطاة في 10+8+6 بت). الطريقة الأولى جيدة — مع قطاعات بحجم 512 بايت ستعمل حتى 2 تيرابايت. أما الثانية فلها مشكلتان. الأولى هي أن حقول C/H/S لا يمكن ملؤها إلا عند معرفة عدد الرؤوس وعدد القطاعات لكل مسار. والثانية هي أنه حتى لو عرفنا ما يجب أن تكون عليه هذه الأرقام، فإن الـ 24 بت المتاحة لا تكفي. يستخدم DOS نظام C/H/S فقط، ويستخدم Windows كليهما، بينما لا يستخدم لينكس نظام C/H/S أبدًا. عنونة C/H/S مهجورة وقد لا تُدعم في إصدارات fdisk اللاحقة.

    يرجى قراءة قسم وضع DOS إذا كنت تريد أقسامًا متوافقة مع DOS. لا يكترث fdisk بحدود الأسطوانات بشكل مبدئي.

BSD/Sun-type
    يمكن لملصق قرص BSD/Sun وصف 8 أقسام، يجب أن يكون الثالث منها قسم 'كامل القرص'. لا تبدأ قسمًا يستخدم قطاعه الأول فعليًا (مثل قسم التبديل) عند الأسطوانة 0، لأن ذلك سيؤدي إلى تدمير ملصق القرص. لاحظ أن لصيقة BSD عادة ما تكون متداخلة داخل قسم DOS.

IRIX/SGI-type
    يمكن لملصق قرص IRIX/SGI وصف 16 قسمًا، يجب أن يكون الحادي عشر منها قسم 'مجلد' كامل، بينما يجب تسمية التاسع 'ترويسة المجلد'. ستغطي ترويسة المجلد أيضًا جدول الأقسام، أي أنها تبدأ عند الكتلة صفر وتمتد مبدئيًا عبر خمس أسطوانات. يمكن استخدام المساحة المتبقية في ترويسة المجلد بواسطة مدخلات دليل الترويسة. لا يجوز لأي أقسام أن تتداخل مع ترويسة المجلد. لا تُغير نوعها أو تُنشئ نظام ملفات عليها، وإلا سيفقد جدول الأقسام. لا تستخدم هذا النوع من اللصائق إلا عند العمل مع لينكس على أجهزة IRIX/SGI أو أقراص IRIX/SGI تحت نظام لينكس.

    يُنفذ sync(2) و ioctl(BLKRRPART) (إعادة قراءة جدول الأقسام من القرص) قبل الخروج عند تحديث جدول الأقسام.

وضع DOS وتحذير DOS 6.X

لاحظ أن كل هذا مهجور. لست مضطرًا للاهتمام بأشياء مثل الهندسة والأسطوانات في أنظمة التشغيل الحديثة. إذا كنت تريد حقًا تقسيمًا متوافقًا مع DOS، فعليك تفعيل وضع DOS ووحدات الأسطوانات باستخدام خيارات سطر الأوامر fdisk '-c=dos -u=cylinders'.

يبحث أمر FORMAT في DOS 6.x عن بعض المعلومات في القطاع الأول من منطقة البيانات في القسم، ويعامل هذه المعلومات على أنها أكثر موثوقية من المعلومات الموجودة في جدول الأقسام. يتوقع DOS FORMAT من DOS FDISK مسح أول 512 بايت من منطقة البيانات في القسم كلما حدث تغيير في الحجم. سيبحث DOS FORMAT في هذه المعلومات الإضافية حتى لو أُعطي العلم /U — ونحن نعتبر هذا خطأ برمجيًا في DOS FORMAT و DOS FDISK.

الخلاصة هي أنه إذا استخدمت fdisk أو cfdisk(8) لتغيير حجم مدخل في جدول أقسام DOS، فيجب عليك أيضًا استخدام dd(1) لـ تصفير أول 512 بايت من ذلك القسم قبل استخدام DOS FORMAT لتهيئة القسم. على سبيل المثال، إذا كنت تستخدم fdisk لإنشاء مدخل جدول أقسام DOS لـ /dev/sda1، فإنه (بعد الخروج من fdisk وإعادة تشغيل لينكس ليكون جدول الأقسام صالحًا) ستستخدم الأمر dd if=/dev/zero of=/dev/sda1 bs=512 count=1 لتصفير أول 512 بايت من القسم.

يحصل fdisk عادةً على هندسة القرص آليًا. هذه ليست بالضرورة هندسة القرص الفعلية (في الواقع، لا تملك الأقراص الحديثة حقًا أي شيء يشبه الهندسة الفعلية، وبالتأكيد ليس شيئًا يمكن وصفه بصيغة الأسطوانات/الرؤوس/القطاعات البسيطة)، لكنها هندسة القرص التي يستخدمها MS-DOS لجدول الأقسام.

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

كلما عُرض جدول أقسام في وضع DOS، يُجرى فحص اتساق على مدخلات جدول الأقسام. يتحقق هذا الفحص من أن نقاط البداية والنهاية المادية والمنطقية متطابقة، وأن كل قسم يبدأ وينتهي عند حدود الأسطوانة (باستثناء القسم الأول).

تُنشئ بعض إصدارات MS-DOS قسمًا أول لا يبدأ عند حدود الأسطوانة، بل عند القطاع 2 من الأسطوانة الأولى. لا يمكن للأقسام التي تبدأ في الأسطوانة 1 أن تبدأ عند حدود الأسطوانة، ولكن من غير المرجح أن يسبب هذا صعوبة إلا إذا كان لديك OS/2 على حاسوبك.

للحصول على أفضل النتائج، يجب عليك دائمًا استخدام برنامج جدول أقسام مخصص لنظام التشغيل. على سبيل المثال، يجب عليك إنشاء أقسام DOS باستخدام برنامج DOS FDISK وأقسام لينكس باستخدام برنامج لينكس fdisk أو برامج لينكس cfdisk(8).

الألوان

نُفذ تلوين المخرجات بواسطة وظيفة terminal-colors.d(5). يمكن تعطيل التلوين الضمني بملف فارغ

    /etc/terminal-colors.d/fdisk.disable

للأمر fdisk أو لجميع الأدوات بواسطة

    /etc/terminal-colors.d/disable

منذ الإصدار 2.41، دُعم متغير البيئة $NO_COLOR أيضاً لتعطيل تلوين المخرجات ما لم يُمكن صراحةً بخيار من سطر الأوامر.

يتخطى $XDG_CONFIG_HOME/terminal-colors.d أو $HOME/.config/terminal-colors.d الخاص بالمستخدم الإعداد العام.

لاحظ أن تلوين المخرجات قد يُمكن مبدئياً، وفي هذه الحالة ليس من الضروري وجود أدلة terminal-colors.d بعد.

أسماء الألوان المنطقية التي يدعمها fdisk هي:

header
    تروِيسة جداول المخرجات.

help-title
    عناوين أقسام المساعدة.

warn
    رسائل التحذير.

welcome
    رسالة الترحيب.

البيئة

FDISK_DEBUG=all
    يفعل مخرجات تنقيح fdisk.

LIBFDISK_DEBUG=all
    يُفعّل مخرجات تصحيح أخطاء libfdisk.

LIBBLKID_DEBUG=all
    يُفعّل مخرجات تصحيح أخطاء libblkid.

LIBSMARTCOLS_DEBUG=all
    يُفعّل مخرجات تصحيح أخطاء libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on
    يستخدم محارف حشو مرئية.

LOCK_BLOCK_DEVICE=<وضع>
    يستخدم قفل BSD الحصري. الوضع هو "1" أو "0". راجع --lock لمزيد من التفاصيل.

المؤلفين

كُتبت النسخة الأصلية بواسطة Andries E. Brouwer و A. V. Le Blanc وآخرين.

انظر أيضاً

cfdisk(8)، mkfs(8)، partx(8)، sfdisk(8)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم

التوفر

الأمر fdisk جزء من حزمة util-linux التي يمكن تنزيلها من