Mulai April 2020, bandithijo.com akan menggunakan GitHub subdomain menjadi bandithijo.github.io. Penggunaan domain .com tidak sejalan dengan cara pandang saya terhadap sebuah blog, dimana blog harus bisa tetap hidup tanpa saya. Terima kasih (^_^) (bandithijo, 2020/03/25) ●

Mengkonfigurasi Fitur Hibernasi pada Arch Linux

Ditulis: 2020/06/22
Arch Linux Tips

بسم الله الرحمن الرحيم

Pendahuluan

Fitur hibernasi (hybernation) tidak secara otomatis akan aktif apabila kita beru memasang Arch Linux. Kita perlu untuk melakukan konfigurasi terlebih dahulu agar fitur hibernasi dapat kita nikmati.

Susah ndak, Bang?

Kagak, Bro. Mudah banget.

Konfigurasi

Membuat Swap Space

Ada beberapa metode dalam membuat swap space, seperti swap partition, swapfile. Silahkan merujuk ke Arch Wiki untuk membaca lebih lanjut. Pada post kali ini saya akan mendemonstrasikan menggunakan swapfile.

Membuat Swapfile

Saya menggunakan Swapfile pada filesystem ext4. Untuk teman-teman yang menggunakan filesystem yang lain seperti BTRFS atau yang lainnya, saya sarankan untuk melakukan eksplorasi lebih jauh.

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

Saya mendefinisikan Swapfile sebesar 2048M atau 2G. Kapasitas RAM saya sebesar 4G.

Besar dari Swapfile, tergantung dari kebutuhan teman-teman.

Perintah di atas akan membuat Swapfile /swapfile pada root direktori.

Merubah permission dari swapfile

Swap space dapat menjadi lubang keamanan yang besar pada sistem kita, karena itu kita perlu menutup segala macam akses selain root.

$ sudo chmod 600 /swapfile

Format Swapfile

Sebelum dapat digunakan, kita perlu memformat /swapfile menjadi berformat swap.

$ sudo mkswap /swapfile

Mengaktifkan Swapfile

Setelah semua langkah di atas sudah dilakukan, Swapfile tidak langsung aktif. Selaaknya swap partition, kita perlu mengaktifkannya terlebih dahulu.

$ sudo swapon /swapfile

Tambahkan Swapfile pada /etc/fstab

Agar Swapfile sudah enable otomatis saat sistem startup, kita perlu menambahkan pada /etc/fstab.

# /etc/fstab

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda1
UUID=00000000-0000  /     ext4  rw,noatime   0 1

# Swapfile
/swapfile           none  swap  defaults     0 0

Edit Kernel Module

Kita perlu menambahkan resume dan resume_offset. Karena saya menggunakan Grub, maka saya akan menambahkan pada file /etc/default/grub.

# GRUB boot loader configuration

GRUB_DEFAULT=saved
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 resume=/dev/sda1 resume_offset=7049216"
GRUB_CMDLINE_LINUX=""

Perhatikan bagian yang saya marking.

resume=/dev/sda1 adalah blok dimana terdapat file /swapfile.

resume_offset=7049216 didapatkan dengan cara menjalankan perintah di bawah.

$ sudo filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 2147483648 (524288 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..    2047:    7049216..   7051263:   2048:
   1:     2048..    6143:    7045120..   7049215:   4096:    7051264:
   2:     6144..  284671:    7061504..   7340031: 278528:    7049216:
   3:   284672..  409599:    7372800..   7497727: 124928:    7340032:
   ---------------------------- dipotong ---------------------------
   8:   516096..  518143:    7680000..   7682047:   2048:    7675904:
   9:   518144..  524287:    7684096..   7690239:   6144:    7682048: last,eof
/swapfile: 10 extents found

Ambil value pertama dari physical_offset.

Karena kita baru saja mengedit dan menambahkan module, kita perlu mengupdate Grub.

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

Edit mkinitcpio

Kita perlu menambahkan resume hook pada startup hook di mkinitcpio. Hal ini akan memastikan sistem dapat kembali dari proses hibernasi.

Edit file /etc/mkinitcpio.conf dan cari baris berawalan HOOKS="base ... ".

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
...
...
HOOKS=(base systemd resume autodetect modconf block filesystems keyboard fsck)

Saya mengganti udev hook dengan systemd hook. Jadi jangan binggung. Tambahkan saja setelah udev atau systemd – sebelum utodetect hook.

Setelah kita memodifikasi mkinitcpio, kita perlu mengenerate ulang kembali.

$ sudo mkinitcpio -p linux

linux sesuaikan dengan image kernel yang teman-teman pergunakan. Misalkan menggunakan kernel linux-lts maka gunakan -p linux-lts.

Selesai.

Demonstrasi Hasil

Referensi

  1. wiki.archlinux.org/index.php/Swap
    Diakses tanggal: 2020/06/22

  2. All about Linux swap space
    Diakses tanggal: 2020/06/22

  3. Archlinux enabling hibernation
    Diakses tanggal: 2020/06/22

Penulis

bandithijo

BanditHijo adalah nama pena saya – meminjam istilah keren dari para penulis. Teman-teman menyebut saya sebagai GNU/Linux Enthusiast. Saya memang gemar mengutak-atik sistem operasi ini. Bukan karena hobi tapi karena saya perlu untuk menggunakannya. Hehe.

- Rizqi Nur Assyaufi

Berlangganan via Email

Jangan sampai ketinggalan kabar dan info terbaru mengenai BanditHijo (R)-Chive.
Ayo bergabung!

28dc03c11c68cf4aadee6d17e41ef5d4cac75aea