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.
| Mode | Keadaan ACPI | Menyimpan state di | Kecepatan resume | Daya saat tidur |
|---|---|---|---|---|
| Suspend | S3 | RAM | 1–3 detik | kecil, baterai terkikis |
| Hibernate | S4 | swap di disk | belasan detik | nol, seperti mati |
| Hybrid | S3+S4 | RAM dan swap | cepat; dari disk bila listrik habis | kecil 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:
freeze mem diskSatu 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:
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"; doneOutput yang Dihasilkan:
freeze mem disk
mode mem: didukung kernel
mode disk: didukung kernel- Baris 1: salinan isi
/sys/power/statemenjadi file kerja — di mesin sungguhan cukup baca file aslinya. - Baris 2: isi salinan ditampilkan sebagai pembanding.
- Baris 3: untuk tiap mode,
grep -qwmencocokkan kata utuh;standbytidak tercantum sehingga barisnya tidak dicetak, sementaramemdandisklolos.
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:
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 4Output yang Dihasilkan:
RAM 8 GB, swap 8 GB: hibernate aman dicoba
RAM 8 GB, swap 4 GB: perbesar swap dulu- Baris 1–3: fungsi
cek_swapmenerima pasangan RAM dan swap (baris 2), lalu membandingkan keduanya dengan-ge(baris 3). - 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.