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

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

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

  NFS

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

  تعليق

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

تاريخ

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

انظر أيضاً

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

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

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

التوفر

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