SWAPON(8) دستورات مدیریت سیستم SWAPON(8)
] . mso www.tmac

swapon, swapoff - فعال‌سازی/غیرفعال‌سازی دستگاه‌ها و فایل‌ها برای صفحه‌بندی و مبادله

swapon [options] [specialfile...]

swapoff [-va] [specialfile...]

دستور swapon برای مشخص کردن دستگاه‌هایی استفاده می‌شود که صفحه‌بندی و مبادله (paging and swapping) باید روی آن‌ها انجام شود.

دستگاه یا فایل مورد استفاده توسط پارامتر specialfile مشخص می‌شود. این پارامتر می‌تواند به شکل -L label یا -U uuid باشد تا دستگاه را بر اساس برچسب یا uuid مشخص کند.

فراخوانی‌های swapon معمولاً در اسکریپت‌های بوت سیستم رخ می‌دهند تا تمام دستگاه‌های مبادله در دسترس قرار گیرند، به‌طوری‌که فعالیت صفحه‌بندی و مبادله در میان چندین دستگاه و فایل هم‌پوشانی و توزیع شود.

دستور swapoff مبادله روی دستگاه‌ها و فایل‌های مشخص‌شده را غیرفعال می‌کند. هنگامی که پرچم -a داده شود، مبادله روی تمام دستگاه‌ها و فایل‌های مبادله شناخته‌شده (همان‌طور که در /proc/swaps یا /etc/fstab یافت می‌شود) غیرفعال می‌شود.

-a, --all

تمام دستگاه‌هایی که در /etc/fstab به عنوان "swap" علامت‌گذاری شده‌اند در دسترس قرار می‌گیرند، به جز مواردی که دارای گزینه "noauto" هستند. دستگاه‌هایی که از قبل به عنوان مبادله استفاده می‌شوند، بدون پیام رد می‌شوند.

-T, --fstab path

یک پرونده fstab جایگزین برای سازگاری با mount(8) مشخص می‌کند. اگر path یک پوشه باشد، پرونده‌های درون پوشه بر اساس strverscmp(3) مرتب می‌شوند؛ پرونده‌هایی که با "." شروع می‌شوند یا فاقد پسوند .fstab هستند نادیده گرفته می‌شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. این گزینه بیشتر برای اسکریپت‌های initramfs یا chroot طراحی شده است که در آن‌ها پیکربندی اضافی فراتر از پیکربندی استاندارد سیستم تعیین می‌شود.

-d, --discard[=policy]

فعال‌سازی دورریزی (discard) مبادله، در صورتی که دستگاه پشتیبان swap از عملیات discard یا trim پشتیبانی کند. این ممکن است کارایی را در برخی از درایوهای حالت جامد (SSD) بهبود بخشد، اما اغلب بی‌تاثیر است. این گزینه امکان انتخاب بین دو خط‌مشی دورریزی swap را فراهم می‌کند:

--discard=once

برای اجرای یک‌باره عملیات discard برای کل فضای مبادله در هنگام swapon؛ یا

--discard=pages

برای دورریزی ناهمگام صفحات آزادشده مبادله پیش از اینکه برای استفاده مجدد در دسترس قرار گیرند.

اگر هیچ خط‌مشی‌ای انتخاب نشود، رفتار پیش‌فرض فعال‌سازی هر دو نوع discard است. گزینه‌های مانت /etc/fstab شامل discard، discard=once یا discard=pages نیز ممکن است برای فعال‌سازی پرچم‌های دورریزی استفاده شوند.

-e, --ifexists

نادیده گرفتن بی‌صدای دستگاه‌هایی که وجود ندارند. گزینه مانت nofail در /etc/fstab نیز می‌تواند برای صرف‌نظر از دستگاه ناموجود استفاده شود.

-f, --fixpgsz

راه‌اندازی مجدد (اجرای mkswap) فضای مبادله در صورتی که اندازه صفحه آن با هسته در حال اجرا مطابقت نداشته باشد. دستور mkswap(8) کل دستگاه را راه‌اندازی می‌کند و بلوک‌های معیوب را بررسی نمی‌کند.

-L label

استفاده از پارتیشنی که دارای label مشخص‌شده است. (برای این کار، دسترسی به /proc/partitions لازم است.)

-o, --options opts

مشخص کردن گزینه‌های مبادله با یک رشته جداشده با کاما و سازگار با fstab. برای نمونه:

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

رشته opts در آخر ارزیابی می‌شود و همه گزینه‌های دیگر خط فرمان را بازنویسی می‌کند.

-p, --priority priority

تعیین اولویت دستگاه مبادله. مقدار priority عددی بین 0 و 32767 است. اعداد بزرگ‌تر نشان‌دهنده اولویت بالاتر هستند. برای توضیحات کامل اولویت‌های مبادله به swapon(2) مراجعه کنید. مقدار pri=value را برای استفاده با swapon -a به فیلد گزینه در /etc/fstab اضافه کنید. هنگامی که هیچ اولویتی تعریف نشده باشد، هسته لینوکس به‌طور پیش‌فرض از اعداد منفی استفاده می‌کند.

-s, --summary

نمایش خلاصه استفاده از مبادله بر اساس دستگاه. معادل با cat /proc/swaps. این قالب خروجی منسوخ شده است (DEPRECATED) و به جای آن استفاده از --show ترجیح داده می‌شود که کنترل بهتری روی داده‌های خروجی فراهم می‌کند.

--show[=column...]

نمایش یک جدول قابل‌تنظیم از نواحی مبادله. برای دیدن فهرست ستون‌های موجود به خروجی --help مراجعه کنید.

--output-all

خروجی دادن تمام ستون‌های موجود.

--noheadings

عدم چاپ عنوان ستون‌ها هنگام نمایش خروجی --show.

--raw

نمایش خروجی --show بدون تراز کردن ستون‌های جدول.

--bytes

نمایش اندازه مبادله به بایت در خروجی --show به جای واحدهای خوانا برای انسان.

-U uuid

استفاده از پارتیشنی که دارای uuid مشخص‌شده است.

-v, --verbose

نمایش با جزئیات بیشتر.

-h, --help

نمایش متن راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

دستور 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، ...) تشخیص داده و بازنویسی می‌کند. مشکل این است که اگر این کار انجام نشود، در تلاش بعدی برای بازگشت از تعلیق (unsuspending) تخریب داده رخ خواهد داد.

دستور 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-06-16 util-linux 2.41.5