Praktikum10
Linux Booting Process
POKOK BAHASAN:
- Linux Booting Process
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:- Mengetahui inisialisasi booting proses pada sistem operasi Linux- Melakukan perubahan inisia lisasi booting proses
DASAR TEORI:
1 PC BOOT DAN LINUX INIT
PROCESS
Pada praktikum ini membahas PC boot process dan inisialisasi sistem operasiLinux pada aplikasi background (daemons/service).1. BIOS : Basic Input/Output System adalah antar muka level terendah antarakomputer dan peripheral. Bios melakukan pemeriksaan pada memori dan mencariinstruksi pada Master Boot Record (MBR) pada floppy atau hard drive.2. MBR menunjuk ke boot loader (LILO : Linux boot loader)3. LILO akan menanyakan label sistem operasi yang akan mengidentifikasi kernelyang dijalankan. Kernel akan menjalankan sistem operasi Linux.4. Yang pertama kali dikerjakan oleh kernel adalah menjalankan program init. Initadalah root/parent dari semua proses yang dijalankan pada Linux5. Proses per tama yang memulai init adalah skrip /etc/rc.d/rc/sysinit.6. Berdasarkan run-level yang ditentukan, skrip dieksekusi untuk memulai prosestertentu untuk menjalankan sistem dan membuat sistem lebih fungsional.
2. LINUX INIT PROCESS
Proses init adalah langkah terakhir pada prosedur boot dan diidentifikasi sebagaiprocess ide “1”. Init bertanggung-jawab untuk memulai proses sistem seperti yangditentukan pada file /etc/inittab. Init biasanya memulai “getty” yang menunggulayar login yang menandakan proses shell seorang user. Pada saat shutdown, initmengontrol urutan dan proses untu shutdown. Proses init tidak pernah shut down.Proses init merupakan proses user dan bukan proses sistem kernel meskipun dijalankansebagai root.Proses sistem :Process ID Description0 The Scheduler1 The init process2 kflushd3 kupdate4 kpiod5 kswapd6 mdrecoveryd
3. PROSEDUR BOOT
Linux mempunyai 6 state operasi dimana “0” adalah shutdown state dan “3”keatas adalah operasional penuh dengan semua proses yang esensial dijalankan untukinteraksi user. Berdasarkan sistem boot, Linux sistem akan melakukan :· Mengeksekusi program /sbin/init yang memulai semua proses-proses lain.Program ini akan diberikan ke mesin oleh proses awal yang didefinisikan pada file/etc/inittab· Komputer akan di-booting ke runlevel yang didefinisikan oleh baris initdefaultpada file /etc/inittab.id:5:initdefault:Pada contoh diatas, runlevel ”5” dipilih. Runlevel “5” akan melakukan bootingsistem pada mode GUI menggunakan XDM dan X-Windows. Booting ke runlevel”3” (biasanya disebut mode console) biasanya digunakan oleh server yang tidakmemerlukan GUI.File inittab mengijinkan menggunakan kunci (Ctrl-Alt-Del), memulai dial kekoneksi internet dll.· Satu dari proses-proses yang dimulai oleh init adalah /sbin/rc. Skrip inimenjalankan sekumpulan skrip pada direktory /etc/rc.d/rc0.d/,/etc/rc.d/rc1.d, /etc/rc.d/rc2.d dan seterusnya.· Skrip pada direktory tersebut dieksekusi pada setiap boot state dari oeprasi sampaimenjadi operasi yang lengkap. Skrip mulai dengan S yang merupakan skrip startupsedangkan skrip yang dimulai dengan K menandakan skrip shutdown (kill). Angkayang mengikuti huruf tersebut merupakan urutan eksekusi (terendah ke tertinggi)Jika Anda menginstall semua daemons (proses background), Linux akanmenjalankan semua , menyebabkan mesin lebih lambar. Kita bisa memulai (start) /menghentikan (stop) daemon secara individual dengan mengubah direktory :/etc/rc.d/init.d (Redhat)dan diikuti perintah pilihan start, stop, status, restart atau reload, misalnya untuk stopweb server :cd /etc/rc.d/init.dhttpd stopGunakan perintah ps –aux untuk melihat semua proses pada mesin Anda.
4. LINUX RUN LEVEL
Runlevel “3” akan booting dalam mode teks atau console dan “5” akan bootingdalam mode graphical login.State pada Runlevel / Halt :0 shutdown (Do NOT set initdefault to this)1 Single user mode2 Multiuser, without NFS (The same as 3, if you do not have networking)3 Default text start. Full multiuser4 unused5 X116 Reboot (Do NOT set initdefault to this)Anda bila melakukan perpindahan level init dengan menggunakan perintah initdengan runlevel tertentu. Gunakan perintah ”init#” dimana # adalah satu dari 0, 1, 3,5, 6. Dapat juga menggunakan perintah telinit.Skrip untuk run level yang diberikan dijalankan selama boot dan shutdown.Skrip ditemukan pada direktory /etc/rc.d/rc#.d/ dimana simbol # menandakanrun level, misalnya run level ”3” akan menjalankan semua skrip pada direktory/etc/rc.d/rc3.d/ yang dimulai dengan huruf ”S” selama sistem boot. Skrip iniakan menjalankan proses background yang dibutuhkan oleh sistem. Pada saat shutdownsemua skrip pada direktory yang dimulai dengan huruf ”K” akan dieksekusi. Sistem inimenyediakan urutan sistem ke state yang berbeda untuk mode produksi danmaintenance.TIP : Daftar state dan run level dari semua service dimulai oleh ini : chkconfig –listGUI tool : /usr/X11R6/bin/tksysv
5. AKTIVASI SKRIP INIT
Menambah suatu skrip ke direktory /etc/rc.d/rc#.d/ baik prefik S atau K,menambah skrip ke proses boot atau shutdown. Skrip berjalan dengan urutan numerik.S20abc dijalankan sebelum S30xyz. Keberadaan prosedur boot dan shutdown inimerupakan kekuatan sistem operasi UNIX. Inisialisasi proses dengan urutan tertentudapat dikoordinasikan untuk proses dependent. Shutdown dari proses biasanyadibutuhkan untuk program yang kompleks misalnya database. Proses individualdapatkemunginan dimonitore, shutdown dan start pada sembarang waktu menggunakanskrip tersebut. Misalnya /etc/rc.d/rc2.d/httpd start. Mofidikasi start, stopatau status kemungkinan digunakan.Skrip start / stop /status berada pada direktory /etc/rc.d/init.d/ adalahsuatu link ke direktory sebenarnya. Link tersebut kemungkinan dibuat atau dihapusmenggunakan perintah chkconfig, misalnya chkconfig –del httpd akanmenghapus web server dari proses startup dan shutdown. Sebaliknnya chkconfig –add httpd akan menambahke ke proses startup/shutdown dengan membangkitkanlink dari skrip pada /etc/rc.d/init.d/ ke direktory /etc/rc.d/rc#.d/ yangsebenarnya. Untuk informasi lebih lanjut gunakan halaman manual LINUX untuk init.Pada Red Hat 9.0, GUI tool /usr/bin/redhat-config-services dapat membantuuntuk mengkonfigurasi service untuk start dan menyediakan deskripsi untuk setiapservice yang tersedia. Service dasar meliputi :
Sistem
Service Deskripsi
anacron Run jobs which were scheduled for execution while computer wasturned off. Catch up with system duties.arpwatch Keeps track of IP address to MAC address pairingsatd Run scheduled batch jobs.autofs automounts file systems on demand.crond Job sheduler for periodic tasksgpm Allows console terminal cut and paste. (Non X-window consoles)https Apache web server.iptables Firewall rules interface to kernelkeytable Loads se lected keyboard map as set in /etc/sysconfig/keyboardkudzu New harware probe/detection during system boot.lpd Network printer servicesmicrocode_ctl Uploads microcode to kernel and ultimately to the Intle Pentiumprocessor. (Hardware specific.)mysqld Database servicesnamed DNS name services (Bind)network Active network services during system boot.nfs Network file system. Unix file sharing services.nscd Password and group lookup services for use with networkauthentication (NIS, LDAP,...).ntpd Network Time Protocol time synchronization services.random Random number generation tool used for encryprionrawdevices Enables raw IO. Useful for Oracle and software which utilizes thisfor high speed disk access.smb SAMBA: MS/Windows PC file s haring servicessyslog System log file facility.ypbind NIS file sharing/authentication infrastructure service.yppasswd NIS file sharing/authentication infrastructure service.xfs X-Windows font server.Service utama yang direkomendasikan adalah : anacron, ard, autofs,crond, gpm, iptables, keytable, kudzu, microcode_ctl (Intel32hardware only), network, random. syslogGraphics Workstation - add: xfsFile Server for PC clients - add: smbPrint Server - add: lpd ataucupsFile server Linux/Unix clients - add: nfs, netfs, nfslock, portmap, ypbind,yppasswd, ypservWeb Server - add: httpd, tux, xinetdi, sshd6. SKRIP INITSkrip init berada pada direktory /etc/rc.d/script-name. Gunakanperintah chkconfig untuk membangkitkan soft link ke direktory yang sebenarnyauntuk beberapa run level.#!/bin/sh## Startup script for program## chkconfig: 345 85 15 - This statement tells the chkconfigcommand how to add or delete this process to the boot process# description: Description of program# processname: process-name# pidfile: /var/run/process-name.pid# Source function library. This creates the operatingenvironment for the process to be started. /etc/rc.d/init.d/functionscase "$1" instart)echo -n "Starting process-name: "daemon process-name -Starts only one process of agiven name.echotouch /var/lock/subsys/process-name;;stop)echo -n "Shutting down process-name: "killproc process-nameechorm -f /var/lock/subsys/process-namerm -f /var/run/process-name.pid - Only if processgenerates this file;;status)status process-name;;restart)$0 stop$0 start;;reload)echo -n "Reloading process-name: "killproc process-name -HUPecho;;*)echo "Usage: $0 {start|stop|restart|reload|status}"exit 1esacexit 0Fungsi skrip bash daemon, killproc dan status dapat ditemukan dalamskrip /etc/rc.d/functions.Skrip harus dieksekusi untuk menjalankannya (chmod +x script-name)Misalnya skrip digunakan untuk memulai dan menghentikan proses seperti/etc/rc.d/init.d/httpd restart/etc/rc.d/init.d/httpd stop/etc/rc.d/init.d/httpd startatau menggunakan perintah service :service httpd restartservice httpd stopservice httpd startDua baris dalam skrip yang memungkinkan perintah chkconfig mengontrolskrip untuk proses boot dan shutdown adalah# chkconfig: 345 85 15# description: Description of programBila menambahkan ke proses booting menggunakan perintah "chkconfig --add script-name" awal order/priority akan diset 80 sedangkan stop/shutdown diset15. Proses akan ditambahkan ke runlevel 3, 4, dan 5. Hal ini dapat dilakukan denganmembangkitkan link dari lokasi skrip (/etc/rc.d/init.d/) ke direktori run level :/etc/rc.d/rc#.d/. Nama file dalam direktory run level akan menunjukkan apa yangdigunakan untuk boot (mulai dengan “S”) atau shutdown (mulai dengan “K”).7. CHKCONFIGPerintah chkconfig membangkitkan dan memutuskan link antara direktori/etc/rc.d/init.d/ dan direktori run level /etc/rc.d/rc[0-6].d/ untukmengontrol inisialisasi proses boot dan proses shutdown.chkconfig [--level <levels>] <name> on | off | reset >chkconfig --listchkconfig --listchkconfig --add <name>chkconfig --del <name>chkconfig --level 0123456 <name> offContoh :chkconfig --level 345 httpd on- apache diberikan 3, 4 dan 5.chkconfig --add httpd- memulai web server daemon pada system boot.chkconfig --del sendmail- Tidak memulai sendmail daemon pada system boot.chkconfig --list ]- Daftar semua servis dan level init.chkconfig --list | grep on- Daftar semua service yang dimulai pada sistem boot
TUGAS PENDAHULUAN:
Sebagai tugas pendahuluan, jawablah pertanyaan-pertanyaan berikut ini :1. Sebutkan inisialisasi proses apa saja yang dilakukan oleh sistem operasi Linux padasaat booting2. Apa yang dilakukan sistem operasi Linux pada saat booting ?3. Apakah isi dari file /etc/inittab. Sebutkan siste m proses yang dapatdimasukkan pada variabel initdefault dan jelaskan maksudnya.4. Apa yang dimaksud dengan run level pada linux ? Sebutkan perbedaan file pada/etc/rc.d/rc#.d/ yang menggunakan awalan ”S” dan awalan ”K”.5. Apa yang dimaksud dengan perintah service dan chkconfig ?
PERCOBAAN:
1. Login sebagai root.2. Bukalah Console Terminal dan lakukan percobaan-percobaan di bawah inikemudian analisa hasil percobaan.3. Selesaikan soal-soal latihan.PRAKTIKUM 10 LINUX BOOTING PROCESS 135Percobaan 1 : Linux INIT ProcessPercobaan 2 : Menentukan default boot runlevel1. Default boot runlevel pada file /etc/inittab diset dengan menggunakanvariabel initdefault. Jika diset "3", sistem boot menggunakan antar mukateks pada console VGA; jika diset "5", menggunakan GUI.2. Hapus baris initdefault yang tidak diperlukan pada file /etc/inittab.Buatlah bari baru untuk set sistem boot menggunakan console VGA / teks# vi /etc/inittab1. Program /sbin/init akan dijalankan pada saat booting. Eksekusi programini berdasarkan file /etc/inittab. Lihatlah isi file /etc/inittab danperhatikan mode default runlevel pada baris initdefault# cat /etc/inittab2. Berdasarkan runlevel yang dipilih, proses init kemudian mengeksekusi skripstartup yang berada pada sub direktory /etc/rc.d. Skrip yang digunakanuntuk runlevel 0 sampai dengan 6 berada pada sub direktory/etc/rc.d/rc0.d sampai /etc/rc.d/rc6.d.# ls -l /etc/rc.d3. Setiap nama file pada direktori misalnya /etc/rc.d/rc5.d dimulai denganhuruf “S” merupakan skrip startup sedangkan skrip yang dimulai dengan huruf“K” merupakan skrip shutdown. Angka yang mengikuti "K" atau "S"menandakan urutan skrip yang dijalankan. Contohnya ”kudzu” denga n nilai”05” dijalankan sebelum ”wlan” dengan nilai ”09”# ls /etc/rc.d/rc5.dPercobaan 3 : Menggunakan Console GUI# Default runlevel. The runlevels used by RHS are:# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, without NFS (The same as 3, if you do nothave networking)# 3 - Full multiuser mode# 4 - unused# 5 - X11# 6 - reboot (Do NOT set initdefault to this)#id:3:initdefault: # Console Text Mode#id:5:initdefault: # Console GUI Mode3. Setelah dilakukan perubahan variabel initdefault, lakukan reboot.Perhatikan apakah masuk ke mode teks# reboot4. Lakukan perubahan kembali dari 3 ke 5 dan lakukan reboot sistem. Ingat,jangan melakukan setting ke 6 karena sistem akan reboot terus-menerus.Sedangkan setting 0 maka sistem tidak pernah dimulai.1. Kita dapat masuk ke console GUI jika sistem berada pada mode teks. Pertamaubahlah variabel initdefault pada file /etc/inittab dan ubahlah kemode 3 atau dengan menggunakan perintah init# init 32. Metode Manual : Jalankan aplikasi X terminal GUI dengan menjalankanperintah “startx” pada console VGA. Untuk keluar gunakan logout# startx3. Metode Otomatis : Anda dapat menjalankan X terminal GUI setiap kali rebootmenggunakan perintah init. Anda harus mengedit variabelinitdefault”pada file /etc/inittab seperti percobaan 2 agar setiapbooting masuk ke mode GUI. Ubahlah kembali ke mode 5.# init 5Percobaan 4 : Menggunakan Virtual ConsolePercobaan 5 : Shutdown dan rebooting sistem1. Untuk mendapatkan command prompt dapat dilakukan dengan membukaterminal pada Jendela GUI. Default-nya, Linux menjalankan 6 virtual consolatau TTY session yang dijalankan pada console VGA. Hal ini didefinisikandengan statement mingetty pada file /etc/inittab. Console X terminalGUI membuat virtual console sendiri menggunakan TTY pertama yangtersedia yang tidak dikontrol oleh mingetty. Hal ini menyebabkan GUIberjalan sebagai nomor 7. Perhatikan baris mingetty pada file /etc/inittab, virtual console nomor berapa yang dikontrol ?# cat /etc/inittab2. Cobalah masuk ke virtual console menggunakan <CTRL> <ALT> <F1>sampai dengan <F6>.3. Untuk masuk ke login GUI gunakan <CTL> <ALT> <F7>, hanya jika beradapada run level 5 atau GUI dijalankan setelah ”startx”.1. Perintah init akan mengubah runlevel, untuk shutdown nilainya adalah 0.# init 02. Perintah shutdown menyebabkan efek yang sama. Opsi ”–y” untukmengabaikan prompt pesan dan ”–h” untuk halt sistem. Opsi 0 menunjukkanberapa lama menunggu memulai prosedur, dalam hal ini 0 menit.# shutdown –hy 03. Anda juga bisa menggunakan perintah init untuk reboot sistem denganmemasukkan runlevel 6# init 6Percobaan 6: Berpindah ke mode single userPercobaan 7: Berpindah ke mode single user pada layar Grub4. Perintah reboot menpunyai efek yang sama, tetapi juga mengirimkan pesanwarning ke semua user# reboot5. Reboot juga dapat dilakukan dengan perintah shutdown menggunakan opsi“-r” dan menentukan delai misalnya 10 menit.# shutdown –ry 101. Beberapa aktifitas membutuhkan sistem untuk log off semua user, aplikasi dannetworkin g sehingga hanya sistem administrator yang mengakses sistem dariconsole VGA. Alasan lainnya adalah untuk memperbaiki password ”root”.2. Jika sistem berjalan normal, berpindah ke mode single user dapat dilakukandengan perintah init dan memasukkan runlevel 1.# init 13. Perintah diatas tidak memberikan warning ke user dan perintah shutdown tidakmempunyai opsi mode single user. Hal ini akan muncul dengan menjalankanperintah shutdown dengan delay.# shutdown 11. Anda dapat masuk ke mode single user secara langsung setelah menghidupkanpower sistem.2. Hidupkan sistem Anda3. Jika screen Linux muncul, Anda dapat memilih kernel yang diinstal padasistem. Ketik ”a” untuk ”append”. Maka akan didapatkan prompt untukmenambah opsi boot pada file grub.conf.Percobaan 8: Berpindah ke default runlevel dari mode single userPercobaan 9: Memperbaiki password rootgrub append> ro root=LABEL=/4. Tambahkan “1” pada akhir stringgrub append> ro root=LABEL=/15. Tekan Enter. Sistem akan melanjutkan booting, tetapi akan menuju ke promproot # tanpa menanyakan username dan password1. Perintah “exit” akan menyebabkan sistem keluar dari runlevel 1 dan mengubahke default runlevel untuk sistem. Anda juga dapat menggunakan perintah init(misalnya “init 3” dan “init 5”)bash-2.05b# exit3. Kadangkala anda kehilangan atau lupa pada password root, atau sistemadministrator sebelumnya tidak memberi password kepada Anda4. Masuk ke console VGA dan tekan <CTRL> <ALT> <DEL>. Sistem akanshutdown5. Reboot sistem dan masuk ke mode single user6. Setelah masuk ke command prompt, ubahlah password root. Mode single usermengasumsikan orang pada consol sebagai “root”, sehingga anda tidak perlumenentukan nama user “root”7. Masuk ke default runlevel dengan menggunakan perintah “exit”.Percobaan 10: Menggunakan perintah chkconfig1. Perintah chkconfig digunakan untuk melihat aplikasi mana yang dimulaipada setiap runlevel. Opsi ”—list” untuk melihat daftar paket pada /etc/init.ddan runlevel yang ”on” atau ”off”# chkconfig –list2. Anda dapat menggunakan chkconfig untuk mengubah runlevel untuk pakettertentu. Misalnya Sendmail akan dimulai pada startup runlevel 3 atau 5.Ubahlah Sendmail tidak dimulai pada saat boot.3. Perintah chkconfig dapat digunakan dengan grep untuk menentukan runlevel dimana Sendmail akan berjalan. Disini terlihat berjalan pada level 3 dan5.# chkconfig –list | grep mail4. Perintah chkconfig dengan opsi “—level” mengindikasikan bahwa beberapaaksi dikerjakan pada runlevel yang dimasukkan seba gai nilai. Argumenpertama pada perintah adalah paket dan argumen kedua apakah “on” atau“off”. Dalam hal ini Anda ingin Sendmail tidak dimulai jika masuk kerunlevel 3 dan 5# chkconfig –level 35 sendmail off5. Hal tersebut juga dapat dilakukan tanpa opsi “—level”, otomatis chkconfigakan mengubah runlevel 3 dan 5# chkconfig sendmail off6. Anda juga dapat shutdown permanen dan stop dari running saat ini.# service sendmail stop7. Anda dapat menggunakan chkconfig untuk memeriksa kembali pekerjaanAnda# chkconfig –list | grep mailLATIHAN:1. Pada percobaan 1 lihatlah urutan eksekusi pada saat startup dan shutdown padarunlevel 5 untuk file :a. netfsb. pcmciac. nfslockd. kudzue. portmapf. wlang. isdnh. networki. syslogj. keytable2. Laporkan hasil perubahan password pada mode single user pada percobaan 9.Gunakan password root “redhat” (jangan lainnya !).3. Apakah kegunaan menggunakan perintah service ? Berikan contoh.4. Apa kegunaan menggunakan perintah chkconfig ? Berikan contoh.
LAPORAN RESMI:
1. Analisa hasil percobaan yang Anda lakukan.2. Kerjakan latihan diatas dan analisa hasil tampilannya.3. Berikan kesimpulan dari praktikum ini.
1 komentar:
lengkap sekali, terima kasih infonya :-)
Posting Komentar