Menutup lid laptop lalu membukanya lagi lima menit kemudian semestinya mulus: layar menyala dan semua aplikasi masih berdiri di posisi terakhir. Di balik itu, kernel memindahkan keadaan mesin ke tempat yang tetap diberi daya, atau menuliskannya ke disk lalu mematikan mesin sungguhan. Dua strategi itu bernama suspend dan hibernate, bertarik-ulur klasik antara kecepatan bangun dan hemat energi. Chapter ini membedah keduanya plus mode campurannya, syarat teknis yang membuat hibernate gagal, dan cara menghadapi resume yang tidak mulus.

Tiga Kondisi Sleep: Suspend, Hibernate, dan Hybrid #

Standard ACPI memberi nama pada kondisi daya mesin: S0 menyala penuh, S1–S3 berbagai kedalaman tidur, S4 hibernate, S5 mati. Suspend (S3, suspend-to-RAM) mematikan hampir seluruh komponen kecuali RAM yang terus diberi daya refresh — bangunnya hanya 1–3 detik, tetapi baterai terkikis pelan. Hibernate (S4, suspend-to-disk) menuliskan seluruh isi RAM ke swap sebagai image lalu mematikan mesin total — daya nol dan cocok untuk semalaman, tetapi bangunnya lebih lambat. Hybrid memadukan keduanya: image ditulis dulu, mesin lalu suspend; bila baterai habis, mesin bangun dari disk.

ModeKeadaan ACPIMenyimpan state diKecepatan resumeDaya saat tidur
SuspendS3RAM1–3 detikkecil, baterai terkikis
HibernateS4swap di diskbelasan detiknol, seperti mati
HybridS3+S4RAM dan swapcepat; dari disk bila listrik habiskecil dengan jaring pengaman

Kernel Menawarkan Mode lewat /sys/power/state #

Mode sleep yang tersedia bergantung pada arsitektur dan driver, dan kernel memaparkan dukungannya lewat file /sys/power/state. Berikut contoh tampilan isi file itu pada laptop dengan dukungan penuh:

text
freeze mem disk

Satu baris itu berisi tiga kata kunci: freeze adalah mode idle ringan (s2idle) tanpa kehilangan konteks, mem adalah tidur dalam (S3), dan disk adalah hibernate (S4). Memicu tidur secara manual dilakukan root dengan menulis kata kunci ke file tersebut, misalnya echo mem | sudo tee /sys/power/state; systemd membungkus aksi ini menjadi systemctl suspend dan systemctl hibernate yang dijalankan systemd-suspend.service , layanan yang sama di balik layar keduanya. Memeriksa dukungan mode adalah pola yang berulang — cocokkan kebutuhan dengan isi file. Berikut simulasinya memakai salinan isi file yang sama:

bash
printf 'freeze mem disk\n' > state.txt
cat state.txt
for mode in standby mem disk; do grep -qw "$mode" state.txt && echo "mode $mode: didukung kernel"; done

Output yang Dihasilkan:

text
freeze mem disk
mode mem: didukung kernel
mode disk: didukung kernel
  1. Baris 1: salinan isi /sys/power/state menjadi file kerja — di mesin sungguhan cukup baca file aslinya.
  2. Baris 2: isi salinan ditampilkan sebagai pembanding.
  3. Baris 3: untuk tiap mode, grep -qw mencocokkan kata utuh; standby tidak tercantum sehingga barisnya tidak dicetak, sementara mem dan disk lolos.

Syarat Keras Hibernate: Swap Sebesar Isi RAM #

Kernel menulis image sebesar memori yang terpakai ke partisi atau file swap; bila swap tidak cukup, hibernate gagal sebelum dimulai. Praktik amannya sederhana: ukuran swap minimal setara RAM fisik. Pemeriksaan di mesin sungguhan memakai free -h atau swapon --show, lalu bandingkan dua angkanya — logikanya bisa kita latih dengan nilai contoh:

bash
cek_swap() {
  ram_gb=$1; swap_gb=$2
  if [ "$swap_gb" -ge "$ram_gb" ]; then
    echo "RAM ${ram_gb} GB, swap ${swap_gb} GB: hibernate aman dicoba"
  else
    echo "RAM ${ram_gb} GB, swap ${swap_gb} GB: perbesar swap dulu"
  fi
}
cek_swap 8 8
cek_swap 8 4

Output yang Dihasilkan:

text
RAM 8 GB, swap 8 GB: hibernate aman dicoba
RAM 8 GB, swap 4 GB: perbesar swap dulu
  1. Baris 1–3: fungsi cek_swap menerima pasangan RAM dan swap (baris 2), lalu membandingkan keduanya dengan -ge (baris 3).
  2. Baris 4 dan 6: dua cabang vonis — swap 8 GB cukup untuk RAM 8 GB, sedangkan swap 4 GB harus diperbesar dulu.

Agar kernel menemukan image saat boot, partisi swap ditunjuk parameter kernel resume= (plus resume_offset bila memakai swap file) pada konfigurasi GRUB dari Chapter Bootloader dan GRUB . Ukuran dan jenis swap dibedah tuntas di Chapter Swap Space .

Resume dan Penyakit yang Mengikutinya #

Resume berarti kernel membaca image dari swap lalu memulihkan seluruh proses ke titik saat mesin tertidur. Mayoritas masalahnya berasal dari driver yang tidak bangun dengan sehat: GPU membuat layar gelap atau berkedip, WiFi harus dimatikan-naikkan ulang, hingga keyboard buntu. Pertolongan pertamanya bertingkat: periksa log boot sebelumnya dengan journalctl -b -1 (pembacaan log sudah kita latih di Chapter Logs dan Log Rotation ), lalu perbarui kernel dan driver bila vendor sudah memperbaiki kasusnya. Daftar mode dan parameternya dirinci kernel di Sleep States , dan resep per-masalah dirangkum wiki Suspend and hibernate .

Tidur yang gagal resume biasanya masih bisa dipaksa mati dan dinyalakan kembali. Ada skenario lebih buruk: sistem yang menolak hidup sama sekali — dan di sanalah keterampilan pemulihan sistem diuji, materi pamungkas section ini.