Home
Halaman Muka
Tips Menginstal Software dari Source
|
|
|
|
Hendri Andriani
Linux Red Hat 7.2 dilengkapi option menggunakan
LILO atau GRUB Loader? Bagi newbie seperti saya ini tentu bingung, apa
sih GRUB itu? Bagaimana cara menggunakannya? Apa kelebihannya dibandingkan
LILO? Setelah saya cari sana sini mengenai keterangan tentang GRUB itu,
ternyata GRUB memiliki kemampuan yang ekstra lebih dan konfigurasi yang
lebih mudah dibandingkan dengan LILO yang selama ini kita pakai sebagai
defaultnya distribusi Linux pada umumnya.
GRUB, Grand Unified Boot Loader, seperti LILO, dapat memboot sistem
Linux anda, menjaga dan merawat booting dan loading pada kernel anda. GRUB
memiliki banyak feature dan lebih mudah dipakai, reliabel dan fleksibel
dibandingkan dengan LILO. Dengan berbekal pengetahuan dasar LILO dan partisi
disk maka anda dapat mengikuti cara penggunaan GRUB ini dengan baik.
Selain Linux, GRUB juga dapat memboot Sistem Operasi yang lain, seperti
NetBSD, OpenBSD, GNU HURD, DOS, Windows 95, 98, Me, NT, dan 2000. Meskipun
membooting sebuah Sistem Operasi merupakan pekerjaan yang biasa dan tidak
menarik, pekerjaan itu sebenarnya cukup penting. Jika Boot Loader anda
tidak bekerja dengan baik, anda dapat terkunci / terjebak di sistem anda
(tidak bisa booting).
Bagi saya, GRUB adalah Boot Loader yang handal, sebagai contoh GRUB
dapat membaca kernel Linux langsung dari partisi minix, FAT, ext2, atau
Reiserfs. Daripada saya panjang lebar menjelaskan kelebihan-kelebihan GRUB
dan membandingkannya dengan LILO ada baiknya akan kita mulai cara penggunaan
GRUB ini.
Saya akan mulai dengan OS Linux yang saat ini masih memakai LILO dan
belum menginstall GRUB sama sekali. Kita dapat mendownload tarball GRUB
yang versi terbaru di ftp://alpha.gnu.org/gnu/grub. Pada saat penulisan
artikel ini saya menggunakan GRUB versi 0.5.96.1 (grub-0.5.96.1.tar.gz).
Jangan takut untuk menginstallnya, boot records anda tidak akan berubah.
Kita akan mengkompile dan menginstall GRUB seperti program lain pada umumnya.Kita
dapat membuat bootdisk GRUB, sekali lagi jangan khawatir. Saya akan
memberitahu sebelum kita melakukan apa saja yang dapat mengubah proses
boot.
Saya akan meletakkan source code dan mengkompilenya di direktori
/tmp, lalu menginstall semuanya di direktori /usr. Sebagai root,
ketikkan perintah sebagai berikut :
# cd /tmp
# tar xzvf /direktori/tarball/grub/berada/grub-0.5.96.1.tar.gz
# cd grub-0.5.96.1
# ./configure -prefix=/usr
# make
# make install
Sekarang GRUB telah terinstall dan kita akan memulainya dengan menempatkan
boot loader pada sebuah disket.
•Membuat Bootdisk
Untuk membuat bootdisk, kita akan menggunakan beberapa langkah yang
sederhana. Pertama kita akan membuat sebuah file sistem ext2 pada sebuah
disket yang akan digunakan, setelah itu kita mount ke sistem dan copy beberapa
file GRUB ke disket dan kemudian menjalankan program ``GRUB'' yang menjaga
semua setting pada boot records disket.
Masukkan disket kosong, kemudian ketikkan perintah berikut:
# mke2fs /dev/fd0
yang berarti membuat (memformat) file sistem ext2 pada disket tersebut.
Tampilannya seperti Gambar 1.
Gambar 1. Memformat disket dengan filesystem
ext2.
Sekarang kita akan membuat beberapa direktori dan mengcopy file-file
kritis (yang sudah terinstall pada saat GRUB terinstall)
# mkdir /mnt/floppy/boot/
# mkdir /mnt/floppy/boot/grub/
Kemudian copy file stage1 dan stage2 yang ada pada direktori /usr/share/grub/i386-redhat/
(jika pada saat menginstall Red Hat 7.2 memilih opsi GRUB Loader) dan di
/usr/share/grub/i386-pc/ (jika tadi menginstall langsung dari tarball GRUB)
# cp /usr/share/grub/i386-redhat/stage1 /mnt/floppy/boot/grub
# cp /usr/share/grub/i386-redhat/stage2 /mnt/floppy/boot/grub
Tinggal selangkah lagi kita akan mendapatkan bootdisk yang bekerja
dengan baik.
Ketika anda menginstall sesuai instruksi di atas dari sebuah tar ball
GRUB, maka program yang menarik yang bernama grub ini terletak di direktori
/usr/sbin/grub. Program ini sangat menarik, karena pada faktanya program
ini menyerupai fungsi yang sama seperti GRUB Boot Loader. Ya! Meskipun
Linux sudah berjalan, anda dapat menjalankan GRUB, dan dapat melakukan
pekerjaan/perintah dan interface yang sama ketika anda menggunakan GRUB
Boot disk atau menginstallkan GRUB pada MBR di Hard Disk anda.
Kita akan menggunakan program grub tersebut untuk men set up boot sector
pada boot disk kita. Jalankan grub, maka akan keluar tampilan sebagai berikut...
# /usr/sbin/grub
GRUB version 0.90 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word,
TAB lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>
Versi di atas tergantung pada versi GRUB yang terinstall di sistem.
Jika kita menginstall dengan tarball kita akan menjumpai perbedaan versi
(Contoh tarball ini versi 0.5.96.1). Jika kita memilih opsi pada saat menginstall
Red Hat 7.2 maka versi GRUB menggunakan versi 0.90, seperti yang kita lihat
di atas.
grub> --> Merupakan grub command prompt / grub console.
Jika pada grub console kita ketikkan:
grub> root (fd0)
maka akan keluar tampilan informasi sebagai berikut
Filesystem type is ext2fs, using whole disk
yang berarti Filesystem pada device fd0 (/dev/fd0) atau floppy semua
isinya menggunakan filesystem ext2. Perintah ``root'' tadi meminta GRUB
untuk melihat stage1 dan stage2 pada device fd0, yang pada defaultya GRUB
melihat di direktori boot/grub/ pada partisi disk yang anda sebutkan (yakni
pada device fd0).
Kita baru saja mengcopy file-file tersebut pada direktori yang tepat.
Kemudian kita akan meminta GRUB untuk menginstall Boot Records pada disket
floppy kita dengan menggunakan perintah ``setup (device)'' pada console
GRUB.
grub> setup (fd0)
maka tampilan yang keluar:
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... no
Running "install /boot/grub/stage1 d (fd0) /boot/grub/stage2 p /boot/grub/grub
.conf "... succeeded Done.
Kemudian ``quit'' pada console GRUB untuk keluar. Dengan demikian kita
sudah mempunyai Boot Disk GRUB yang akan kita ``mainkan'' untuk bereksperimen
lebih lanjut :-).
grub> quit
Ketika anda akan menggunakan GRUB sebagai Boot Loader anda, pertama
pastikan anda tahu di partisi mana anda menyimpan kernel Linuxnya dan nama
partisi yang berisi filesistem root ``/''. Juga pastikan anda melihat konfigurasi
LILO sebelumnya, seperti beberapa argumen yang di butuhkan untuk mempassingkan
argumen tersebut ke kernel, seperti ``append = ide-scsi'' untuk mengemulasikan
keberadaan cdwriter sebagai scsi, dan argumen - argumen lainnya. Jika kita
sudah mengetahui segala informasi ini, kita akan tenang memulainya.
•Memulai GRUB
Untuk memulai GRUB, kita akan men-shutdown komputer, dan memboot dari
boot disk yang tadi telah kita buat. Tetapi jika anda ingin menjalankannya
dari sistem yang telah berjalan. Anda dapat menjalankan perintah grub seperti
di atas, semua akan berjalan sama, tetapi anda tidak akan memboot apa pun
dari sini (karena berada pada Sistem Linux yang berjalan).
Ketika Memboot dari bootdisk yang kita buat sebelumnya, GRUB akan mencari
informasi dari BIOS dan mencari file yang telah kita copy kan ke bootdisk
sebelumnya. Tampilannya akan sama seperti yang kita jalankan di atas:
GRUB version 0.90 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word,
TAB lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>
Seperti yang anda lihat semua sama seperti diatas, tetapi kita akan
memboot Sistem Linux anda dari sini.
Pada Linux, ketika kita berbicara tentang ``root'' filesystem, kita
akan langsung menunjuk ke partisi Linux utama (/). Tapi, GRUB mempunyai
definisi sendiri tentang partisi ``root''. Partisi ``root'' GRUB adalah
partisi yang menyimpan kernel Linux anda. Ini mungkin atau bukan file sistem
root ``biasa'' yang anda punya. Pada contohnya, pada Gentoo Linux kita
mempunyai partisi kecil, yang terpisah untuk menyimpan Kernel Linux dan
informasi - informasi Booting. Kita membiarkan partisi ini tidak di-mount,
jadi tidak akan berantakan jika secara tidak sengaja atau sengaja sistem
ini tiba-tiba crashes atau mereboot ulang.
Sekarang kita berada di GRUB, kita akan menunjukkan lokasi partisi
root. Ketika kita memasuki partisi root maka GRUB akan memountnya dengan
option read-only, jadi dapat mengload Kernel Linux dari sana. Satu hal
yang benar-benar fantastis pada GRUB adalah GRUB dapat membaca partisi
FAT, minix, ext2, FFS dan Reiserfs.
Ketikan perintah root pada GRUB,
grub> root (
Tekan tombol TAB, GRUB akan mengisi kemungkinan partisi hardisk yang
anda miliki. Jika anda memiliki beberapa partisi dimulai dari hd0 (bukan
/dev/hda seperti biasanya). Jika anda hanya mempunyai satu hardisk maka
GRUB akan mengisinya dengan ``hd0''. Jika anda memiliki lebih dari satu
Harddisk silakan pilih Harddisk yang ada kernel linuxnya, contohnya ``hd0''
diikuti dengan tanda koma ``,'' di sebelahnya. Sampai di sini jangan tekan
[Enter] !
grub> root (hd0,
Kemudian tekan [Tab] untuk melihat kemungkinan partisi yang anda punya
dalam hardisk tersebut.
grub> root (hd0, [Tab]
Possible partitions are:
Partition num: 0, Filesystem type is ext3fs, partition type 0x83
Partition num: 1, Filesystem type unknown, partition type 0x82
Partition num: 2, Filesystem type unknown, partition type 0x7
Partition num: 4, Filesystem type is reiserfs, partition type 0x83
Partition num: 5, Filesystem type is GNU HURD, partition type 0x63
Tentu tampilannya akan berbeda sesuai dengan Partisi Harddisk yang
anda miliki. Pada Linux, biasanya partisi ke 5 dari Harddisk adalah hda5,
tetapi pada GRUB didefinisikan lain yakni (hd0,4). GRUB menggunakan penamaan/pelabelan
harddisk dan partisinya dimulai dari 0, bukan a atau 1.
Kita akan memboot Harddisk yang berisikan Kernel Linux, sebagai contohnya
pada partisi ke -5,
grub> root (hd0, 0) [Enter]
Filesystem type is ext3fs, partition type 0x83
Kemudian tentukan letak dari kernel tersebut. Anda meletakkannya sesuai
dengan letak kernel Linux.
grub> kernel /boot/vmlinuz-2.4.7-10 ro root=/dev/hda5
Berarti kernel tersebut bernama vmlinuz-2.4.7-10 dan berada pada direktori
/boot, dengan mounting read-only untuk partisi root ``/'' yang ada di /dev/hda5.
Anda dapat menambahkan parameter kernel anda seperti ``root=/dev/hda5''
dan ``mem=256''.
Catatan: parameter kernel ``root='' penting didefinisikan untuk menunjukkan
root filesystem anda.
Anda telah me-mount root filesystem dan meload kernel Linux anda. Saatnya
anda memboot kernel linux anda, dengan menggunakan perintah sederhana``boot''.
grub> boot
dan proses boot Linux akan mulai.
File Konfigurasi GRUB (grub.conf ) ada di direktori /boot/grub/. Berikut
contoh isi file grub.conf:
# grub.conf generated by anaconda #
# Note that you do not have to rerun grub after making changes to this
file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda5
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.7-10)
•root (hd0,0)
•kernel /vmlinuz-2.4.7-10 ro root=/dev/hda5
•initrd /initrd-2.4.7-10.img
File tersebut dibuat pada saat instalasi dengan Anaconda Installer
dari Red Hat 7.2.
Jika semua berjalan dengan baik, anda akan dapat meload distribusi
Linux anda dengan BootDisk GRUB. GRUB merupakan boot loader yang
harus diperhitungkan, karena anda dapat mengkonfigurasi secara dinamik
/ berubah-ubah sesuai keinginan anda. Selanjutnya akan penulis tunjukkan
cara untuk membuat Menu Loader GRUB daripada anda mengetikkan 3 baris perintah
GRUB. Namun sebelum itu mari kita memperdalam pengetahuan kita tentang
cara kerja GRUB.
•Cara Kerja GRUB
Untuk mensetup boot floppy, kita melakukan 2 hal, pertama kita mengkopi
2 files dari direktori /usr/share/grub/i386-redhat/ ke /boot/grub/ floppy
yang berfilesystem ext2 dan menjalankan program setup dari GRUB.
grub> setup (fd0)
GRUB menginstall loader``stage1'' ke boot record pada floppy dan juga
mengkonfigurasikan ``stage1'' untuk mengload ke ``stage2'' langsung dari
file sistem ext2. Sebenarnya GRUB melakukan ini dengan membuat sebuah list
yang terdiri dari blok-blok ke floppy yang berisikan data ``stage2''. Jadi
``stage1'' tidak perlu tahu apapun tentang filesistem ext2 untuk me-load
``stage2''.
Bagaimanapun juga, dalam beberapa kasus GRUB menginstall loader ``stage1.5''
ke boot record setelah menginstall ``stage1''. Loader ``stage1.5'' spesial
ini akan membuat ``stage2'' dapat di Load tanpa menggunakan blocklist yang
kuno/lama (primitive blocklist), tetapi dengan menggunakan pendekatan standard
berbasis path yang lebih fleksibel. Kemampuan ini yang dimiliki GRUB untuk
mengenali struktur filesystem secara langsung yang dapat membuat GRUB lebih
powerfull dibanding LILO. Jika terjadi Defraksi pada filesystem di bootdisk,
secara langsung, stage1 (berkat ext2 stage1.5) dapat menemukan stage2.
Hal ini yang tidak dapat dilakukan oleh LILO, karena LILO sangat tergantung
pada file map. Files map ini harus dijalankan ulang setiap kali anda
memperbaharui kernel anda, atau memindahkan sesuatu secara fisik / kasar
pada disk, walaupun pathnya tidak berubah.
Anda akan heran sekaligus kagum jika bootdisk anda dibuat dengan file
sistem FAT selain dengan file sistem ext2. Ya! itu dapat dilakukan, karena
pada saat kita menjalankan ``setup (fd0)'' GRUB akan menginstallkan ``stage1.5''
yang sesuai dengan tipe filesystem pada root. Bahkan jika tidak ada tempat
untuk ``stage1.5'', GRUB dapat meload stage2 dengan cara berbalik ke pendekatan
kuno block-list.
•Menginstall GRUB pada Harddisk
Nah kita sudah membuat bootdisk floppy GRUB, bagaimana jika kita ingin
menginstallnya di harddisk? Caranya sangat sederhana, pertama kita tentukan
di mana partisi root GRUB ditempatkan, kemudian buat direktori /boot/grub/
pada partisi root GRUB. Ingat partisi root GRUB tidak sama definisinya
dengan partisi root pada Linux. Setelah itu kopikan file stage1 dan stage2
ke direktori /boot/grub/. Sebagai contoh jika direktori /boot/grub/ diletakkan
di /dev/hda4 maka root di set ke ``(hd0, 3)''
grub> root (hd0, 3)
Sekarang tinggal putuskan apakah GRUB akan ditempatkan di MBR? Jika
ya, maka taruh GRUB di seluruh disk tanpa partisi, sebagai contohnya di
hd0 (/dev/hda), maka jalankan perintah berikut:
grub> setup (hd0)
Jika anda menginstallnya di partisi lain, tinggal disebutkan di partisi
mana, misalnya pada partisi hda5,
grub> setup (hd0, 4)
Sekarang GRUB telah terinstall. Jika anda memboot sistem anda maka
akan keluar tampilan konsole GRUB (Jika anda menaruhnya di MBR) seperti
contoh yang di atas, sekarang kita tinggal membuat menu boot agar anda
tidak mengetikkan baris perbaris perintah di atas.
•Membuat Menu GRUB
Untuk membuat menu boot pada GRUB, kita hanya membuat file teks biasa
yang bernama menu.lst dan di letakkan di direktori /boot/grub/ di antar
file stage1 dan stage1, berikut contoh file menu.lst.
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.7-10)
root (hd0,0)
kernel /vmlinuz-2.4.7-10 ro root=/dev/hda5
initrd /initrd-2.4.7-10.img
title Windows 2000
root (hd0, 3)
chainloader +1
Pada Red Hat 7.2, file menu.lst di-link ke file grub.conf.
Berikut penjelasan file boot menu GRUB di atas:
Baris pertama, Default boot mana yang akan dijalankan (dimulai dari
0 berikutnya 1, 2 dan seterusnya) . Baris kedua, waktu memilih, jika lewat
dari waktu yang ditetapkan, akan dipilih defaultnya. Baris ketiga (splashimage)
untuk tampilan boot loader semacam wallpaper, yang dapat juga diganti dengan
perintah ``color'' sesuai selera, contohnya:
color white/blue blue/red
yang akan menghiasi tampilan menu GRUB .
Baris berikutnya merupakan Boot Linux, sesuai dengan parameter-parameternya,
root partisinya dan sebagainya... Juga dapat menggunakan initrd (initial
root disk).
Baris terakhir, chainloader ini bekerja dengan memboot (boot record)
Windows 2000 sendiri pada partisi hda2 dan membootnya. Ini yang disebut
loading dengan tehnik rantai, GRUB akan meload ke partisi boot record yang
dituju dan memboot sistem dari sana. Tehnik ini berjalan dengan baik di
versi Windows dan DOS apa saja.
Anda tidak perlu menginstall ulang GRUB untuk mengupdate kernel / mengganti
versi kernel yang baru atau mengganti lokasi partisi anda. Anda hanya perlu
mengubah file menu.lst. Hanya ada beberapa kondisi jika GRUB perlu di install
ulang, pertama jika anda akan menggantikan filesistem pada partisi root
GRUB, misalnya dari ext2 ke reiserfs, kedua jika menggantikan file stage1
dan stage2 ke versi terbaru.
•Tips Ringan GRUB
GRUB dapat membuat bootdisk sekaligus sebuah disket penyelamat (rescue
disk). Jika kernel pada harddisk anda secara sengaja / tidak sengaja rusak
atau terhapus, anda dapat memanggil kernelnya di boot disk anda dan sistem
akan berjalan dengan baik. Caranya dengan mengkopi kernel anda ke floppy
bootdisk GRUB
# mount /dev/fd0 /mnt/floppy
# cp /path/direktori/bzImage /mnt/floppy/boot/
# umount /mnt/floppy
Sekarang disket anda berisikan kernel Linux, sehingga anda dapat membootnya
dalam konsole GRUB dengan cara:
grub> root (fd0)
grub> kernel /boot/bzImage root=/dev/hda5
grub> boot
Pada parameter kernelnya, partisi root ditunjukkan ke partisi root
yang ada pada Harddisk.
Referensi
http://www.gnu.org/software/grub
Hendri Andriani <c4c3m_shadow@yahoo.com>
|