Posts Tagged ‘boot process’

Boot Process di Linux

November 14, 2008

Gara – gara technical test kemaren, gw jadi ngeh klo ternyata gw masih belum mudeng urut – urutan process booting system linux.

Walhasil pas tes troubleshooting, ga kepikiran kenapa nih system baru booting trus langsung reboot lagi, reboot lagi terus – terusan. Akhirnya setelah dikasih clue, baru nyadar gw klo dia nambahin init 6 di rc.localnya.

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
init 6

Aarrgh!!.. Ya iya lah (masa ya iya dong) pantesan dia langsung reboot lagi. Hiiks, asli ga kepikiran sama sekali gw dia nambahin itu disitu. Tapi hmmn, jadi kepikiran buat ngerjain mesin linux anak2. Hehee..

Gw juga gagap waktu ditanya apa aja urut – urutan proses booting dilinux, script apa aja yang dijalanin, de el el, bla bla blaah..

Penasaran dong gw, akhirnya setelah googling sana – sini berikut yang gw tangkep tentang boot process dilinux. Dengan memahami boot process, diharapkan kita akan dapat mensolve masalah – masalah yang muncul berkaitan dengan booting system.

1. Ketika starts up, kernel akan memanggil program init. Kemudian init akan menjalankan script /etc/rc.d/rc.sysinit.

2. Script /etc/rc.d/rc.sysinit akan menjalankan berbagai macam task, seperti configuring network, setting up default keymapping, starting up swapping, dan setting hostname. Silahkan liat sendiri isi dari script /etc/rc.d/rc.sysinit.

3. Kemudian init akan melihat default runlevel apa yang akan dijalankan dengan mengacu pada /etc/inittab. Berikut runlevel yang terdapat disystem linux:

0: Halt
1: Single user mode, maintenance (clean bacups/restores), repairs.
2: Multiuser, without NFS
3: Multiuser mode (standard text mode login assumed)
4: Unused
5: X11 (standard X mode login as well as text mode login)
6: Reboot

4. Setelah tau runlevel yang akan dijalankan, misalnya entry pada inittab adalah: id:5:initdefault:
Maka init kemudian akan menjalankan script yang terdapat pada folder /etc/rc.d/rc5.d yang artinya akan menjalankan service – service mana saja yang harus dijalankan pada runlevel 5. Bila default runlevel pada inittab adalah init 3, maka init akan menjalankan script pada folder /etc/rc.d/rc.3.

Bila kita lihat isi dari folder /etc/rc.d/ terdapat folder – folder: rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d, yang berarti menunjukkan jumlah runlevel yang ada.

5. Nama file script dalam folder rc{1,2,3,4,5,6}.d diawali dengan huruf K dan S. K untuk kill dan S untuk start. Jadi bila nama filenya S55sshd maka script tersebut akan menstart service sshd
Sebelumnya, bila kita ls -l pada folder rc{1,2,3,4,5,6}.d tersebut, semuanya merupakan symbolic links kefile – file yang terdapat pada /etc/rc.d/init.d/
Jadi, semua script service dikumpulkan pada /etc/rc.d/init.d/ dan yang terdapat didalam folder rc{1,2,3,4,5,6}.d hanyalah symbolic links.

6. Angka 55 setelah huruf S pada S55sshd menunjukkan urutan script yang dijalankan lebih dulu. Jadi S55sshd lebih dulu dijalankan dari S99local.

7. Bila kita lihat pada setiap folder rc{1,2,3,4,5,6}.d maka script S99local hanya terdapat pada folder rc{3,4,5}.d jadi hanya runlevel 3,4 dan 5 saja yang akan menjalankan script rc.local (S99local adalah symbolic links ke /etc/rc.d/rc.local).

Well, akhirnya sekarang gw tau bagaimana urut – urutan boot process dilinux. Sebagai catatan, boot process diatas adalah yang gw lihat diredhat linux. Distro lain bisa berbeda posisi folder dan scriptnya berada. Tapi kurang lebih sama urut – urutan boot processnya.

Tapi sayangnya, technical testnya udah ga bisa diulang lagi. Jadi, yah minimal lain kali klo gw ada panggilan buat interview dan technical test ditempat lain gw ga gagap lagi klo ditanya tentang boot process dilinux.

Doain gw yaah..

Advertisements