SFDISK(8) إدارة النظام SFDISK(8)

الاسم

sfdisk - اعرض جدول تقسيم القرص أو تلاعب به

موجز

sfdisk [خيارات] جهاز [-N رقم-القسم]

sfdisk [خيارات] أمر

الوصف

sfdisk هي أداة موجهة للبرمجيات النصية لتقسيم أي جهاز كتلي. تعمل في الوضع التفاعلي إذا نُفذت على طرفية (يشير stdin إلى طرفية).

منذ الإصدار 2.26 يدعم sfdisk لصائق أقراص MBR (DOS) و GPT و SUN و SGI، لكنه لم يعد يوفر أي وظائف لعنونة CHS (أسطوانة-رأس-قطاع). لم تكن CHS مهمة أبداً لنظام لينكس، ومفهوم العنونة هذا لا يشكل أي معنى للأجهزة الجديدة.

يحمي sfdisk أول قطاع في القرص عند إنشاء لصيقة قرص جديدة. الخيار --wipe always يعطل هذه الحماية. لاحظ أن fdisk(8) و cfdisk(8) يمسحان هذه المنطقة بالكامل بشكل مبدئي.

يقوم sfdisk (منذ الإصدار 2.26) بمحاذاة بداية ونهاية الأقسام مع حدود الإدخال/الإخراج للجهاز الكتلي عند تحديد أحجام نسبية، أو عند استخدام القيم المبدئية، أو عند استخدام لاحقات مضاعفة (مثل MiB) للأحجام. من المحتمل أن يُحسّن حجم القسم (بالتقليل أو التكبير) بسبب المحاذاة إذا حُدّدت إزاحة البداية بالضبط بالقطاعات وكان حجم القسم نسبيًا أو عبر لاحقات مضاعفة.

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

لا ينشئ sfdisk أقسام النظام القياسية للصائق أقراص SGI و SUN كما يفعل fdisk(8). من الضروري إنشاء كافة الأقسام صراحةً بما في ذلك أقسام النظام لكامل القرص.

يستخدم sfdisk استدعاء التحكم في الإدخال/الإخراج BLKRRPART (إعادة قراءة جدول الأقسام) للتأكد من أن الجهاز غير مستخدم من قبل النظام أو أدوات أخرى (انظر أيضًا --no-reread). من المحتمل أن تتسابق هذه الميزة أو أي نشاط آخر لأداة sfdisk مع systemd-udevd(8). الطريقة الموصى بها لتجنب التصادمات المحتملة هي استخدام خيار --lock. سيؤدي القفل الحصري إلى جعل systemd-udevd يتخطى معالجة الأحداث على الجهاز.

محث sfdisk هو مجرد تلميح للمستخدمين، ورقم القسم المعروض لا يعني أن نفس مدخل جدول الأقسام سيُنشأ (إذا لم يُحدد -N)، خاصةً بالنسبة للجداول التي تحتوي على فجوات.

الأوامر

الأوامر متعارضة تبادليًا.

[-N، --partno رقم-القسم] جهاز

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

إذا حُدد الخيار ‎-N‎ أو ‎--partno‎، تُطبق التغييرات على القسم الموجه إليه بواسطة partition-number. الحقول غير المحددة في القسم لا تُعدل.

لاحظ أنه من الممكن عنونة قسم غير مستخدم باستخدام -N. على سبيل المثال، يحتوي MBR دائمًا على 4 أقسام، ولكن عدد الأقسام المستخدمة قد يكون أقل. في هذه الحالة، يتبع sfdisk القيم المبدئية من جدول الأقسام ولا يستخدم القيم المبدئية المضمنة للقسم غير المستخدم المعطى مع -N. انظر أيضًا --append.

-A، --activate جهاز [‎رقم-القسم‎...]

شغّل علامة الإقلاع للأقسام المحددة وأوقف تشغيل علامة الإقلاع في جميع الأقسام غير المحددة. يمكن استخدام النائب الخاص '-' بدلاً من أرقام الأقسام لإيقاف تشغيل علامة الإقلاع في جميع الأقسام.

أمر التنشيط متاح لـ MBR و PMBR فقط. إذا كُشفت لصيقة GPT، يطبع sfdisk تحذيرًا ويدخل آليًا إلى PMBR.

إذا لم يُحدد رقم-القسم، تُسرد الأقسام التي تملك علامة مفعلة.

--backup-pt-sectors جهاز

انسخ قطاعات جدول الأقسام الحالي احتياطيًا بتنسيق ثنائي ثم اخرج. انظر قسم BACKING UP THE PARTITION TABLE.

--delete ‎جهاز [‎رقم-القسم...]

احذف كل الأقسام أو الأقسام المحددة.

-d، --dump جهاز

تفريغ أقسام الجهاز بتنسيق يمكن استخدامه كمدخل لـ sfdisk. انظر قسم BACKING UP THE PARTITION TABLE.

-g، --show-geometry [جهاز...]

اسرد هندسة جميع الأجهزة أو الأجهزة المحددة. للتوافق مع الإصدارات السابقة، فإن الخيار المهجور --show-pt-geometry له نفس معنى هذا الخيار.

-J، --json جهاز

استخرج أقسام جهاز بتنسيق JSON. لاحظ أن sfdisk ليس قادراً على استخدام JSON كتنسيق مدخلات.

-l، --list [جهاز...]

اسرد أقسام جميع الأجهزة أو الأجهزة المحددة. يمكن استخدام هذا الأمر مع --verify.

-F، --list-free [جهاز...]

اسرد المناطق الحرة غير المقسمة على جميع الأجهزة أو الأجهزة المحددة.

--part-attrs الجهاز ‎رقم-قسم [‎السمات]

غيّر بتات سمات قسم GPT. إذا لم تُحدد السمات، تُطبع إعدادات القسم الحالية. معامل السمات عبارة عن قائمة من أرقام أو أسماء البتات مفصول بينها بفاصلة أو مسافة. على سبيل المثال، السلسلة "RequiredPartition,50,51" تضبط ثلاثة بتات. بتات السمات المتاحة حاليًا هي:

Bit 0 (RequiredPartition)

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

Bit 1 (NoBlockIOProtocol)

يجب على برمجيات EFI الثابتة تجاهل محتوى القسم وعدم محاولة القراءة منه.

Bit 2 (LegacyBIOSBootable)

قد يكون القسم قابلًا للإقلاع بواسطة برمجيات BIOS الثابتة الموروثة.

Bits 3-47

غير محدد ويجب أن يكون صفرًا. محجوز للتوسع في الإصدارات المستقبلية من مواصفات UEFI.

Bits 48-63

محجوز لاستخدام GUID محدد. يختلف استخدام هذه البتات اعتمادًا على نوع القسم. على سبيل المثال، تستخدم Microsoft البت 60 للإشارة إلى القراءة فقط، و61 لنسخة الظل لقسم آخر، و62 للأقسام المخفية، و63 لتعطيل الوصل الآلي.

--part-label الجهاز رقم-القسم [لصيقة]

غيّر اسم قسم GPT (اللصيقة). إذا لم تُحدد لصيقة، تُطبع لصيقة القسم الحالية.

--part-typeجهاز ‎رقم-القسم [‎نوع]

غيّر نوع القسم. إذا لم يُحدد نوع، يُطبع نوع القسم الحالي.

معامل نوع هو رقم سداسي عشري لـ MBR، أو GUID لـ GPT، أو اسم مستعار للنوع (مثل "linux") أو اختصار للنوع (مثل 'L'). من أجل التوافق مع الإصدارات السابقة، فإن الخيارين -c و --id لهما نفس معنى هذا الخيار.

--part-uuid الجهاز ‎رقم-قسم [uuid]

غيّر UUID الخاص بقسم GPT. إذا لم يُحدد uuid، يُطبع UUID الحالي للقسم.

--disk-id جهاز [‎معرف]

غيّر معرف القرص. إذا لم يُحدد معرف، يُطبع المعرف الحالي. المعرف هو UUID لـ GPT أو عدد صحيح دون إشارة لـ MBR.

--discard-free جهاز

انبذ أي قطاعات غير مستخدمة (غير مقسمة) على الجهاز. استخدم خيار --list-free للحصول على قائمة بالمناطق الخالية. انظر أيضاً blkdiscard(8).

Warning

ستُفقد جميع البيانات في المناطق المنبوذة على الجهاز! لا تستخدم هذا الخيار إذا لم تكن متأكداً.

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

-r، --reorder جهاز

أعد ترقيم الأقسام، مع ترتيبها حسب إزاحة بدايتها.

-s، --show-size [جهاز...]

يسرد أحجام جميع الأجهزة أو الأجهزة المحددة بوحدات حجم 1024 بايت. هذا الأمر مهجور لصالح blockdev(8).

-T، --list-types

اطبع كافة الأنواع المتاحة لملصق القرص الحالي أو الملصق المحدد بواسطة --label.

-V، --verify [جهاز...]

اختبر ما إذا كان جدول الأقسام والأقسام تبدو صحيحة.

--relocate oper جهاز

أعد تعيين موقع ترويسة جدول الأقسام. هذا الأمر متاح حالياً لترويسات GPT فقط. يمكن أن يكون المعامل oper:

gpt-bak-std

انقل ترويسة GPT الاحتياطية إلى الموقع القياسي في نهاية الجهاز.

gpt-bak-mini

انقل ترويسة GPT الاحتياطية خلف القسم الأخير. لاحظ أن معيار UEFI يتطلب وجود الترويسة الاحتياطية في نهاية الجهاز، ويمكن لأدوات التقسيم إعادة تعيين موقع الترويسة آلياً لاتباع المعيار.

الخيارات

-a، --append

لا تنشئ جدول تقسيم جديداً، بل قم فقط بإلحاق الأقسام المحددة.

لاحظ أنه في هذه الحالة قد يُعاد استخدام قسم غير مستخدم حتى وإن لم يكن القسم الأخير في جدول الأقسام. انظر أيضاً ‎-N‎ لعنونة مدخلة محددة في جدول الأقسام.

-b، --backup

انسخ قطاعات جدول الأقسام الحالية احتياطياً قبل البدء في التقسيم. اسم ملف النسخ الاحتياطي المبدئي هو ~/sfdisk-<device>-<offset>.bak؛ لاستخدام اسم آخر انظر الخيار -O، --backup-file. انظر قسم BACKING UP THE PARTITION TABLE لمزيد من التفاصيل.

--bytes

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

--color[=متى]

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

-f، --force

عطّل كافة فحوصات الاتساق.

--Linux

خيار مهجور ومُتجاهل. التقسيم المتوافق مع لينكس (وأنظمة التشغيل الحديثة الأخرى) هو المبدئي.

--lock[=وضع]

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

-n، --no-act

قم بكل شيء باستثناء الكتابة الفعلية على الجهاز.

--no-reread

لا تتحقق عبر ioctl الخاص بإعادة قراءة جدول الأقسام عما إذا كان الجهاز قيد الاستخدام.

--no-tell-kernel

لا تُبلغ النواة بتغييرات القسم. يوصى بهذا الخيار مع --no-reread لتعديل قسم على قرص قيد الاستخدام. يجب ألا يُستخدم القسم المعدل (مثلاً، لا يوصل).

-O، --backup-file مسار

تجاوز اسم ملف النسخة الاحتياطية المبدئي. لاحظ أن اسم الجهاز والإزاحة (offset) يتم إلحاقهما دائماً باسم الملف.

--move-data[=مسار]

انقل البيانات بعد إعادة تعيين موقع القسم، على سبيل المثال عند نقل بداية قسم إلى مكان آخر على القرص. يجب أن يظل حجم القسم كما هو، وقد يتداخل الموقعان الجديد والقديم. يتطلب هذا الخيار الخيار -N ليُعالج على قسم واحد محدد فقط.

يحدد المسار الاختياري مسار اسم ملف السجل. يحتوي ملف السجل على معلومات حول كافة عمليات القراءة/الكتابة على بيانات القسم. الكلمة "@default" كمسار مسار تُجبر sfdisk على استخدام ~/sfdisk-<devname>.move للسجل. السجل اختياري منذ الإصدار v2.35.

لاحظ أن هذه العملية محفوفة بالمخاطر وليست ذرية. لا تنسَ نسخ بياناتك احتياطياً!

انظر أيضاً --move-use-fsync.

في المثال أدناه، ينشئ الأمر الأول منطقة خالية بحجم 100 ميجابايت قبل القسم الأول وينقل البيانات التي يحتوي عليها (مثل نظام ملفات)، بينما ينشئ الأمر التالي قسماً جديداً من المساحة الخالية (عند الإزاحة 2048)، ويعيد الأمر الأخير ترتيب الأقسام لتطابق ترتيب القرص (سيصبح sdc1 الأصلي sdc2).

echo '+100M,' | sfdisk --move-data /dev/sdc -N 1

echo '2048,' | sfdisk /dev/sdc --append

sfdisk /dev/sdc --reorder

--move-use-fsync

استخدم استدعاء النظام fsync(2) بعد كل عملية كتابة عند نقل البيانات إلى موقع جديد بواسطة --move-data.

-o، --output قائمة

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

يمكن توسيع قائمة الأعمدة المبدئية إذا حُددت القائمة قائمة في تنسيق +list (مثل، -o +UUID).

-q، --quiet

اكتم رسائل المعلومات الإضافية.

--sector-size حجم_القطاع

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

-u، --unit S

خيار مهجور. وحدة القطاع فقط هي المتاحة. هذا الخيار ليس متاحاً عند استخدام الأمر --show-size.

-X، --label نوع

حدد نوع لصيقة القرص (مثل: dos، و*gpt*، ...). إذا لم يُعطَ هذا الخيار، فإن sfdisk يستخدم نوع اللصيقة الموجودة مبدئياً، ولكن إن لم تكن هناك لصيقة على الجهاز بعد، فإن النوع يكون dos مبدئياً. يمكن تجاوز هذا الإعداد المبدئي بواسطة سطر ترويسة المخطوطة "label: <name>". الخيار ‎--label‎ لا يجبر sfdisk على إنشاء لصيقة قرص فارغة (انظر قسم EMPTY DISK LABEL أدناه).

-Y، --label-nested نوع

يفرض تحرير لصيقة قرص متداخلة. يجب أن تكون لصيقة القرص الأساسية موجودة بالفعل. يسمح هذا الخيار بتحرير MBR هجين/وقائي على الأجهزة التي تحتوي على GPT على سبيل المثال.

-w، --wipe متى

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

-W، --wipe-partitions متى

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

-h، --help

اعرض نص المساعدة ثم اخرج.

-v، --version

اعرض الإصدار واخرج.

تنسيقات المدخلات

يدعم sfdisk تنسيقي مدخلات وأسطر ترويسة عامة.

أسطر الترويسة

تحدد أسطر الترويسة الاختيارية معلومات عامة تنطبق على جدول الأقسام. تنسيق سطر الترويسة هو:

<اسم>: <قيمة>

الترويسات المتعرف عليها حاليًا هي:

unit

تحديد وحدة التقسيم. الوحدة الوحيدة المتاحة هي sectors (قطاعات).

label

تحديد نوع جدول الأقسام. على سبيل المثال dos أو gpt.

label-id

تحديد معرف جدول الأقسام. يجب أن يكون رقمًا سداسي عشر (ببادئة 0x) لـ MBR ومعرف فريد عالمي (UUID) لـ GPT.

first-lba

تحديد أول قطاع قابل للاستخدام لأقسام GPT. تُتجاهل هذه الترويسة إذا اختلف حجم قطاع البرمجية النصية عن حجم قطاع الجهاز. في هذه الحالة يستخدم sfdisk القيمة المبدئية الخاصة باللصيقة.

last-lba

تحديد آخر قطاع قابل للاستخدام لأقسام GPT. تُتجاهل هذه الترويسة إذا اختلف حجم قطاع البرمجية النصية عن حجم قطاع الجهاز. في هذه الحالة يستخدم sfdisk القيمة المبدئية الخاصة باللصيقة. تُتجاهل ترويسة last-lba إذا حُدد الخيار --force، مما يجعل البرمجية النصية قابلة للاستخدام على أقراص ذات أحجام مختلفة.

table-length

تحديد الحد الأقصى لعدد أقسام GPT.

grain

تحديد الحد الأدنى للحجم بالبايت المستخدم لحساب محاذاة الأقسام. القيمة المبدئية هي 1MiB ويُنصح بشدة باستخدام القيمة المبدئية. لا تعدل هذا المتغير إذا لم تكن متأكدًا.

sector-size

يحدد حجم القطاع المستخدم في المدخلات. يستخدم sfdisk داخليًا دائمًا حجم قطاع الجهاز الذي توفره النواة للجهاز الكتلي، أو كما يحدده المستخدم في سطر الأوامر (انظر --sector-size). بدءًا من الإصدار 2.39، يعيد sfdisk حساب الأحجام من المدخلات إذا اختلف ترويسة sector-size عن حجم قطاع الجهاز.

لاحظ أنه من الممكن فقط استخدام أسطر الترويسة قبل تحديد القسم الأول في المدخلات.

تنسيق الحقول غير المسماة

start size type bootable

حيث يملأ كل سطر واصف قسم واحد.

تُفصل الحقول بمسافة بيضاء، أو فاصلة (موصى بها) أو فاصلة منقوطة متبوعة بمسافة بيضاء محتملة؛ وتُتجاهل المسافات البيضاء في البداية والنهاية. يمكن أن تكون الأرقام ثمانية أو عشرية أو سداسية عشرية؛ والعشري هو المبدئي. عندما يكون الحقل غائبًا أو فارغًا أو محددًا كـ '-'، تُستخدم قيمة مبدئية. ولكن عند إعطاء الخيار -N (تغيير قسم واحد)، تكون القيمة المبدئية لكل حقل هي قيمته السابقة.

القيمة المبدئية لـ بداية هي أول قطاع غير مخصص ومحاذٍ وفقًا لقيود الإدخال/الإخراج للجهاز. إزاحة البداية المبدئية للقسم الأول هي 1 MiB. إذا كانت الإزاحة متبوعة بلاحقات مضاعفة (KiB، MiB، GiB، TiB، PiB، EiB، ZiB و YiB)، فسيُفسر الرقم على أنه إزاحة بالبايت. منذ الإصدار v2.38، عند إعطاء الخيار -N (تغيير قسم واحد)، يمكن استخدام '+' لتوسيع القسم عن طريق تحريك بداية القسم إذا كانت هناك مساحة خالية قبل القسم.

تشير القيمة المبدئية لـ حجم إلى "أكبر قدر ممكن"؛ أي حتى القسم التالي أو نهاية الجهاز. يُفسر المعامل الرقمي افتراضيًا كعدد من القطاعات، ومع ذلك إذا كان الحجم متبوعًا بإحدى اللاحقات المضاعفة (KiB، MiB، GiB، TiB، PiB، EiB، ZiB و YiB) فسيُفسر الرقم كحجم للقسم بالبايت ويُحاذى بعد ذلك وفقًا لقيود الإدخال/الإخراج للجهاز. يمكن استخدام '+' بدلاً من الرقم لتوسيع القسم بقدر الإمكان. لاحظ أن '+' يعادل السلوك المبدئي لقسم جديد؛ وستُغير أحجام الأقسام الموجودة كما هو مطلوب.

يُعطى نوع (نوع) القسم بالسداسي عشر لـ MBR (DOS) حيث تكون بادئة 0x اختيارية؛ أو سلسلة GUID لـ GPT؛ أو اختصار أو اسم مستعار. يُنصح باستخدام حرفين لرموز MBR السداسية عشرية لتجنب التعارض بين الاختصار المهجور 'E' ورمز MBR السداسي عشر '0E'. للتوافق مع الإصدارات السابقة، يحاول sfdisk تفسير نوع كاختصار كاحتمال أول في برمجيات التقسيم النصية، على الرغم من أنه في أماكن أخرى (مثل أمر --part-type) يجرب الاختصارات كاحتمال أخير.

يدعم libfdisk منذ الإصدار v2.36 الأسماء المستعارة لأنواع الأقسام كامتداد للاختصارات. الاسم المستعار هو كلمة بسيطة مقروءة للبشر (مثل "linux").

يدعم libfdisk منذ الإصدار v2.37 أسماء أنواع الأقسام في المدخلات، مع تجاهل حالة الأحرف وجميع الأحرف غير الأبجدية الرقمية وغير الرقمية في الاسم (على سبيل المثال "لينكس /usr x86" هي نفسها "linux usr-x86").

الاختصارات والأسماء المستعارة المتاحة:

L - alias 'linux'

لينكس؛ تعني 83 لـ MBR و 0FC63DAF-8483-4772-8E79-3D69D8477DE4 لـ GPT.

S - alias 'swap'

مساحة مبادلة (swap)؛ تعني 82 في MBR و 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F في GPT

Ex - alias 'extended'

قسم MBR ممتد؛ يعني 05 في MBR. الاختصار الأصلي 'E' مهجور بسبب التضارب مع نوع قسم MBR من القيمة 0x0E.

H - alias 'home'

قسم home؛ يعني 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 في GPT

U - الاسم المستعار 'uefi'

قسم نظام EFI، يعني EF في MBR و C12A7328-F81F-11D2-BA4B-00A0C93EC93B في GPT

R - alias 'raid'

مصفوفة لينكس RAID؛ تعني FD في MBR و A19D880F-05FC-4D3B-A006-743F0F84911E في GPT

V - الاسم المستعار 'lvm'

LVM؛ تعني 8E في MBR و E6D6D379-F507-44C2-A23C-238F2A3DF928 في GPT

قيمة نوع المبدئية هي linux.

الاختصار 'X' لقسم لينكس الممتد (85) مهجور لصالح 'Ex'.

يُحدد bootable كـ [*|-]، والقيمة المبدئية هي غير-قابل-للإقلاع. قيمة هذا الحقل غير ذات صلة بنظام لينكس - فعندما يعمل لينكس يكون قد أُقلع بالفعل - ولكنها قد تلعب دوراً لبعض محملات الإقلاع والأنظمة التشغيلية الأخرى.

تنسيق الحقول المسماة

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

[جهاز :] اسم[=قيمة]، ...

حقل جهاز اختياري. يستخرج sfdisk رقم القسم من اسم الجهاز. ويسمح بتحديد الأقسام بترتيب عشوائي. تُستخدم هذه الوظيفة غالباً بواسطة --dump. لا تستخدمها إذا لم تكن متأكداً.

يمكن أن تكون الـ قيمة بين علامات اقتباس (مثلاً، name="هذا اسم القسم"). يدعم الحقلان start= و size= العلامتين '+' و '-' بنفس الطريقة المتبعة في تنسيق الحقول غير المسماة.

الحقول المتاحة حالياً هي:

start=رقم

أول قطاع غير مخصص بمحاذاة قيود الإدخال/الإخراج للجهاز. إزاحة البداية المبدئية للقسم الأول هي 1 MiB. إذا كانت الإزاحة متبوعة بلاحقات مضاعفة (KiB و MiB و GiB و TiB و PiB و EiB و ZiB و YiB)، فسيُفسر الرقم كإزاحة بالبايت.

size=رقم

حدد حجم القسم بالقطاعات. قد يتبع الرقم لواحق مضاعفة (KiB و MiB و GiB و TiB و PiB و EiB و ZiB و YiB)، وعندها يُفسر كحجم بالبايت ويُحاذى الحجم وفقاً لقيود الإدخال/الإخراج للجهاز.

bootable

وسم القسم كقابل للإقلاع.

attrs=سلسلة-محارف

سمات القسم، وعادة ما تكون بتات سمات قسم GPT. راجع --part-attrs لمزيد من التفاصيل حول تنسيق سلسلة بتات GPT.

uuid=سلسلة-محارف

معرف UUID لقسم GPT.

name=سلسلة-محارف

اسم قسم GPT.

type=رمز

رقم ست عشري (دون 0x) لقسم MBR، أو GUID لقسم GPT، أو اختصار كما في تنسيق الحقول غير المسماة أو اسم نوع (مثلاً type="لينكس /usr (x86)"). راجع أعلاه القسم الخاص بتنسيق الحقول غير المسماة لمزيد من التفاصيل. للتوافق مع الإصدارات السابقة، فإن للحقل Id= نفس المعنى.

لصيقة قرص فارغة

لا ينشئ sfdisk جدول أقسام دون أقسام مبدئياً. ويُتوقع وجود أسطر الأقسام في البرنامج النصي مبدئياً. يجب طلب جدول أقسام فارغ صراحة عبر سطر ترويسة البرنامج النصي "label: <name>" دون أي أسطر أقسام. على سبيل المثال:

echo 'label: gpt' | sfdisk /dev/sdb

يُنشئ جدول أقسام GPT فارغ. لاحظ أن --append يعطل هذه الميزة.

نسخ جدول الأقسام احتياطياً

يُوصى بحفظ مخطط أجهزتك. يدعم sfdisk طريقتين.

التفريغ بتنسيق متوافق مع sfdisk

استخدم الأمر --dump لحفظ وصف لمخطط الجهاز في ملف نصي. تنسيق التفريغ مناسب ليكون مدخلاً لـ sfdisk لاحقاً. على سبيل المثال:

sfdisk --dump /dev/sda > sda.dump

يمكن استعادته لاحقاً بواسطة:

sfdisk /dev/sda < sda.dump

لاحظ أن sfdisk يستعيد أنواع الأقسام ومعرفات UUID للأقسام بالكامل. قد يصبح هذا إشكالياً إذا كررت المخطط نفسه على أقراص مختلفة، لأنه قد يؤدي إلى تكرار معرفات UUID داخل حاسوبك.

نسخ احتياطي ثنائي كامل

إذا أردت إجراء نسخ احتياطي ثنائي كامل لجميع القطاعات التي يُخزن فيها جدول الأقسام، فاستخدم الأمر --backup-pt-sectors. سيقوم بكتابة القطاعات في ملفات ~/sfdisk-<device>-<offset>.bak. يمكن تغيير الاسم المبدئي لملف النسخ الاحتياطي باستخدام الخيار --backup-file. تحتوي ملفات النسخ الاحتياطي فقط على البيانات الخام من الـ جهاز. على سبيل المثال:

sfdisk --backup-pt-sectors /dev/sda

يمكن استعادة ترويسة GPT لاحقاً بواسطة:

dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda seek=$((0x00000200)) bs=1 conv=notrunc

من الممكن أيضًا استخدام الخيار --backup لإنشاء النسخة الاحتياطية ذاتها فور التشغيل لأوامر sfdisk الأخرى. على سبيل المثال، نسخ جدول الأقسام احتياطيًا قبل حذف كافة الأقسام من جدول الأقسام:

sfdisk --backup --delete /dev/sda

يستخدم wipefs(8) مفهوم ملفات النسخ الاحتياطي ذاته.

لاحظ أن sfdisk بدءًا من الإصدار 2.26 لم يعد يوفر الخيار -I لاستعادة القطاعات. يوفر dd(1) كافة الوظائف الضرورية.

الألوان

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

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

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

/etc/terminal-colors.d/disable

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

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

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

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

header

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

warn

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

welcome

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

البيئة

SFDISK_DEBUG=all

يُفعل مخرجات تنقِيح sfdisk.

LIBFDISK_DEBUG=all

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

LIBBLKID_DEBUG=all, LIBSMARTCOLS_DEBUG=all

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

LIBSMARTCOLS_DEBUG_PADDING=on

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

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

LOCK_BLOCK_DEVICE=<وضع>

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

ملاحظات

بدءًا من الإصدار 2.26 لم يعد sfdisk يوفر الخيار -R أو --re-read لإجبار النواة على إعادة قراءة جدول الأقسام. استخدم blockdev --rereadpt بدلًا من ذلك.

بدءًا من الإصدار 2.26 لا يوفر sfdisk الخيارات --DOS، أو --IBM، أو --DOS-extended، أو --unhide، أو --show-extended، أو --cylinders، أو --heads، أو --sectors، أو --inside-outer، أو --not-inside-outer.

أمثلة

sfdisk --list --label-nested=mbr /dev/sda

اطبع MBR واقٍ على جهاز يحمل لصيقة قرص GPT.

echo -e ',10M,L\n,10M,L\n,+,\n' | sfdisk /dev/sdc

أُنشئت ثلاثة أقسام لينكس، ببداية مبدئية، وحجم أول قسمين 10 ميجابايت (10MiB)، والقسم الأخير يملأ كافة المساحة المتاحة على الجهاز.

echo -e 'size=10M, type=L\n size=10M, type=L\n size=+\n' | sfdisk /dev/sdc

نفس المثال السابق، ولكن بتنسيق الحقول المسماة.

echo -e 'type=swap' | sfdisk -N 3 /dev/sdc

اضبط نوع القسم الثالث ليكون 'swap'.

sfdisk --part-type /dev/sdc 3 swap

مثل المثال السابق، ولكن دون استخدام سكريبت.

sfdisk --delete /dev/sdc 2

احذف القسم الثاني.

echo "+,+" | sfdisk -N 3 --move-data /dev/sdc

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

المؤلفين

Karel Zak <kzak@redhat.com>

يعتمد تنفيذ sfdisk الحالي على sfdisk الأصلي من Andries E. Brouwer.

انظر أيضاً

fdisk(8)، cfdisk(8)، parted(8)، partprobe(8)، partx(8)

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

لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.

التوفر

الأمر sfdisk جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1