| 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 رقم-القسم] جهاز
إذا حُدد الخيار -N أو --partno، تُطبق التغييرات على القسم الموجه إليه بواسطة partition-number. الحقول غير المحددة في القسم لا تُعدل.
لاحظ أنه من الممكن عنونة قسم غير مستخدم باستخدام -N. على سبيل المثال، يحتوي MBR دائمًا على 4 أقسام، ولكن عدد الأقسام المستخدمة قد يكون أقل. في هذه الحالة، يتبع sfdisk القيم المبدئية من جدول الأقسام ولا يستخدم القيم المبدئية المضمنة للقسم غير المستخدم المعطى مع -N. انظر أيضًا --append.
-A، --activate جهاز [رقم-القسم...]
أمر التنشيط متاح لـ MBR و PMBR فقط. إذا كُشفت لصيقة GPT، يطبع sfdisk تحذيرًا ويدخل آليًا إلى PMBR.
إذا لم يُحدد رقم-القسم، تُسرد الأقسام التي تملك علامة مفعلة.
--backup-pt-sectors جهاز
--delete جهاز [رقم-القسم...]
-d، --dump جهاز
-g، --show-geometry [جهاز...]
-J، --json جهاز
-l، --list [جهاز...]
-F، --list-free [جهاز...]
--part-attrs الجهاز رقم-قسم [السمات]
Bit 0 (RequiredPartition)
Bit 1 (NoBlockIOProtocol)
Bit 2 (LegacyBIOSBootable)
Bits 3-47
Bits 48-63
--part-label الجهاز رقم-القسم [لصيقة]
--part-type جهاز رقم-القسم [نوع]
معامل نوع هو رقم سداسي عشري لـ MBR، أو GUID لـ GPT، أو اسم مستعار للنوع (مثل "linux") أو اختصار للنوع (مثل 'L'). من أجل التوافق مع الإصدارات السابقة، فإن الخيارين -c و --id لهما نفس معنى هذا الخيار.
--part-uuid الجهاز رقم-قسم [uuid]
--disk-id جهاز [معرف]
--discard-free جهاز
Warning
ستُفقد جميع البيانات في المناطق المنبوذة على الجهاز! لا تستخدم هذا الخيار إذا لم تكن متأكداً.
لاحظ أن أمر 'T' في fdisk يوفر حواراً لتحديد أي منطقة غير مستخدمة يجب نبذها. ومع ذلك، يقوم sfdisk دائماً بنبذ جميع المناطق غير المقسمة (باستثناء المناطق التي لا يمكن إنشاء أقسام فيها، مثل بداية الجهاز).
-r، --reorder جهاز
-s، --show-size [جهاز...]
-T، --list-types
-V، --verify [جهاز...]
--relocate oper جهاز
gpt-bak-std
gpt-bak-mini
الخيارات
-a، --append
لاحظ أنه في هذه الحالة قد يُعاد استخدام قسم غير مستخدم حتى وإن لم يكن القسم الأخير في جدول الأقسام. انظر أيضاً -N لعنونة مدخلة محددة في جدول الأقسام.
-b، --backup
--bytes
--color[=متى]
-f، --force
--Linux
--lock[=وضع]
-n، --no-act
--no-reread
--no-tell-kernel
-O، --backup-file مسار
--move-data[=مسار]
يحدد المسار الاختياري مسار اسم ملف السجل. يحتوي ملف السجل على معلومات حول كافة عمليات القراءة/الكتابة على بيانات القسم. الكلمة "@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
-o، --output قائمة
يمكن توسيع قائمة الأعمدة المبدئية إذا حُددت القائمة قائمة في تنسيق +list (مثل، -o +UUID).
-q، --quiet
--sector-size حجم_القطاع
-u، --unit S
-X، --label نوع
-Y، --label-nested نوع
-w، --wipe متى
-W، --wipe-partitions متى
-h، --help
-v، --version
تنسيقات المدخلات
يدعم sfdisk تنسيقي مدخلات وأسطر ترويسة عامة.
أسطر الترويسة
تحدد أسطر الترويسة الاختيارية معلومات عامة تنطبق على جدول الأقسام. تنسيق سطر الترويسة هو:
<اسم>: <قيمة>
الترويسات المتعرف عليها حاليًا هي:
unit
label
label-id
first-lba
last-lba
table-length
grain
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'
S - alias 'swap'
Ex - alias 'extended'
H - alias 'home'
U - الاسم المستعار 'uefi'
R - alias 'raid'
V - الاسم المستعار 'lvm'
قيمة نوع المبدئية هي linux.
الاختصار 'X' لقسم لينكس الممتد (85) مهجور لصالح 'Ex'.
يُحدد bootable كـ [*|-]، والقيمة المبدئية هي غير-قابل-للإقلاع. قيمة هذا الحقل غير ذات صلة بنظام لينكس - فعندما يعمل لينكس يكون قد أُقلع بالفعل - ولكنها قد تلعب دوراً لبعض محملات الإقلاع والأنظمة التشغيلية الأخرى.
تنسيق الحقول المسماة
هذا التنسيق أكثر قابلية للقراءة، ومتانة، وتوسعاً، ويسمح بتحديد معلومات إضافية (مثل UUID). يُوصى باستخدام هذا التنسيق لإبقاء البرامج النصية الخاصة بك أكثر وضوحاً.
[جهاز :]
اسم[=قيمة]،
...
حقل جهاز اختياري. يستخرج sfdisk رقم القسم من اسم الجهاز. ويسمح بتحديد الأقسام بترتيب عشوائي. تُستخدم هذه الوظيفة غالباً بواسطة --dump. لا تستخدمها إذا لم تكن متأكداً.
يمكن أن تكون الـ قيمة بين علامات اقتباس (مثلاً، name="هذا اسم القسم"). يدعم الحقلان start= و size= العلامتين '+' و '-' بنفس الطريقة المتبعة في تنسيق الحقول غير المسماة.
الحقول المتاحة حالياً هي:
start=رقم
size=رقم
bootable
attrs=سلسلة-محارف
uuid=سلسلة-محارف
name=سلسلة-محارف
type=رمز
لصيقة قرص فارغة
لا ينشئ 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
LIBFDISK_DEBUG=all
LIBBLKID_DEBUG=all, LIBSMARTCOLS_DEBUG=all
LIBSMARTCOLS_DEBUG_PADDING=on
يُفعّل مخرجات تصحيح أخطاء libblkid.
LOCK_BLOCK_DEVICE=<وضع>
ملاحظات
بدءًا من الإصدار 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
echo -e ',10M,L\n,10M,L\n,+,\n' | sfdisk /dev/sdc
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
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.
انظر أيضاً
التبليغ عن الأخطاء
لتقارير العِلل، استخدم مُتتبع المشكلات 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 |