hibernation

August 26, 2017

یکی از اساسی ترین نیاز‌های من نیاز به Hibernate است. لپتاپ من همیشه و همه جا در کنار من هست و گاها نیاز است که کار را ناتمام متوقف کنم. در این موارد ترجیح می‌دهم لپتاپ را hibernate کنم و به همین دلیل اینجا سعی می‌کنم هایبرینیت را فعال کنم.

گام اول، پارامتر کرنل

در هنگام بوت شدن کرنل باید بداند در کدام پارتیشن به دنبال اطلاعات hibernate بگردد. بدین منظور یک پارامتر resume به پارامتر‌های grub اضافه می‌کنم.

ابتدا با دستور lsblk --fs مقدار uuid پارتیشن swap خود را پیدا می‌کنم و سپس در فایل تنظیمات‌ /boot/grub/grub.cfg به دنبال خطی که دستور linux دارد می‌گردم. سپس در انتها عبارت زیر را اضافه می‌کنم:

resume=UUID=<UUID>

سپس باید به initramfs یک Hook برای resume اضافه کنم. بدین منظور فایل /etc/mkinitcpio.conf را باز می‌کنم و بعد از udev و قبل از autodetect مقدار resume را اضافه می‌کنم. سپس دستور زیر را اجرا می‌کنم تا image دوباره ساخته شود:

sudo mkinitcpio -g /boot/initramfs-linux.img 

حال باید بتوانم با systemctl hibernate سیستم را هایبرنیت کنم.