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

الاسم

swapon - ، swapoff - تفعيل/تعطيل الأجهزة والملفات للتبديل (swapping) والتبويب (paging)

موجز

swapon [خيارات] [specialfile...]

swapoff [-va] [specialfile...]

الوصف

يُستخدم swapon لتحديد الأجهزة التي ستُجرى عليها عمليات التبويب والتبديل.

يُعطى الجهاز أو الملف المستخدم عبر المعلمة specialfile. قد تكون على هيئة -L لصيقة أو -U uuid للإشارة إلى جهاز عبر اللصيقة أو المعرف الفريد الشامل (uuid).

تحدث استدعاءات swapon عادةً في سكريبتات بدء تشغيل النظام لتجعل كل أجهزة التبديل متاحة، بحيث تتداخل أنشطة التبويب والتبديل عبر عدة أجهزة وملفات.

يعطّل swapoff التبديل على الأجهزة والملفات المحددة. عند إعطاء العلم -a، يُعطّل التبديل على جميع أجهزة وملفات التبديل المعروفة (كما توجد في /proc/swaps أو /etc/fstab).

الخيارات

-a، --all

جميع الأجهزة المعلمة كـ "swap" في /etc/fstab تُجعل متاحة، باستثناء تلك التي تملك الخيار "noauto". تُتخطى الأجهزة المستخدمة بالفعل كمساحة تبديل بصمت. انظر قسم ضبط FSTAB لمزيد من التفاصيل.

-T، --fstab مسار

يحدد ملف fstab بديل للتوافق مع mount(8). إذا كان مسار دليلًا، فتُفرز الملفات في الدليل بواسطة strverscmp(3)؛ وتُتجاهل الملفات التي تبدأ بـ "." أو التي لا تملك امتداد .fstab. يمكن تحديد هذا الخيار أكثر من مرة. صُمم هذا الخيار غالبًا لسكريبتات initramfs أو chroot حيث يُضبط تكوين إضافي بخلاف تكوين النظام القياسي.

-d، --discard[=سياسة]

تفعيل نبذ (discard) التبديل، إذا كان الجهاز الخلفي للتبديل يدعم عملية النبذ أو التقليم (trim). قد يحسن هذا الأداء على بعض أجهزة الحالة الصلبة (SSD)، لكنه غالبًا لا يفعل. يسمح الخيار بالاختيار بين سياستين متاحين لنبذ التبديل:

--discard=once

لإجراء عملية نبذ لمرة واحدة لمنطقة التبديل بالكامل عند تشغيل swapon؛ أو

--discard=pages

لنبذ صفحات التبديل المحررة بشكل غير متزامن قبل أن تصبح متاحة لإعادة الاستخدام.

إذا لم تُحدد أي سياسة، فإن السلوك المبدئي هو تفعيل كلا نوعي النبذ. يمكن أيضًا استخدام خيارات الوصل في /etc/fstab وهي discard أو discard=once أو discard=pages لتفعيل أعلام النبذ.

-e، --ifexists

تجاوز الأجهزة غير الموجودة بصمت. يمكن أيضًا استخدام خيار الوصل nofail في /etc/fstab لتجاوز الأجهزة غير الموجودة.

-f، --fixpgsz

أعد تهيئة (تنفيذ mkswap) مساحة المبادلة إذا كان حجم صفحتها لا يطابق حجم صفحة النواة التي تعمل حاليًا. يقوم mkswap(8) بتهيئة الجهاز بالكامل ولا يفحص الكتل المعطوبة.

-L لصيقة

استخدم القسم الذي لديه الـ لصيقة (لصيقة) المحددة. (يتطلب هذا الوصول إلى /proc/partitions.)

-o، --options opts

حدد خيارات التبديل عبر سلسلة نصية مفصولة بفواصل متوافقة مع fstab. على سبيل المثال:

swapon -o pri=1,discard=pages,nofail /dev/sda2

تُقيم سلسلة opts في الآخر وتتجاوز كل خيارات سطر الأوامر الأخرى.

-p، --priority الأولوية

حدد أولوية جهاز التبديل. أولوية هي قيمة بين 0 و 32767. تشير الأرقام الأعلى إلى أولوية أعلى. راجع swapon(2) للحصول على وصف كامل لأولويات التبديل. أضف pri=قيمة إلى حقل الخيارات في /etc/fstab للاستخدام مع swapon -a. عند عدم تحديد أي أولوية، تختار نواة لينكس قيمًا سالبة بشكل مبدئي.

-s، --summary

اعرض ملخص استخدام التبديل حسب الجهاز. يكافئ cat /proc/swaps. تنسيق المخرج هذا مهجور لصالح الخيار --show الذي يوفر تحكمًا أفضل في بيانات المخرجات.

--show[=عمود...]

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

--output-all

أخرج كافة الأعمدة المتاحة.

--annotate[=متى]

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

--noheadings

لا تطبع الترويسات عند عرض مخرجات --show.

--raw

اعرض مخرجات --show دون محاذاة أعمدة الجدول.

--bytes

اعرض حجم التبديل بالبايت في مخرجات --show بدلاً من الوحدات الصديقة للمستخدم.

-U uuid

استخدم القسم الذي لديه الـ uuid المحدد.

-v، --verbose

كن مسهباً.

-h، --help

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

-V، --version

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

ضبط FSTAB

يقرأ الأمر swapon --all الإعدادات من /etc/fstab (أو من ملف محدد عبر خيار سطر الأوامر --fstab). لا تهم سوى مدخلات fstab التي ضُبط فيها نوع نظام الملفات (الحقل الثالث) على "swap".

يقبل الخيار --options قيماً بنفس الصيغة التي يمكن تحديدها في الحقل الرابع في fstab.

الحقل الأول (المصدر)

حدد مصدر التبديل (swap). إذا كان المصدر ملفاً عادياً، فيُشار إليه بمسار مطلق.

إذا كان التبديل جهازاً كتلياً، فيمكن الإشارة إليه بمسار الجهاز، أو أوسمة منطقة التبديل LABEL= أو UUID= (راجع mkswap(8) لمزيد من التفاصيل)، أو بأوسمة القسم مثل PARTLABEL= أو PARTUUID=.

الحقل الثاني (الهدف)

غير مستخدم من قبل swapon، والعرف الموصى به هو استخدام "none".

الحقل الثالث (النوع)

يتطلب "swap" كنوع لنظام الملفات.

الحقل الرابع (الخيارات)

يُنسق كقائمة خيارات مفصولة بفاصلة. تُتجاهل جميع الخيارات غير المعروفة صمتاً. إذا كانت الخيارات غير ضرورية، فإن العرف الموصى به هو استخدام "defaults". توسع الخيارات المحددة في fstab الإعدادات المحددة في سطر أوامر swapon أو تكتب فوقها.

خيارات التبديل المدعومة:

noauto

تجاهل المدخلة عند إعطاء swapon --all.

nofail

عدم الإبلاغ عن أخطاء لهذا الجهاز إذا لم يكن موجوداً.

discard[=السياسة]

تفعيل تجاهل (discard) التبديل. الإعدادات المدعومة هي discard، أو discard=once، أو discard=pages. لمزيد من التفاصيل، راجع خيار سطر الأوامر --discard.

pri=الأولوية

حدد أولوية جهاز التبديل. لمزيد من التفاصيل، راجع خيار سطر الأوامر --priority.

الحقل الخامس

غير مستخدم من قبل swapon، والعرف الموصى به هو إبقاؤه فارغاً.

الحقل السادس

غير مستخدم من قبل swapon، والعرف الموصى به هو إبقاؤه فارغاً.

حالة الخروج

يملك swapoff قيم حالة الخروج التالية منذ الإصدار v2.36:

0

نجاح

2

ذاكرة النظام غير كافية لإيقاف التبديل (OOM)

4

فشل استدعاء النظام swapoff(2) لسبب آخر

8

خطأ نظام في استدعاء غير swapoff(2) (نفاد الذاكرة، ...)

16

خطأ في الاستخدام أو النحو

32

فشلت جميع عمليات swapoff عند استخدام --all

64

نجحت بعض عمليات swapoff عند استخدام --all

يعيد الأمر swapoff --all القيمة 0 (نجح الكل)، أو 32 (فشل الكل)، أو 64 (فشل البعض، ونجح البعض).

+ الإصدارات القديمة قبل v2.36 ليس لها حالة خروج موثقة، القيمة 0 تعني النجاح في جميع الإصدارات.

البيئة

LIBMOUNT_DEBUG=all

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

LIBBLKID_DEBUG=all

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

الملفات

/dev/sd??

أجهزة الصفحات القياسية

/etc/fstab

جدول وصف نظام ملفات ascii

ملاحظات

الملفات ذات الثقوب

يتوقع تنفيذ ملف التبديل في النواة القدرة على الكتابة إلى الملف مباشرة، دون مساعدة نظام ملفات. يمثل هذا مشكلة في الملفات ذات الثقوب أو ملفات النسخ عند الكتابة (copy-on-write) في أنظمة ملفات مثل Btrfs.

تنشئ أوامر مثل cp(1) أو truncate(1) ملفات ذات ثقوب. ستُرفض هذه الملفات بواسطة swapon.

قد تُفسر الملفات المحجوزة مسبقًا والمنشأة بواسطة fallocate(1) كملفات ذات ثقوب أيضًا اعتمادًا على نظام ملفات. ملفات التبديل المحجوزة مسبقًا متاحة في XFS منذ لينكس 4.18.

الحل الأكثر قابلية للنقل لإنشاء ملف تبديل هو استخدام dd(1) و /dev/zero.

ملفات التبديل على Btrfs متاحة منذ لينكس 5.0 في الملفات التي تملك سمة nocow. راجع صفحة دليل btrfs(5) لمزيد من التفاصيل.

منذ الإصدار 2.41، يمكن للأمر mkswap --file إنشاء ملف تبديل جديد بسمة nocow.

قد لا يعمل التبديل عبر NFS.

تعليق

يكتشف swapon آليًا توقيع مساحة التبديل الذي يحتوي على بيانات تعليق برمجية قديمة (مثل S1SUSPEND، S2SUSPEND، ...) ويعيد كتابته. المشكلة تكمن في أنه إذا لم يُفعل ذلك، فسيحدث فساد في البيانات عند المحاولة التالية لإلغاء التعليق.

تاريخ

ظهر الأمر swapon في 4.0BSD.

انظر أيضاً

swapoff(2)، swapon(2)، fstab(5)، init(8)، fallocate(1)، mkswap(8)، mount(8)، rc(8)

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

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

التوفر

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

2026-05-18 util-linux 2.42.1