Nomor-nomor utama perangkat root disimpan dalam kernel image (lihat halaman manual rdev
untuk informasi lebih lanjut).
Namun, argumen baris perintah kernel TIDAK ditafsirkan oleh kernel. Ramdisk awal, initrd, berisi sistem file dengan linux minimal yang biasanya melakukan bagian interpreting. Bagaimana initrd bekerja tergantung pada distribusi Anda. Ini mungkin hanya berisi simpul / dev / sda1 atau beberapa skrip / program yang membuatnya saat runtime.
Jika Anda menggunakan Linux berbasis Debian Anda dapat membongkar ramdisk Anda seperti ini:
mkdir /tmp/initrd
cd /tmp/initrd
zcat /boot/path/to/initrd | cpio -iv
Initr debian adalah skrip dan Anda dapat melihat cara kerjanya. Setelah kernel membongkar initrd, ia meluncurkan skrip init
yang sekarang harus Anda temukan /tmp/initrd
. Perhatikan blok di mana dikatakan for x in $(cat /proc/cmdline); do
.
Dalam /proc/cmdline
adalah argumen berlalu menggunakan Grub (Anda dapat memeriksa / memverifikasi bahwa sekarang dengan shell Anda!). Jika Anda ingin menyelam lebih dalam ke initrd Debian, Anda akan mencatat bahwa Anda dapat membuat kernel / initrd Anda menggunakan share NFS sebagai sistem file root dengan meneruskan opsi root=/dev/nfs
dengan Grub. Ketika Anda melakukannya, tidak ada simpul /dev/nfs
yang dibuat atau dipasang. Itu hanya memberitahu initrd apa yang harus dilakukan.
Pada akhirnya setiap initrd akan menjalankan perintah yang disediakan oleh beberapa opsi seperti init=
atau default/sbin/init
Kembali ke pertanyaan awal Anda di tajuk utama: yes / init (kemungkinan besar) membuat simpul itu pada saat runtime. Ia menggunakan semua jenis program / heuristik / voodoo untuk mengetahui cara me-mount sistem file root Anda.
/init
, itu akan mengurairoot=
parameter. Referensi: landley.net/writing/rootfs-howto.html