محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

آموزش ایجاد پارتیشن SWAP در لینوکس و معرفی فرمول محاسبه SWAP

در مقاله قبلی که در توسینسو در خصوص فضای SWAP یا پارتیشن SWAP قرار دادیم ، به صورت کامل در خصوص این قابلیت در سیستم عامل لینوکس توضیحاتی را ارائه کردیم.امروز می خواهیم نحوه محاسبه فضای مورد نیاز برای ایجاد کردن پارتیشن SWAP و همچنین ایجاد کردن آن در سیستم عامل لینوکس صحبت کنیم. فضای SWAP می تواند بصورت اختصاصی بصورت یک پارتیشن SWAP ایجاد شود که اینکار برای اکثر موارد پیشنهاد می شود و همچنین می توان آن را بصورت یک SWAP File یا ترکیبی از SWAP File و پارتیشن SWAP ایجاد کرد. با توجه به پیشنهاداتی که برای ایجاد کردن این پارتیشن می شود برای تخمین فضای مورد نیاز برای ایجاد کردن پارتیشن SWAP یک فرمول پیشنهاد می شود. اگر شما حرف M را میزان فضای RAM موجود در سیستم در نظر بگیرید ، حرف S را میزان حافظه Swap بر حسب GB در نظر بگیرید بنابراین میزان حافظه SWAP به شکل زیر محاسبه می شود :

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
  • اگر M کوچکتر از 2 گیگابایت باشد بنابراین == S=M × 2 خواهد شد در غیر اینصورت S=M+2 خواهد بود

با احتساب فرمول بالا اگر فرض را بر این بگیریم که بر روی سیستم ما 2 گیگابایت حافظه RAM وجود داشته باشد بنابراین ما برای حافظه SWAP خودمان باید 4 گیگابایت فضا در نظر بگیریم حالا اگر حافظه RAM ما 6 گیگابایت باشد ، فضای SWAP ای که برایش در نظر می گیریم عدد 8 خواهد بود. بر همین اساس ما آموزش زیر را برای ایجاد کردن این فضا جلو می بریم و در وهله اول برای لینوکس Debian ای که 2 گیگابایت RAM دارد 4 گیگابایت حافظه SWAP در نظر می گیریم.

اضافه کردن یک SWAP Partition جدید و فعال کردن Swapping در لینوکس

قبل از اینکه هرگونه تغییری بر روی SWAP Partition خود انجام بدهیم می توانیم با استفاده از دستورات swapon –s یا free –m وضعیت استفاده از SWAP Partition خود را مشاهده کنیم ، خروجی این دستورات را می توانید در زیر مشاهده کنید :

root@itpro-debian:~# swapon -s
Filename				Type		Size	Used	Priority
/dev/sda5                               partition	901116	0	-1
root@itpro-debian:~# 
-------------------------------------------------------------
root@itpro-debian:~# free -m
             total       used       free     shared    buffers     cached
Mem:          2006        438       1568          0         38        193
-/+ buffers/cache:        207       1799
Swap:          879          0        879
root@itpro-debian:~#
وب سایت توسینسو
وب سایت توسینسو

فرآیند ایجاد کردن SWAP Partition تا حدود زیادی مشابه ایجاد کردن یک پارتیشن معمولی است با این تفاوت که ما نوع پارتیشن را swap قرار می دهیمو برای اینکار ما یک دیسک به سیستم با ظرفیت 20 گیگابایت اضافه کرده ایم که در سیستم با عنوانdev//sdb// شناخته می شود ، از این دیسک فضایی معادل 4 گیگابایت را با توجه به وجود 2 گیگابایت RAM فیزیکی به SWAP Partition اختصاص می دهیم. توجه کنید که پارتیشن ما در زمان ایجاد باید از نوع Linux Swap // solaris باشد. طبیعتا برای انجام این فرآیند شما باید با دستورات fdisk آشنایی داشته باشید ، قبلا در خصوص نحوه استفاده از fdisk در لینوکس آموزشی را ارائه کرده ایم که می توانید به آن مراجعه کنید ، دستورات زیر را به ترتیب انجام دهید تا فضای 4 گیگابایتی برای SWAP Partition ایجاد شود :

  1. دستور fdisk //dev//sdb را مشابه شکل و دستورات پایین وارد کنید
  2. حرف n برای ایجاد کردن new partition را وارد کنید و Enter را بزنید
  3. حرف p را برای ایجاد کردن یک primary partition وارد کنید و Enter را بزنید
  4. در قسمت partition number عدد 1 و سپس کلید Enter را بزنید
  5. در قسمت First Cylinder فقط کلید Enter را بزنید
  6. در قسمت Last Cylinder همانطور که در شکل مشاهده می کنید علامت + به همراه عدد 4 و حروف GB را وارد کنید ، GB در اینجا به معنی Gigabyte ، M به معنی Megabyte و K به معنی Kilobyte است که ما با توجه به نیاز به 4 گیگابایت فضا عدد 4 را به شکل زیر وارد می کنیم.
  7. مهمترین قسمت در اینجا وارد کردن نوع پارتیشن است ، در قسمت command اینبار حرف t برای تعیین نوع پارتیشن وارد کنید و عدد 82 که بیانگر نوع پارتیشن از نوع Linux Swap است را انتخاب کنید و Enter را بزنید.
  8. حرف w برای write شدن اطلاعات بر روی دیسک را وارد کنید و Enter را بزنید . تبریک می گوییم شما پارتیشن را آماده کردید :
root@itpro-debian:~# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x7b1a96c6.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +4GB

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
root@itpro-debian:~# 

مرحله بعدی ایجاد کردن فایل سیستم مورد نظر برای پارتیشن SWAP است که در این قسمت با استفاده از دستور mkswap پارتیشن مورد نظرمان را با فایل سیستم مورد استفاده در SWAP Partition فرمت می کنیم ، به دستور و تصویر زیر دقت کنید ، ما در اینجا dev//sdb1// را با فایل سیستم swap فرمت کردیم :

root@itpro-debian:~# mkswap /dev/sdb1
Setting up swapspace version 1, size = 3906244 KiB
no label, UUID=9a937ecf-7a27-427f-87ea-85176f131b36
root@itpro-debian:~# 
تصویر خروجی دستور mkswap

حالا نوبت به فعال کردن قابلیت swapping بر روی swap partition است که براحتی با استفاده از دستور زیر انجام می شود :

root@itpro-debian:~# swapon /dev/sdb1
تصویر خروجی دستور swapon .dev

حالا دستور reboot –f را در ترمینال وارد کنید تا فایل fstab سیستم بروز رسانی شود ، بعد از بروز رسانی فایل fstab را باز کنید و مطمئن شوید که تنظیمات مربوط به swap ای که ایجاد کرده اید اعمال شده باشد ، اگر اعمال نشده بود بایستی بصورت دستی تنظیمات مربوطه را در فایل وارد کنید و مجددا سیستم را reboot کنید. البته نکات در خصوص استفاده از swap بسیار زیاد است و ما سعی کردیم که فقط مهمترین تنظیمات اولیه آن را برای شما بازگو کنیم.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات