MKSWAP(8) دستورات مدیریت سیستم MKSWAP(8)

mkswap - راه‌اندازی و ایجاد ناحیه مبادله لینوکس (Swap)

mkswap [گزینه‌ها] دستگاه [بلوک‌ها]

mkswap [گزینه‌ها] --size اندازه --file فایل

دستور mkswap یک ناحیه مبادله (swap area) لینوکس را روی یک دستگاه یا درون یک فایل ایجاد و آماده‌سازی می‌کند.

آرگومان دستگاه معمولاً یک پارتیشن دیسک (مانند /dev/sdb7) است، اما می‌تواند یک فایل نیز باشد. هسته لینوکس به شناسه‌های پارتیشن نگاه نمی‌کند، اما بسیاری از اسکریپت‌های نصب فرض می‌کنند پارتیشن‌هایی با نوع هگزادسیمال 82 (LINUX_SWAP) برای پارتیشن‌های swap در نظر گرفته شده‌اند. (هشدار: سولاریس نیز از این نوع استفاده می‌کند. مراقب باشید پارتیشن‌های سولاریس خود را نابود نکنید.)

پارامتر بلوک‌ها زائد است اما برای سازگاری با گذشته حفظ شده است. (این پارامتر اندازه دلخواه ناحیه swap را در بلوک‌های ۱۰۲۴ بایتی مشخص می‌کند. در صورت حذف آن، mkswap از کل پارتیشن یا فایل استفاده خواهد کرد. مشخص کردن آن کار عاقلانه‌ای نیست - یک اشتباه تایپی ممکن است دیسک شما را نابود کند.)

پس از ایجاد ناحیه مبادله، برای آغاز استفاده از آن به دستور swapon(8) نیاز دارید. معمولاً نواحی swap در /etc/fstab فهرست می‌شوند تا بتوان در زمان بوت با دستور swapon -a در یکی از اسکریپت‌های بوت از آن‌ها استفاده کرد.

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

دستور mkswap، مانند بسیاری دیگر از ابزارهای مشابه mkfs، اولین بلوک پارتیشن را پاک می‌کند تا هر سیستم‌فایل قبلی نامرئی شود.

با این حال، mkswap از پاک کردن اولین بلوک روی دستگاهی که دارای برچسب دیسک (مانند SUN، BSD و ...) باشد خودداری می‌کند.

-c, --check

پیش از ایجاد ناحیه swap، دستگاه را (در صورتی که یک دستگاه بلوکی باشد) برای بلوک‌های معیوب بررسی می‌کند. در صورت یافتن هر بلوک خراب، تعداد آن‌ها چاپ می‌شود.

-F, --file

یک فایل swap با مجوزهای دسترسی مناسب و بلوک‌های تخصیص‌یافته روی دیسک ایجاد می‌کند.

-f, --force

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

همچنین بدون این گزینه، mkswap از پاک کردن اولین بلوک روی دستگاهی که دارای جدول پارتیشن باشد خودداری خواهد کرد.

-q, --quiet

پنهان کردن خروجی‌ها و پیام‌های هشدار.

-L, --label برچسب

تعیین یک برچسب (label) برای دستگاه، جهت امکان فعال‌سازی با swapon(8) از طریق برچسب.

--lock[=حالت]

استفاده از قفل انحصاری BSD برای دستگاه یا فایلی که روی آن عمل می‌کند. آرگومان اختیاری حالت می‌تواند yes، no (یا ۱ و ۰) یا nonblock باشد. اگر آرگومان حالت حذف شود، مقدار پیش‌فرض آن yes است. این گزینه متغیر محیطی $LOCK_BLOCK_DEVICE را بازنویسی می‌کند. حالت پیش‌فرض عدم استفاده از هیچ قفلی است، اما برای جلوگیری از تداخل با systemd-udevd(8) یا ابزارهای دیگر توصیه می‌شود.

-p, --pagesize اندازه

مشخص کردن اندازه صفحه اندازه (به بایت). این گزینه معمولاً غیرضروری است؛ mkswap اندازه را از هسته می‌خواند.

-U, --uuid UUID

تعیین UUID مورد استفاده. مقدار پیش‌فرض، تولید یک UUID جدید است. قالب UUID مجموعه‌ای از ارقام هگزادسیمال است که با خط تیره از هم جدا شده‌اند، مانند: "c1b9d5a2-f162-11cf-9ece-0020afc76f16". پارامتر UUID همچنین می‌تواند یکی از موارد زیر باشد:

clear

پاک کردن شناسه UUID سیستم‌فایل

random

تولید یک UUID تصادفی جدید

time

تولید یک UUID جدید بر اساس زمان

-e, --endianness ENDIANNESS

مشخص کردن ترتیب بایت‌ها (ENDIANNESS) مورد استفاده. آرگومان‌های معتبر عبارتند از native، little یا big. مقدار پیش‌فرض native است.

-o, --offset آفست

مشخص کردن آفست برای نوشتن ناحیه swap در آن.

-s, --size اندازه

مشخص کردن اندازه فایل swap ایجادشده به بایت؛ می‌تواند همراه با یک پسوند ضریب باشد: KiB (=۱۰۲۴)، MiB (=۱۰۲۴*۱۰۲۴) و به همین ترتیب برای GiB، TiB، PiB، EiB، ZiB و YiB (پسوند "iB" اختیاری است، مثلاً "K" همان معنای "KiB" را دارد). اگر فایل وجود داشته باشد و بزرگ‌تر از اندازه باشد، به این اندازه کوتاه (truncate) خواهد شد. این گزینه تنها زمانی کاربرد دارد که همراه با --file استفاده شود.

-v, --swapversion 1

مشخص کردن نسخه فضای swap. (این گزینه در حال حاضر بی‌فایده است، زیرا گزینه قدیمی -v 0 منسوخ شده و اکنون فقط -v 1 پشتیبانی می‌شود. هسته از زمان نسخه 2.5.22 (ژوئن ۲۰۰۲) دیگر از قالب فضای swap نسخه 0 پشتیبانی نمی‌کند. نسخه جدید 1 از نسخه 2.1.117 (اوت ۱۹۹۸) پشتیبانی می‌شود.)

--verbose

اجرای همراه با جزئیات. با این گزینه، mkswap جزئیات بیشتری درباره مشکلات شناسایی‌شده هنگام راه‌اندازی ناحیه swap ارائه می‌دهد.

-h, --help

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

-V, --version

نمایش اطلاعات نسخه و خروج.

LIBBLKID_DEBUG=all

فعال‌سازی خروجی اشکال‌زدایی libblkid.

LOCK_BLOCK_DEVICE=<mode>

استفاده از قفل انحصاری BSD. حالت "1" یا "0" است. برای جزئیات بیشتر گزینه --lock را ببینید.

حداکثر اندازه مفید یک ناحیه swap به معماری و نسخه هسته بستگی دارد.

حداکثر تعداد صفحاتی که هدر ناحیه swap می‌تواند آدرس‌دهی کند ۴۲۹۴۹۶۷۲۹۵ (عدد صحیح ۳۲ بیتی بدون علامت) است. فضای باقی‌مانده روی دستگاه swap نادیده گرفته می‌شود.

در حال حاضر، لینوکس اجازه استفاده از ۳۲ ناحیه swap را می‌دهد. نواحی در حال استفاده را می‌توان در فایل /proc/swaps مشاهده کرد.

دستور mkswap از ایجاد نواحی کوچک‌تر از ۱۰ صفحه خودداری می‌کند.

اگر اندازه صفحه مورد استفاده سیستم خود را نمی‌دانید، می‌توانید آن را با دستور getconf PAGESIZE پیدا کنید.

علاوه بر mkswap --file، امکان ایجاد دستی فایل swap قبل از مقداردهی اولیه با mkswap نیز وجود دارد، به عنوان مثال با دستوری مانند:

از نسخه 2.41، گزینه mkswap --file صفت nocow را برای فایل‌های جدیداً ایجادشده تنظیم می‌کند تا از فایل‌های swap روی Btrfs پشتیبانی شود.

# dd if=/dev/zero of=swapfile bs=1MiB count=$((8*1024))

برای ایجاد یک فایل swap به اندازه 8GiB.

در چنین حالتی، لطفاً نکات ذکرشده در swapon(8) درباره محدودیت‌های استفاده از فایل swap (مشکلات حفره‌ها، پیش‌تخصیص و مسائل copy-on-write) را مطالعه کنید.

fdisk(8), swapon(8)

برای گزارش باگ‌ها، از سامانه پیگیری مشکلات https://github.com/util-linux/util-linux/issues.

دستور mkswap بخشی از بسته util-linux است که می‌توان آن را از آرشیو کرنل لینوکس https://www.kernel.org/pub/linux/utils/util-linux. دانلود کرد.

2026-06-16 util-linux 2.41.5