Sabtu, 24 Desember 2011

permasalahan starup dan shutdown


PERMASALAHAN STARTUP & SHUTDOWN

Selama proses booting, Linux akan memanggil sebuah loader yang disebut dengan LILO (belakangan juga muncul loader bernama GRUB), yang kemudian akan memanggil sebuah program yang bernama dengan init. Program init inilah yang kemudian akan memeriksa file-file inisialisasi sistem, lokasi file-file tersebut berada, dan menjalankan Linux sesuai dengan default run level yang digunakan.

Proses Startup

Proses starup dimulai ketika sistem sudah memanggil LILO dan proses booting sudah diserahkan pada sebuah program induk yang disebut dengan init. Pada hampir kebanyakan distribusi Linux, proses startup mengikuti aturan-aturan seperti berikut.

  1. Eksekusi LILO
  2. LILO Memuat secondary loader pada /boot/chain.b.
  3. /boot/chain.b menjalankan Kernel Linux. Sampai pada bagian ini, seorang pengguna akan melihat tampilan pesan pada layar seperti menjalankan daemon, memerika integritas perangkat keras, dan sebagainya.
  4. Kernel menyerahkan tugasnya kepada init.
  5. Init menjalankan berbagai program di belakang layar yang dibutuhkan oleh seorang user untuk login ke dala sistem.
  6. Init memanggil program yang digunakan untuk login.

BIOS Basic Input/Output Systemadalah antar
muka level terendah antara komputer dan peripheral.
Bios melakukan pemeriksaan pada memori dan mencari instruksi pada MasterBoot Record (MBR) pada floppy atau hard drive.
MBRmenunjuk ke boot loader (LILO : Linux boot
loader)
LILO / GRUBakan menanyakan label sistem
operasi yang akan mengidentifikasi kernel yang dijalankan. Kernel akan menjalankan sistem operasi Linux.

Yang pertama kali dikerjakan oleh kernel adalah menjalankan program init.
Init adalah root/parent dari semua proses yang dijalankan pada Linux
Proses pertama yang memulai init adalah skrip /etc/rc.d/rc/sysinit.
Berdasarkan run-level yang ditentukan, skrip
dieksekusi untuk memulai proses tertentu untuk menjalankan sistem dan membuat sistem lebih fungsional.

Init Proses
Proses init adalah langkah terakhir pada prosedur boot dan di
identifikasi sebagai process ide ³1´.
Init bertanggung-jawab untuk memulai proses sistem seperti
yang ditentukan pada file /etc/inittab.
Init biasanya memulai ³getty´ yang menunggu layar login yang
menandakan proses shell seorang user.
Pada saat shutdown, init mengontrol urutan dan proses untuk shutdown.
Proses init tidak pernah shut down. Proses init merupakan proses user dan bukan proses sistem kernel meskipun dijalankan sebagai root.

Proses Startup pada tiap Distribusi

Seperti sudah diterangkan di atas, setelah init mengambil alih tugas booting sistem dari LILI atau GRUB, init akan menjalankan sistem sesuai dengan default run level yang digunakan. Pada beberapa distribusi, penanganan run level ini berbeda satu dengan lainnya.

Run Level pada RedHat dan OpenLinux

Kedua distribusi ini meletakkan program-program shell pada direktori /etc/rc.d. Program-program yang berhubungan dengan init diletakkan dalam sebuah direktori master pada /etc/rc.d/init.d. Sedangkan direktori lainnya lagi memiliki nama yang sama untuk setiap run level, misalnya /etc/rc1.d/ untuk run level 1.

Debian/GNU LINUX

Debian memiliki kesamaan dengan RedHat ataupun OpenLinux. Perbedaan terletak pada direktori master, yaitu /etc/init.d sedangkan untuk RedHat atau OpenLinux adalah /etc/rc.d.init.d.

Slackware

Slackware memiliki kesamaan dengan RedHat ataupun OpenLinux. Perbedan terletak pada distribusi Slackware yang tidak menggunakan file dengan link sombolik seperti yang digunakan oleh distribusi lainnya. Jadi setiap file yang berhubungan dengan init adalah program binari yang memang dapat dieksekusi untuk menjalankan script shell.

SuSE

Perbedaan utama SuSE dengan RedHat ataupun Open Linux adalah struktur yang berada pada direktori master /etc/rc.d/rc di link kembali ke direktori aktif yang berada pada /etc/rc.d/.


Proses Startup dan LILO

Penggunaan boot manajer memungkinkan kita untuk menjalankan lebih dari sistem operasi pada satu komputer. Dengan boot manajer kita dapat memilih salah satu sistem operasi untuk dijalankan pada waktu proses booting pertama kali. Kebanyakan distribusi saat ini menyertakan LILO atau GRUB yang dapat diinstal pada waktu proses instalasi. Keberadaan boot manajer ini memungkinkan seorang user untuk dapat menggunakan harddisk berukuran besar dengan menyertakan opsi linear pada lilo.conf. Untuk mengkonfigurasikan lilo, dapat dilakukan dengan menggunakan tool-tool berbasis grafis, seperti RedHat dengan Linuxconf atau Webmin untuk Open Linux. Meskipun tersedia tool berbasis grafis, kita dapat mengkonfigurasikan lilo dengan menggunakan cara manual pada file /etc/lilo.conf.

Jika pada satu komputer terdapat dua sistem operasi (misal Linux dan MS Windows), pada file lilo.conf terdapat dua baris utama yang menunjukkan opsi yang digunakan untuk menjalankan kedua sistem operasi tersebut. Pada kedua baris tersebut terdapat sebuah opsi label yang merupakan nama dari sistem operasi yang digunakan untuk menjalankan salah satu sistem operasi yang digunakan.
Salah satu opsi yang digunakan pada lilo adalah pengaturan waktu yang digunakan untuk memberikan kesempatan user memilih salah satu sistem operasi yang digunakan sebelum nilai default yang digunakan lilo dijalankan. Opsi ini menggunakan timeout dan berisikan nilai dalam satuan detik. Misalkan kita akan mengatur timeout dengan satuan waktu 20 detik, tambahkan opsi berikut ke dalam lilo.conf.


init dan Run Level

Ada beberapa cara untuk melakukan booting terhadap sistem, yang sering sekali digunakan adalah dengan membooting sistem menggunakan harddisk dan menggunakan floppy drive. RedHat dan distribusi Linux lainnya menggunakan proses boot yang yang disebut dengan init sysV yang merupakan sistem booting yang digunakan oleh BSD. Init adalah program dari kernel yang dieksekusi pada waktu startup, dan kemudian memiliki nomor PID 1. Proses boot ini kemudian menjadi proses induk (parent process) bagi semua proses yang berada dalam sistem.
Langkah-langkah yang dilakukan oleh sistem pada waktu booting adalah :

  1. Kernel menjalankan program init yang berada pada direktori /sbin
  2. init menjalankan script shell /etc/rc.d/rc.sysinit.
  3. rc.sysinit menjalankan sistem lainnya dan menampilkan proses startup.
  4. Init menjalankan script yang sesuai dengan default run level.
  5. Init menjalankan script pada /etc/rc.d/rc.local.

Program ini kemudian menjalankan banyak proses dan menuliskan informasi ke konsol dan sistem log pada /var/log/message tentang status dari setiap proses yang dijalankan.init menjalankan semua proses yang dibutuhkan oleh sistem operasi untuk melaksanakan tugasnya, seperti networking, menggunakan mouse, fungsi dari I/O dan sebagainya. init juga harus mengetahui program mana yang harus dijalankan dengan membaca file-file yang berada pada /etc/rc.d. Setiap file yang berada pada direktori ini dikelompokkan berdasarkan run level, pada tiap-tiap direktori.
Run level terdiri dari berbagai tipe layanan, dari single user mode (run level 1) sampai multiuser, multitasking (run level 3).

Init proses

     Proses init adalah langkah terakhir pada prosedur
Proses init adalah langkah terakhir pada prosedur boot dan di
identifikasi sebagai process ide ³1´.
Init bertanggung-jawab untuk memulai proses sistem seperti
yang ditentukan pada file /etc/inittab.
Init biasanya memulai ³getty´ yang menunggu layar login yang
menandakan proses shell seorang user.
Pada saat shutdown, init mengontrol urutan dan proses
untuk shutdown.
Proses init tidak pernah shut down. Proses init merupakan proses user dan bukan proses sistem kernel meskipun dijalankan sebagai root.

Proses boot / Run level

Run level menggambarkan keadaan sistem yang mendefinisikan layanan apa yang sedang berjalan. Run level ditunjukkan dengan angka. Seluruh baris di file /etc/inittab akan diproses sesuai dengan run level yang berlaku.Baris yang tidak mempunyai run level, berarti proses pada baris tersebut dijalankan pada setiap run level.
Linux mempunyai 6 state operasi dimana ³0´ adalah shutdown state dan ³3´ keatas adalah operasional penuh dengan semua proses yang esensial dijalankan untuk interaksi 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 initdefault pada file /etc/inittab.
id:5:initdefault:
Pada contoh diatas, runlevel ´5´ dipilih. Runlevel ³5´
akan melakukan
booting sistem pada mode GUI menggunakan XDM dan X-Windows.Booting ke runlevel ´3´ (biasanya disebut mode console) biasanya digunakan oleh server yang tidak memerlukan GUI.
File inittab mengijinkan menggunakan kunci (Ctrl-Alt-Del),
memulai dial ke koneksi internet dll

Run level
Keterangan
0
Powerdown, kondisi dimana mesin
sudah aman untuk dimatikan
RUN LEVEL            KETERANGAN
 
   1            Mode single user, biasa digunakan
untuk administrasi sistem
   2            Mode multiuser tanpa NFS
   3            ModeFull multiuser
   4            Tidak digunakan
   5            ModeFull Multiuser dengan
X-Based login screen
   6            Shutdown dan reboot,
digunakan untuk merestart mesin.

BOOT LOADER


PENGENALAN BOOTLOADER
1.LILO
LILO (linux loader) merupakan salah satu loader yang sering digunakan,lilo ini biasanya terdapat pada distribusi RedHat dan turunannya.lilo biasanya digunakan pada mesin intel-compatible , sedangkan mesin lain seperti Digital Equipment Corp. menggunakan MILO. Alpha PC, SPARCH-compatible dapat menggunakan SILO.Untuk linux yang sekarang kita gunakan kita tidak perlu menginstal loader karena saat install system oprasi nya maka akan secara otomatis terinstall pada linux kita. Kita dapat melakukan konfigurasi pada lilo dengan menggunakan text editor seperti vi,pico dan lain lain,dimana user root yang diizinkan untuk melakukan konfigurasi.letak file lilo ada di /etc/lilo.conf

#vi /etc/lilo.conf
message = /boot/message
timeout = 40
prompt
default = Suse
boot = /dev/hda

##system oprasi linux ##
image = /boot/vmlinuz
label = Suse
initrd = /boot/initrd
root = /dev/hda7





keterangan dari isi dile lilo.conf diatas
Baris——Keterangan
****************************
message–Memanggil pesan yang akan ditampilkan saat booting yang terletak di /boot/message
timeout—Waktu untuk melilih OS lain jika kita cantumkan pada lilo.conf . 40 artinya akan login ke OS default setelah 4 detik
default—Merupakan OS default untuk login
boot—Harddisk yang digunakan untuk booting yaitu /dev/hda
image—Ini berisi image dari kernel sistem oprasi yang akan di booting biasanya /boot/vmlinuz
label—Nama yang akan di tampilkan pada saat booting
initrd—Ini berisi initial ramdisk dari kernel biasanya di /boot/initrd
root—Berisi letak partisi dari sistem oprasi yang akan di booting

Sebagai contoh kita akan menambahkan sistem oprasi linux slackware dan windows xp pada lilo.conf dimana windows xp sebagai default nya:

#vi /etc/lilo.conf
message = /boot/message
timeout = 40
prompt
default = Windows
boot = /dev/hda

##system oprasi windows XP##
other = /dev/hda1
label = Windows

##system oprasi linux Suse##
image = /boot/vmlinuz
label = Suse
initrd = /boot/initrd
root = /dev/hda7

##system oprasi slackware##
image = /boot/vmlinuz
label = slack
initrd = /boot/initrd
root = /dev/hda9

setelah melakukan konfigurasi pada lilo.conf maka kita save , untuk menjalannya kita dapat mengetikan perintah :
#/sbin/lilo

Jika tidak ada pesan error atau skip yang ditampilkan maka konfigurasi lilo.conf maka yang anda telah benar.ada baiknya sebelum melakukan konfigurasi kita mem backup file lilo.conf

2.PENGENALAN GRUB
Grub (Grand Unified Boot Loader) merupakan loader yang juga sering digunakan pada system oprasi linux.Untuk konfigurasi pada Grub ini pun tak jauh berbeda dengan lilo.grub ini biasanya terdapat pada distribusi seperti Ubuntu. Ada sedikit perbedaan untuk konfigurasi Grub dengan lilo ,dimana pada grub penamaan untuk partisi dan nomor partisi dimulai dari nol ”0” namun untuk mounting partisi tidak ada perbedaan.letak file konfigurasi grub di /boot/grub/menu.lst

Primary IDE master = /dev/hd0
Primary IDE slave = /dev/hd1
secondary IDE master = /dev/hd2
secondary IDE slave = /dev/hd3

Untuk konfigurasi dapat negetikan perintah :
#vi /boot/grub/menu.lst
default 0
timeout 10

title Windows XP
root (hd0,0)
savedefault
makeactive
chainloader +1

title Ubuntu, kernel 2.6.15-26-386
root (hd0,1)
kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/hda2
initrd /boot/initrd.img-2.6.15-26-386
savedefault
boot




Baris—-Keterangan
*************************
Default—-Nomor dari OS yang secara default akan login, dimulai dari 0 untuk OS pertama dan seterusnya ,pada contoh diatas windows XP adalah defaultnya
Timeout—-Lamanya waktu yang disediakan untuk memilih OS dalam detik, 10 detik pada contoh diatas
Title—-Nama OS yang akan ditampilkan
Root—Menunjukan Letak partisi penulisannya dimulai dari 0
Kernel—Letak dari kernel , dan diikuti dengan penulisan letak partisi seperti pada konfigurasi lilo
Initrd—Letak dari initial ramdisk

Contoh :
jika kita melakukan instal linux yang lain kita dapat menambahkan pada grub,kita manambahkan distro Suse yang terletak pada partisi /dev/hda3 maka kita cukup manambahkan pada menu.lst dibaris berikutnya:
#vi /boot/grub/menu.lst
title SUse
root (hd0,2)
kernel /boot/vmlinuz root=/dev/hda3
initrd /boot/initrd
savedefault
boot




jika anda telah selesai melakukan konfigurasi dan disave,selanjut nya ketikan perintah :
#grub

Setelah mengetikan perintah diatas maka akan muncul prompt

grub>,kemudian kita ketikan perintah :
grub>root (hd0,1)
grub>setup (hd0)
grub>quit

Baris—–Keterangan
*************************
Root—Menuliskan Letak dari partisi /boot berada, pada contoh diatas terletak di hd0,1 , dapat juga digunakan Untuk berpindah partisi
Setup—Menginstall atau meload grub di MBR , jika ingin install di pastisi tertentu maka ikuti dengan letak partisi misal (hd0,3)
Quit—-Keluar dari prompt grub

selain itu juga kita dapat mengetikan perintah help , maka akan muncul beberapa perintah yangterdapat pada grub
ini lah yang merupakan kelebihan dari grub yang memiliki banyak fitur, diantaranya
kernel : digunakan untuk meload kernel , diikuti nama kernel
boot : digunakan untuk booting , diikuti partisi
contoh
grub>kernel /boot/vmlinuz-2.6.20-15-generic
grub>boot (hd0,3)

Setelah selesai dan tanpa ada pesan kesalahan , komputer siap direstart.
sebenar nya kita dapat menambah kan opsi lain
pada Grub maupun lilo
seperti vga dan append

Perlu diingat pada pembuatan partisi yang dapat menggeser letak dari partisi root , bisa meyebabkan grub atau $

caranya :

A. Pada Grub

jalankan live cd yang anda dunakan ,setelah itu masuk terminal sebagai user root, setelah itu ketikan perintah

#grub  (akan muncul form grub>)

kemudian installah grub di mbr  untuk hrdis sata biasanya sd0 dan pada hd0

grub>setup (hd0)

jika tidak ada pesan error maka apa yang anda lakukan sudah benar

B.Pada lilo

pada lilo hampir sama pada dengan apa yang dilakukan pada grub namun setelah masuk ke terminal kita kita lakukmounting pada partisi linux yang lilo nya mau dibangkitkan .  misalkan partisinya /dev/hda5
contoh :

#mount /dev/hda5 /mnt

kemudian lakukan chroot pada partisi yang udah di mounting tadi ini bertujuan untuk pindah root.

#chroot /mnt

setelah itu lakukan instalasi lilo pada mbr  dengan perintah
#lilo -v

perlu di ingatkan jika partisi dari linux berubah maka anda perlu melakukan edit pada menu.lst dan lilo.conf serta pada fstab
karena pada file tersebut menyimpan letak partisi yang akan di load dan dimount

EDIT BOOT LOADER pada Linux Ubuntu
1. Masuk ke terminal dan login dengan perintah sudo su
2. Buka root file manager dengan perintah gksu nautilus
3. Masuk ke folder /boot/grub lalu buka dan editlah berkas bernama menu.lst