Seperti yang Anda nyatakan, tujuan initramfs adalah untuk mendapatkan filesystem root yang "asli" terpasang (ia dapat melakukan hal-hal lain juga, tetapi ini adalah tugas umum).
Tanpa initramfs, kernel biasanya akan me-mount sebuah partisi sebagai hanya-baca dan kemudian meneruskan kontrol ke /sbin/init
. Initramfs hanya mengambil alih tugas ini dari kernel, biasanya ketika sistem file root bukan partisi normal (mdraid, lvm, terenkripsi, dll).
Sekarang, selain dari latar belakang initramfs, Anda /etc/fstab
berada di sistem file root Anda. Dengan demikian, ketika initramfs diluncurkan, sistem file root itu tidak ada, sehingga tidak bisa sampai ke fstab (masalah ayam dan telur).
Sebagai gantinya kita harus melewatkan parameter ke argumen boot kernel agar initramfs dapat digunakan. Biasanya ini seperti sesuatu root=/dev/sdX
. Namun mungkin juga melakukan sesuatu untuk mengetahui secara otomatis di mana perangkat root Anda, dan jadi tidak ada parameter sama sekali. Karena ini hanya perangkat lunak (umumnya skrip), ia benar-benar dapat melakukan apa pun yang diinginkan untuk memasang perangkat root.
Sekarang, seperti yang dinyatakan sebelumnya, kernel akan me-mount root sebenarnya sebagai read-only. Initramfs seharusnya melakukan ini dengan tepat. Setelah initramf selesai, sistem melanjutkan proses booting seolah-olah tidak ada initram sama sekali, dan /sbin/init
dimulai. Init ini kemudian memulai semua skrip boot normal Anda, dan merupakan tugas salah satu skrip ini untuk membaca /etc/fstab
, beralih root menjadi read-write, dan mount semua sistem file Anda yang lain.