Saat komputer menyala, kernel dimuat ke memori sebelum tahu detail lengkap tentang disk kita: apakah root filesystem berada di partisi biasa, di dalam volume LVM, di array RAID, atau terenkripsi LUKS. Untuk menutup celah waktu itu, kernel memuat file kecil bernama initramfs — filesystem sementara di memori yang berisi driver dan skrip yang diperlukan untuk menemukan serta memasang root filesystem sungguhan. Pada Chapter ini kita bedah peran initramfs, isi di dalamnya, dan kapan file tersebut perlu dibuat ulang.

Masalah yang Dipecahkan initramfs #

Boot dengan initramfs berlangsung dalam dua babak. Babak pertama: bootloader memuat kernel dan arsip initramfs ke memori; kernel mengekstrak arsip tersebut menjadi filesystem root sementara berisi perangkat minimum. Babak kedua: skrip init di dalam initramfs memuat driver yang diperlukan — modul RAID, LVM, atau kripto — menemukan root filesystem, memasangnya, lalu menyerahkan kendali ke init sistem sungguhan (systemd) melalui mekanisme switch_root.

Babak pertama sering kita dengar disebut “early userspace”: lingkungan pengguna mini yang berjalan sebelum sistem operasi utama siap. Semakin rumit penyiapan root filesystem kita, semakin besar peran initramfs. Sebaliknya, instalasi sederhana dengan root di partisi ext4 biasa bisa memakai initramfs yang sangat ramping, bahkan beberapa distribusi sengaja menghindarinya.

Isi initramfs #

Arsip initramfs pada Debian tersimpan di /boot dengan nama yang diawali initrd.img- dan diakhiri versi kernel. Isinya dapat kita inspeksi tanpa membongkar boot sama sekali — perintah lsinitramfs mendaftar seluruh isi arsip. Karena isi arsip bawaan tiap sistem berbeda, contoh berikut membangun arsip mini kita sendiri di sandbox lalu mendaftarkan isinya:

bash
mkdir -p initrd-latihan/bin initrd-latihan/sbin
echo '#!/bin/sh
echo "early userspace aktif"
exec switch_root /sysroot /sbin/init' > initrd-latihan/init
chmod +x initrd-latihan/init
find initrd-latihan | sort

Output yang Dihasilkan:

text
initrd-latihan
initrd-latihan/bin
initrd-latihan/init
initrd-latihan/sbin

Struktur tersebut memperlihatkan bagian-bagian inti: direktori bin dan sbin untuk perkakas mini, serta skrip init sebagai titik masuk yang dijalankan kernel. Arsip sungguhan juga memuat modul kernel di usr/lib/modules/, konfigurasi di etc/, dan mount point sementara — totalnya belasan megabyte pada sistem tipikal. Penyatuan seluruh isi menjadi satu file initrd.img itulah yang membuat initramfs bisa dimuat ke memori sebelum disk dikenali.

Kapan initramfs Perlu Dibuat Ulang #

initramfs dibangun dari resep yang tergantung konfigurasi sistem saat itu. File menjadi usang ketika konfigurasi berubah di luar dugaan pembangunnya, dan gejalanya jelas: boot berhenti di pesan seperti Waiting for root device lalu jatuh ke initramfs shell — prompt sibuk initramfs: tempat kita bisa mendiagnosis dengan tangan kosong. Tiga pemicu yang paling sering:

Perubahan di sistemKenapa initramfs perlu diperbarui
Root berpindah ke LVM/RAID/RAIDmodul pendukung harus dimasukkan ke arsip
Enkripsi disk ditambahkanskrip unlock dan modul dmcrypt diperlukan
Kernel baru dipasangarsip baru dibangun per versi kernel

Di keluarga Debian, pembangunan ulang dilakukan dengan update-initramfs -u yang membuat ulang arsip untuk kernel aktif berdasarkan berkas konfigurasi di /etc/initramfs-tools/; Fedora memakai dracut dengan perintah dracut --force. Kedua alat menyimpan modul yang perlu dimuat berdasarkan konfigurasi mesin, sehingga praktik terbaiknya sederhana: jalankan pembangunan ulang setiap kali konfigurasi penyimpanan berubah, jangan menunggu boot gagal.

initramfs dalam Alur Boot Lengkap #

Merenungkan initramfs menuntaskan gambaran boot yang kita bangun sejak Chapter Boot Process: firmware menyerahkan ke bootloader, bootloader memuat kernel plus initramfs, kernel menyiapkan early userspace, initramfs memasang root sungguhan, dan systemd mengambil alih sebagai PID 1. Setiap tahap kini punya wajah yang kita kenali. Ketika salah satu tahap itu bermasalah, diagnosa menunjuk ke alat yang tepat: GRUB untuk tahap pemuatan, dan initramfs untuk tahap penggantian root — kerangka yang akan kita pakai pada Chapter System Recovery.

Dengan boot yang kini terpetakan penuh, kita beralih dari dalam ke luar: cara meminta Linux memperkenalkan dirinya sendiri — versi, distribusi, dan identitas sistem — lewat perintah-perintah informasi sistem.