نحوه ایجاد swap

سلام من موقع نصب حافظه swap به سیستمم اختصاص ندادم و الان با کمبود رم مواجه میشم.

الان امکان هست بدون اینکه از اول os نصب کنم حافظه swap رو ایجاد کنم؟اگ هست چجوری؟مرسی

امکانش هست ولی یه کم سخته و البته ممکنه باعث از بین رفتن اطلاعات داخل هارددیسک فعلی شما بشه. چون به هر حال قراره یه پارتیشنی رو به دو قسمت تقسیم کنید و یه قسمتشو بدید به swap.

توضیحش خیلی طولانیه من یه نسخه‌ی خلاصشو اینجا مینویسم اگه سوالی بود میتونم کاملتر توضیح بدم. شاید دقیق نباشه چیزی که میگم چون بستگی به توزیع شما داره و البته اینجور کارها هیچوقت راحت نیست.

  • قبل از هرچیزی از کل سیستم فعلیتون یه بکاپ بگیرید که خیالتون راحت باشه.
  • حتما باید از یه لینوکس دیگه استفاده کنید. یعنی یه لینوکس لایو دانلود کنید و بریزید توی فلش و از روی اون بوت کنید. همین لینوکسی که الآن روشنه نباید به هاردش دست بزنید.
  • بعد از بوت کردن میتونید با fdisk یا gdisk (نرم‌افزارهای تحت ترمینال) یا gparted (نرم‌افزار گرافیکی. اگه لینوکسی که روی فلش بوت میکنید نسخه‌ی گرافیکی داشته باشه) پارتیشن رو ریسایز کنید. توضیحش زیاده ولی توی اینترنت مطلب براشون زیاد هست.
  • باید پارتیشن جدیدی که ساختید رو با دستور mkswap /dev/sdXx فرمت کنید و با swapon /dev/sdXx روشنش کنید که قابل استفاده بشه (البته این مرحله وقتی از usb بوت کردید مهم نیست و برای وقتیه که chroot کرده باشید داخل لینوکس هارددیسک) به جای X و x باید آدرس درست اون پارتیشن رو بزنید. مثلا برای من sda3 هست.
  • بعد باید این پارتیشن رو به /etc/fstab اضافه کنید که به عنوان پارتیشنهای سیستمی شناخته بشه و موقع روشن شدن سیستم، استفاده بشه. شکل کلیش اینطوریه:
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# swap was on /dev/sda3 during installation
UUID=a1f5c1bb-1fd3-4d02-8bb4-30e4473ebf2b none            swap    sw              0       0

به جای اون استرینگ طولانی که اینجا جلوی UUID نوشته شده باید UUID درایو خودتون رو بنویسید. با کامند blkid /dev/sdXx میتونید ببینیدش.
و این خط باید در ادامه‌ی فایل /etc/fstab قرار داده بشه.

دقت کنید که الآن /etc/fstab شما، مربوط به لینوکسی میشه که روی فلشه. برای دسترسی به این فایل توی لینوکس هارددیسک، باید درایو / هارددیسک رو (احتمالا باید /dev/sda1 یا /dev/sda2 باشه) یه جا mount کنید و فایل داخل اون رو ویرایش کنید.


برای اینکارهایی که گفتم نیازی نیست chroot کنید ولی مطمئن نیستم. اصولا میشه بدون chroot انجامش داد تنها چیزی که فکر میکنم خراب از آب در بیاد UUID درایو هست که ممکنه توی لینوکس داخل فلش یه id دیگه داشته باشه البته فکر نمیکنم اینطوری باشه چون به هر حال UUID یعنی Universally Unique Identifier Digit پس توی هرجای کهکشان باید همین باشه :wink:

دم شما گرم بابت وقتی که گذاشتید

ولی اگ از اول نصب کنم وقت کمتری میگیره فک کنم

بازم ممنون از پاسخت

نصب مجدد وقت بیشتری میگیره. مگر اینکه برای انجام این تغییرات نیاز به سرچ و یادگیری زیادی داشته باشید.
البته لذت لینوکس به همینکارها و یادگرفتن همین چیزاست.

یه مساله درمورد swap.
اگه بشه کاری کنید که نیازی به swap نداشته باشید خیلی بهتره. به هر حال حتی اگه SSD هم باشه بازم swap خیلی کنده. اگه امکان ارتقاء رم هست یا مثلا کاری که رم کمتری مصرف کنه (با توجه به چیزی که رم زیادی میخواد مثلا سویچ از chrome به firefox) خیل یهتره. چون به هرحال swap کنده.

اصلا اینطوری‌ که شما‌ میگید‌ نیست و لازم نیست که حتما پارتیشن جدیدی بوجود بیاد،
خیلی راحت میشه swap file درست کرد و‌ mount کرد (چند ثانیه بیشتر وقت نمیگیره) که ‌این روش خیلی ساده و استاندارد بخصوص در سرور ها هست چون همیشه فکر میکنیم که اصلا ممکنه نیازی به swap نداشته باشیم‌ اما بعدا ممکنه به هر دلیلی از swap استفاده کنیم.
در ضمن ممکنه اصلا ندونیم که بعدا مثلا با تغییر در سایز رم یا مسائل دیگه به چقدر swap نیاز پیدا کنیم پس swap file اینجا هم کارمونو خیلی ساده میکنه چون‌ راحت میشه حذفش کرد و از نو ساخت.
پیشنهاد میکنم در مورد فعال کردن hibernation برای swap file هم‌ بررسی لازم رو انجام بدین اگر واقعا لازمه.

میخواستم کامند ها رو بذارم اما چون تنبلیم اومد گوگل کردم‌ و در لینک‌زیر کاملا توضیح داده اما اول ببینید که چقدر جا دارید برای swap
بعد

cc @mortezasabihi

لینک بالا رو دوباره چک کردم و بنظر همه چیز درست و روون میاد اما اگر چیزی سخت بنظر اومد همینجا اطلاع بده که دوستان یا خودم راهنمایی کنیم.

راستی اگر سرعت دیسک شما خیلی پایین باشه ممکنه swap یا هر نوع دیگه virtual memory باعث افت پرفرمنس کلی سیستم هم بشه :slight_smile:

در مورد swap در لینک زیر چیزای خوبی گفته شده اما چون کامل نخوندم نمیتوتم شخصا درست بودن یا نبودن همشو تایید کنم.

2 پسندیده

اصلا اینو نمیدونستم!
فکر میکردم فقط ویندوزه که از فایل استفاده میکنه.
ممنون بابت توضیحات و لینکها.