GRAND UNIFIED BOOTLOADER 2 (GRUB 2)
1. Pendahuluan
GRUB2 merupaka versi pengembanagan dari GRUB yang secara default akan menjadi bootloader bawaan pada distro ubuntu 9.10. GRUB2 saat ini masih dalam tahap pengembangan. Untuk melihat versi GRUB, anda dapat menggunakan perintah :
$ grub-install -v
2. Perbedaan GRUB2 dengan GRUB
Tidak ada perbedaan mencolok dari segi tampilan menu boot saat pertama kali komputer melakukan booting, kecuali jika dalam komputer tidak ada sistem operasi lain selain ubuntu 9.10, jika kasus ini yang terjadi maka menu bootloader tidak akan muncul dan langsung masuk ke tampilan login. Perbedaan perbedaan lainnya adalah :
Tidak ada file ”/boot/grub/menu.lst”. Diganti menjadi file ”/boot/grub/grub.cfg”.
Tahan/tekan tombol SHIFT untuk menampilkan menu yang dihidden saat proses booting (versi sebelumnya menggunakan ESC).
Tidak ada perintah”find /boot/grub/stage1″ pada prompt GRUB, Stage 1.5 juga telah dihapus.
File menu utama, ”/boot/grub/grub.cfg” tidak dimaksudkan untuk diedit, bahkan oleh ‘root’.
”grub.cfg” akan ditulis ulang setiap kali di update, sebuah kernel ditambahkan/dihapus saat user menjalankan perintah `update-grub` *
User dapat menggunakan file kustom, ”/etc/grub.d/40_custom”, untuk menambahkan entri sistem operasi lain, file ini tidak akan ditulis ulang.
File konfigurasi utama untuk mengganti menu tampilan adalah ”/etc/default/grub”.
Ada banyak file untuk mengkonfigurasi menu utama selain – ”/etc/default/grub” dan seluruh file didalam folder ”/etc/grub.d/”.
Sistem operasi lain seperti windows akan dikenali secara otomatis, dan ditambahkan kedalam menu.
Semua perubahan yang dilakukan tidak akan berpengaruh sampai perintah `update-grub` dijalankan.
Notes: untuk mengupdate menu GRUB2 perintah sudo update-grub akan digunakan sepanjang tutorial ini, perintah tersebut sebenarnya akan menjalankan perintah grub-mkconfig -o /boot/grub/grub.cfg. Hasil dari eksekusi perintah tersebut akan ditampilkan pada layar menu saat booting.

3. Perbaikan
Perbaikan utama yang ada pada GRUB2 atas versi sebelumnya adalah :
Struktur file konfigurasi baru
Dukungan scripting termasuk pernyataan kondisional dan fungsi
Load modul dynamic
Rescue mode
Tema
Dukungan menu boot grafis dan peningkatan kemampuan splash
Mudah boot langsung image LiveCD ISO dari hard drive
Dukungan platform Non-X86 (seperti PowerPC)
Dukungan untuk UUIDs universal (bukan hanya Ubuntu)
Peningkatan internasionalisasi, termasuk dukungan untuk karakter non-ASCII
Catatan: openSUSE & Fedora belum mengadopsi GRUB 2
4. Boot GRUB
GRUB2 akan diload sebelum sistem operasi. Lingkungan atau tampilan menu GRUB2 ditentukan dari settingan pada file /etc/default/grub. Anda bisa melihat bagian “Opsi dan file GRUB2” untuk melihat masukan yang spesifik.
Pilihan utama untuk menampilkan menu adalah:
Initial Default
Grub 2 akan boot langsung ke sistem operasi standar jika tidak ada sistem operasi lain yang terdeteksi. Jika sistem operasi lain terdeteksi, menu GRUB2 akan ditampilkan.
Timed display.
Delay default adalah 10 detik. Jika tidak ada input pengguna GRUB2 akan melakukan boot untuk entri default.
Penghitungan dapat dihentikan dengan menekan sembarang tombol. Kemudian pengguna harus membuat pilihan secara manual.
Entri boot ditentukan oleh DEFAULT = pada pengaturan di /etc/default/grub, “menuentry” pertama adalah 0.
Hidden
Pengguna dapat menginterupsi proses boot dan menampilkan menu dengan menekan tombol SHIFT sampai menampilkan menu. GRUB2 akan mencari depresi sinyal tombol SHIFT selama boot. Jika tombol ditekan atau GRUB2 tidak dapat menentukan status kunci, menu akan ditampilkan.
Waktu pada layar tetap kosong, tapi tersedia, untuk menampilkannya ditentukan oleh pengaturan di /etc/default/grub.
Perhitungan mundur dapat ditampilkan pada layar.
Pada akhir batas waktu, entri default yang ditentukan di /etc/default/grub akan dipilih.
Jika pilihan default diatur ke “saved”, maka kernel/sistem operasi yang berhasil diboot terakhir kali akan diboot.
5. Opsi dan File GRUB
Banyak file di /boot/grub tidak akan dikenali oleh pengguna dari GRUB sebelumnya. Yang terlihat mencolok adalah banyaknya file *. mod. GRUB2 bersifat modular dan file-file ini dimuat sebagai kebutuhan oleh bootloader GRUB2.
Pengaturan GRUB2 yang utama yang dapat dikonfigurasi pengguna terletak di /etc/default/grub dan file di /etc/grub.d. Ketika update-grub dijalankan maka hasil eksekusinya akan dimasukkan ke dalam file /boot/grub/grub.cfg.
/boot/grub/grub.cfg
Ini adalah file utama GRUB2 menggantikan file konfigurasi pada GRUB sebelumnya yaitu /boot/grub/menu.lst. File ini berisi informasi menu Grub tapi tidak seperti menu.lst, grub.cfg tidak dimaksudkan untuk diedit.
grub.cfg akan digenerate secara otomatis ketika “update-grub” dijalankan.
Setiap bagian (###BEGIN) memberikan gambaran dan referensi yang jelas dari file yang berasal pada folder /etc/grub.d.
grub.cfg diperbarui dengan menjalankan perintah “update-grub2″ atau “update-grub” sebagai root.
Secara default, dan setiap kali perintah “update-grub2″ dijalankan, file ini dibuat “read-only”. Hal ini sesuai dengan maksud bahwa file tidak boleh diedit secara manual. Jika anda harus mengedit file ini, instruksinya akan diberikan dalam Bagian 2.
Berikut adalah contoh dari file /boot/grub/grub.cfg:
/etc/default/grub
File ini berisi informasi yang sebelumnya terdapat di bagian atas menu.lst dan item yang terdapat di akhir baris kernel. Item dalam file ini dapat diedit oleh pengguna dengan status administrator (root).
Sample filenya:
# If you change this file, run ‘update-grub’ afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=”3″
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
GRUB_CMDLINE_LINUX=””
# Uncomment untuk menonaktifkan grafis terminal (grub-pc only)
#GRUB_TERMINAL=console
# Resolusi yang digunakan pada terminal grafis
# Perhatikan bahwa Anda hanya dapat menggunakan mode yang mendukung kartu grafis Anda melalui VBE
# Anda dapat melihat mereka secara real GRUB dengan perintah `vbeinfo ‘
#GRUB_GFXMODE=640×480
# Uncomment jika Anda tidak ingin GRUB melewati “root = UUID = xxx” parameter ke Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entrys # Uncomment generasi menonaktifkan menu recovery mode entrys
NOTES :Beberapa bug masih ada di fitur hidden menu. Ketika Menyembunyikan menu, bahkan dengan pengaturan “TIMEOUT” yang benar di /etc/default/grub , mungkin tidak dapat berfungsi seperti yang dijelaskan.
GRUB_DEFAULT – menset menu entri default, settingan dapat berupa numeri atau “saved”
GRUB_DEFAULT = 0 – Set default menu entri dengan posisi menu. Seperti GRUB sebelumnya “menuentry” yang pertama di grub.cfg adalah 0, yang kedua adalah 1, dst.
GRUB_DEFAULT=saved – Menetapkan nama default entri menu dengan apa pun yang dipilih terakhir kali. Jika menu ditampilkan saat boot, entri terakhir yang dipilih akan disorot. Jika tidak ada tindakan yang diambil, pilihan ini akan boot pada akhir batas waktu atau jika menu tersembunyi.
grub-set-default diaktifkan ketika nilai ini diset ke “saved”. Anda dapat dengan cepat mengubah default OS / kernel dengan perintah ini.
Formatnya adalah “sudo grub-set-default X, dengan X sebagai posisi menuentry (dimulai dengan 0 sebagai entri pertama) atau string menu yang tepat. Contoh: sudo grub-set-default 3 atau sudo grub-set-default” ubuntu, Linux 2.6.31-14-generic ”
Untuk mendapatkan pilihan yang ada nomor menuentry (mulai dari 0) atau menuentry “string”, jalankan “grep menuentry /boot/grub/grub.cfg”
GRUB_DEFAULT=”xxxx” – Sebuah entri menu yang tepat, termasuk kutipan simbol, dapat juga digunakan. Dalam kasus ini, lokasi di menu tidak masalah.
Contoh: GRUB_DEFAULT = “Ubuntu, Linux 2.6.31-9-generic”
Untuk contoh bagaimana mengaktifkan pilihan “saved” dengan menu kustom, lihat bagian “Custom Pengguna Entries”.
GRUB_TIMEOUT = 5 – Tidak ada perubahan dari GRUB versi sebelumnya. Ini adalah jumlah detik sebelum entri default diboot secara otomatis.
Menetapkan nilai ini dengan -1 akan menyebabkan menu ditampilkan hingga pengguna membuat pilihan.
Untuk menampilkan menu pada setiap boot menggunakan nilai 1 atau lebih tinggi.
Perintah ini merefer ke perintah GRUB_HIDDEN_TIMEOUT. Jika layar hidden dinterup oleh tombol key press, counter GRUB_TIMEOUT dimulai dengan hitung mundur.
Selain mengedit file sebagai root, Anda juga dapat mengecek dan mengubah nilai timeout default, dengamenjalankan perintah berikut :
$ cat /boot/grub/menu.lst | grep ‘GRUB_TIMEOUT=’
$ sudo sed ’s/GRUB_TIMEOUT=5/GRUB_TIMEOUT=T/g’ -i /etc/default/grub
Perintah pertama mengecek batas waktu awal.
Perintah kedua mengganti batas waktu awal, Ganti T dengan nilai baru.
GRUB_HIDDEN_TIMEOUT = 0
Menu akan tersembunyi kecuali simbol # hadir pada awal baris ini.
(# GRUB_HIDDEN_TIMEOUT = 0)
Pengaturan standar pada awalnya bergantung pada keberadaan sistem operasi lain.
OS lain Terdeteksi: menu akan ditampilkan. (Garis akan dimulai dengan simbol #.)
Tidak ada OS lain Terdeteksi: menu akan disembunyikan.
Untuk bilangan bulat lebih besar dari 0, sistem akan berhenti sebentar, tapi tidak menampilkan menu, untuk masuk jumlah detik.
0 Menu tidak akan ditampilkan. Tidak akan ada penundaan. Ketika entri ini diatur ke 0:
Pengguna dapat memaksa menampilkan menu ketika boot komputer dengan menekan tombol SHIFT.
Selama boot, sistem akan memeriksa status tombol SHIFT. Jika tidak dapat menentukan status tombol SHIFT, penundaan akan memungkinkan pengguna untuk menampilkan menu dengan menekan tombol ESC
Jika diaktifkan, layar splash yang ditunjuk dalam 05_debian_theme akan ditampilkan. Pengaturan ini hanya menyembunyikan menu.
GRUB_HIDDEN_TIMEOUT_QUIET = true
true – Tidak ada hitung mundur ditampilkan. Layar akan kosong.
false – Sebuah counter akan ditampilkan pada layar kosong untuk durasi nilai GRUB_HIDDEN_TIMEOUT.
GRUB_DISTRIBUTOR =`lsb_release -i -s 2> /dev/null || echo Debian`
Menentukan nama deskriptif dalam entri menu. (Ubuntu, Xubuntu, Debian, dll)
GRUB_CMDLINE_LINUX
Jika ada, baris ini akan mengimpor setiap entri ke ujung ‘linux’ command line (Pada GRUB sebelumnya baris “kernel” ) untuk kedua mode normal dan recovery. Ini mirip dengan baris “altoptions” di menu.lst
GRUB_CMDLINE_LINUX_DEFAULT =”quiet splash”
Baris ini akan mengimpor setiap entri ke ujung baris ‘linux’ (pada GRUB sebelumny bariss “kernel”). Entri yang ditambahkan ke akhir hanya modus normal. Ini mirip dengan baris “defoptions” di menu.lst. Untuk layar hitam dengan proses boot ditampilkan dalam teks, hapus “quiet splash”. Untuk melihat gambar splash GRUB yang kental dengan keluaran teks, gunakan “splash”. Baris ini di mana instruksi lain, seperti “acpi = off” ditempatkan.
#GRUB_TERMINAL =console
Uncomment untuk menonaktifkan grafik terminal (grub-pc only)
#GRUB_DISABLE_LINUX_UUID =true
Uncomment jika anda tidak ingin GRUB melewati “root = UUID = xxx” parameter Linux
#GRUB_GFXMODE=640×480
Anda dapat menambahkan baris ini dan hapus simbol # untuk membuatnya aktif. Entry ini menetapkan resolusi menu grafis (ukuran teks menu). Memberikan resolusi yang didukung oleh kartu grafis pengguna (misalnya 640×480, 800×600, 1280×1024, dll). Pengaturan hanya berlaku untuk teks menu boot.
Dari menu GRUB2 Anda dapat menampilkan resolusi yang tersedia dengan mengetikkan “c” dan kemudian di “grub>” prompt ketik “vbeinfo”.
GRUB_DISABLE_LINUX_RECOVERY=true
Add or uncomment this line to prevent “Recovery” mode kernel options from appearing in the menu. Tambah atau uncomment baris ini untuk mencegah opsi “Recovery” mode tampil pada menu. Jika Anda menginginkan sebuah “Recovery” hanya untuk satu pilihan kernel, buatlah entri khusus di / etc/grub/40_custom.
GRUB_DISABLE_OS_PROBER=”true” – Mengaktifkan / Menonaktifkan alat penyelidik OS memeriksa partisi lain untuk sistem operasi, termasuk Windows, Linux, OSX dan Hurd.
/etc/grub.d/
File dalam folder ini dibaca selama eksekusi perintah “update-grub” atau “update-grub2″. Isinya diimpor ke /boot/grub/grub.cfg.
Urutan entri dalam menu grub berdasarkan urutan nama file. File dengan nama menggunakan angka mulai dijalankan sebelum yang diawali dengan huruf. Urutan file yang akan dijalankan menentukan urutan menu di grub.cfg.
Custom entri dapat ditambahkan ke file “40_custom” atau dalam file yang baru dibuat.
File yang dibuat harus dieksekusi untuk dimasukkan dalam file grub.cfg selama perintah “update-grub2″.
00_header
05_debian_theme : Mengatur warna latar belakang dan teks, serta tema
10_hurd menempatkan kernel Hurd
10_linux menempatkan kernel Linux berdasarkan hasil dari perintah “lsb_release”.
20_memtest86 +: Jika file / boot/memtest86 +.bin ada, itu akan dimasukkan sebagai item menu.
30_os-prober : Pencarian untuk Linux dan OS yang ada di partisi lain dan menyertakan mereka kedalam menu.
40_custom: Sebuah template untuk menambahkan entri menu kustom yang akan dimasukkan ke dalam grub.cfg atas eksekusi perintah “update-grub2″. File Ini dan file kustom lain harus dibuat executable agar bisa diimpor ke grub.cfg.
6. Menambahkan Entri ke GRUB2
Entri menu dapat ditambahkan ke grub.cfg secara otomatis atau manual.
Otomatis.
Ketika “update-grub” atau “update-grub2″ dijalankan, GRUB2 akan mencari kernel linux dan Sistem Operasi lainnya. Apa dan di mana didasarkan pada file yang terdapat di /etc/grub.d.
10_linux mencari kernel linux yang diinstal pada partisi yang sama.
30_os-prober mencari sistem operasi lain.
Custom User Entries (/etc/grub.d/40_custom).
Entri untuk grub.cfg dapat dimasukkan secara manual dengan menciptakan sebuah file di /etc/grub.d.
Nama file menentukan urutan dalam menu. 30_os-prober akan ditempatkan sebelum entri 40_custom yang juga diletakkan sebelum entri 50_my-sample.
Setiap file yang dibuat harus executable. Ini dapat dilakukan dengan perintah “sudo chmod +x /etc/grub.d/ filename “.
File dalam / etc / grub.d folder akan dibaca dan isinya dimasukkan kedalam grub.cfg ketika perintah “update-grub2″ dijalankan sebagai root.
Contoh entri. File ini menciptakan sebuah menu untuk menjalankan SystemRescueCd (sebelumnya diinstal) dari sebuah partisi yang dibuat pada sda10. Folder dan file harus telah disalin ke lokasi yang benar sesuai dengan SystemRescueCd jika Anda ingin benar-benar menggunakan entri ini.
Quote:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.
#Simply type menu entries you want to add after this comment.
#Be careful not to change
# the ‘exec tail’ line above.
echo “Adding SystemRescueCD” >&2
menuentry “System Rescue CD” {
set root = (hd0, 10)
linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
initrd /sysrcd/initram.igz
}
Perhatikan cara baru penamaan partisi. Devices mulai menghitung dari “0″ seperti yang dilakukan sebelumnya. sda ditunjuk sebagai “hd0″, sdb adalah “hd1″, dll Namun sekarang partisi pertama ditunjuk sebagai sda1. Menghitung partisi tidak dimulai dengan 0, sda5 adalah “5″.
Baris ‘echo “Menambahkan SystemRescueCd”> & 2′ tidak diperlukan. Memasukkannya ke dalam file memungkinkan baris ini dapat dilihat di terminal ketika “update-grub2″ dijalankan. Ia Memberikan umpan balik visual bahwa entri telah ditemukan dan dimasukkan. Entri, jika dalam format yang benar, akan dimasukkan dalam grug.cfg.
Tip: Jika anda ingin file kustom anda dimasukkan dimenu pada posisi paling atas buatlah file baru dan beri nama “07_xxxx”. Karena file di /etc/grub.d dibaca secara berurutan, mereka yang berada di “07_custom” akan ditempatkan sebelum “10_linux”. Saya sarankan tidak menamakan file menu kustom lebih rendah dari 06 sehingga setiap tema dijalankan dari 05_debian_theme diperbolehkan untuk berjalan sebelum menu kustom dibuat. Setelah membuat file, jalankan sudo update-grub dan kemudian periksa nilai “default” di /etc/default/grub. Jika tidak menunjuk ke menuentry yang benar, ubah nilai default untuk menuentry dengan nilai yang benar.
Menghilangkan memtest86 +: Untuk mencegah entri “memtest86 +” pada menu GRUB2 anda, hapus “executable” bit dari /etc/grub.d/20_memtest86 +. Anda dapat melakukannya melalui file browser dengan memilih “Properties (klik kanan), Permissions”, atau melalui baris perintah:
$ sudo chmod -x /etc/grub.d/20_memtest86+
Menghilangkan entri recovery mode: Edit /etc/default/grub dan tambahkan atau ubah baris ini:
Quote:
GRUB_DISABLE_LINUX_RECOVERY=true
Jika Anda memiliki versi lama dari /etc/grub.d/10_linux dan di atas tidak bekerja setelah mengupdate grub, Anda dapat mencegah entri “Recovery mode” dalam menu GRUB2, dengan mengedit /etc/grub.d/10_linux. Jika tidak ada pernyataan “if” mengenai recovery mode, tempatkan simbol komentar (#) di depan baris berikut (di sekitar baris 146) dari file lama:
Quote: Quote:
# linux_entry “${OS}, Linux ${version} (recovery mode)” \
# “single ${GRUB_CMDLINE_LINUX}”
Jika Anda ingin menyimpan satu “Recovery Entri” entri untuk jaga jaga, Anda dapat menambahkan sebuah entri ke /etc/grub.d/40_custom yang akan muncul di bagian bawah menu grub.
Membangun Customized Menu sendiri: Ok, anggaplah Anda adalah seorang yang gila kontrol dan hanya Anda ingin melihat apa yang Anda buat sendir tidak ada “memtest86 +” dan tanpa tambahan kernel. Berikut adalah cara melakukannya:
Jalankan sudo update-grub untuk mendapatkan kernel yang tersedia saat ini.
Salin yang listing “menuentry” yang dikehendaki dari /boot/grub/grub.cfg ke
/etc/grub.d/40_custom entrinya dimulai dengan kalimat “menuentry” dan diakhiri dengan baris yang berisi “}”.
Tambahkan item “menuentry” lain yang ingin Anda lihat pada menu boot.
Edit judul dari “menuentry” Setiap entri harus dimulai dengan baris “menuentry” dan diakhiri dengan “}” pada baris terakhir.
Hapus bit executable dari /etc/grub.d/10_linux, /etc/grub.d/20_memtest86 + dan / etc/grub.d/30_os-prober
Menghapus bit executable dari setiap file di /etc/grub.d akan membuatnya tidak dieksekusi saat update grub dilakukan
Perintahnya:
$ cd /etc/grub.d
$ sudo chmod -x 10_linux 20_memtest86+ 30_os-prober
Jalankan “sudo update-grub”
Hasilnya file /boot/grub/grub.cfg hanya berisi bagian untuk “00_header”, “05_debian_theme” dan “40_custom”.
File grub.cfg tidak akan diperbarui dengan penambahan kernel baru. Untuk menambahkan kernel baru, buatlah “10_linux” menjadi executable, kemudian jalankan “sudo update-grub” untuk merefresh kernel yang tersedia, kemudia ulangi petunjuk ini.
Menggabungkan opsi DEFAULT=save : Dengan maksud untuk mengaktifkan opsi “save default” yang mana GRUB2 akan pilih dari OS terakhir yang berhasil diboot maka opsi “DEFAULT=save” harus dimasukkan kedalam /etc/default/grub dan file 40_custom harus diedit.
Quote:
#! #! /bin/sh -e
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
. . ${libdir}/grub/grub-mkconfig_lib
echo “Adding SystemRescueCD & Custom Kernel” >&2
menuentry “Jaunty 2.6.28-15-custom” {
save_default_entry | sed -e “s/^/\t/”
set root=(hd0,7)
linux /boot/vmlinuz-2.6.28-15-custom root=UUID=12c55255-27b3-488b-hje7e-9dbe4e2esfg5 ro quiet splash
initrd /boot/initrd.img-2.6.28-15-custom
}
menuentry “SystemRescue” {
save_default_entry | sed -e “s/^/\t/”
set root=(hd0,6)
linux /sysrcd/rescuecd subdir=sysrcd
initrd /sysrcd/initram.igz
}
Manual Windows Entry (dengan /etc/grub.d/30_os-prober dibuat unexecutable)
Quote:
#! #! /bin/sh -e
echo “Adding Windows 43_custom” >&2
menuentry “Windows Vista 43_custom” {
insmod ntfs
set root=(hd0,1)
search –no-floppy –fs-uuid –set CFFCFF9EECFF7F49
chainloader +1
}
Jangan lupa untuk menjalankan “sudo update-grub” setelah melakukan perubahan pada file /etc/grub.d.
Mengedit secara manual grub.cfg (Tidak dianjurkan)
Pengeditan manual /boot/grub/grub.cfg tidak dianjurkan. Pikirkan grub.cfg sebagai hasil eksekusi, bukan yang dieksekusi. File yang harus diedit terkandung dalam folder /etc/grub.d dan file /etc/default/grub.
Dengan maksdu untuk mencegah para pengedit, grub.cfg dibuat hanya. Bahkan berusaha untuk membuka, mengedit, dan menyimpan file ini menggunakan akses root tidak dapat dilakukan sampai status ‘read-only’ berubah. Jikapun anda harus mengedit file ini, maka inilah kodenya:
Kode:
sudo chmod +w /boot/grub/grub.cfg sudo chmod + w
gksudo gedit /boot/grub/grub.cfg gksudo
Note: This file is returned to ‘read-only’ status anytime the update-grub command is run. Catatan: File ini kembali kestatus ‘read-only’ saat update-grub dijalankan.
7. Menghapus Entry dari GRUB2
Entri bisa dihapus dengan mengedit atau menghapus file di folder /etc/grub.d. File /boot/grub/grub.cfg memiliki status ‘read-only’ dan tidak perlu diedit.
Dengan Cara Otomatis.
Terlalu Banyak kernel? Kernel dapat dihapus melalui Synaptic atau dengan “apt-get remove” yang akan otomatis mengupdate grub.cfg dan tidak memerlukan tindakan tambahan dari user.
Di Synaptic, ketik nomor kernel di window pencarian di bagian kanan atas (misalnya – 2.6.28-11).
Temukan file “linux-image” dan “linux-headers” untuk kernel yang berlaku (misalnya – linux-image-2.6.26-11 atau “linux-image-2.6.26-11-generic).
Klik kanan dan pilih “Mark for Complete Removal” dan kemudian tekan tombol Apply pada menu utama.
Kernel akan dihapus dari sistem anda dan dari menu GRUB.
Jika Anda tidak tahu kernel yang sedang digunakan, masuk terminal dan ketik “uname-r”.
Banyak pengguna menyimpan satu kernel yang sebelumnya berjalan tanpa masalah.
Sistem Operasi lain yang telah dihapus dari komputer juga akan dihapus dari menu saat “update-grub2″ dijalankan sebagai root.
Untuk mencegah salah satu dari file /etc/init.d dari berjalan, hilangkan bit “executable”.
Contoh: Jika Anda tidak ingin melihat “Memtest86 +” , jalankan perintah ini:
sudo chmod -x /etc/grub.d/20_memtest86+
Jalankan perintah update-grub untuk memungkinkan perubahan dimasukkan dalam grub.cfg
Entri Buatan User.
Untuk menghapus menu entri buatan user, hapus file yang dibuat dari /etc/ grub.d folder.
Jika file kustom berisi beberapa entri, item item individual bisa dihapus dan yang lain-lain tetap dipertahankan.
Setelah file telah dihapus atau diedit, jalankan “update-grub2″ untuk memperbarui grub.cfg.
8. GRUB2 Splash Images
Kunjungi situs ini untuk melihat presentasi yang sangat baik guna membuat GRUB2:
http://members.iinet.net/~herman546/p20/GRUB2%20Splashimages.html
Ini adalah dasar-dasarnya:
Copy secara manual grub splash images ke dalam folder /usr/share/images/grub atau install GRUB2 splash image melalui synaptic atau jalankan perintah:
Code:
sudo apt-get install grub2-splashimages
Splash image GRUB2 dikendalikan oleh /etc/grub.d/05_debian_theme. Buka file ini untuk mengedit:
Code:
gksudo gedit /etc/grub.d/05_debian_theme
Cari baris berikut dan edit area yang disorot, ganti dengan gambar splash grub yang ingin Anda gunakan (terletak di /usr/share/images/grub):
Quote:
for i in {/boot/grub,/usr/share/images/grub}/ moreblue-orbit-grub . {png,tga} ;
Catatan: Ada titik (.) Setelah nama file.
At one point Grub 2 splash images were downloaded and stored in /usr/share/images/desktop.base If this is where your grub images are stored, change the address in the previous command accordingly ( … /usr/share/images/desktop-base} … ). Jika Gambar splash GRUB2 di-download dan disimpan di /usr/share/images/desktop.base Jika ini adalah tempat gambar grub disimpan, rubah alamat di perintah sebelumnya sesuai (… /usr/share/images/desktop-base …).
Simpan file, kemudian update GRUB2:
Code:
sudo update-grub2
9. Changing Menu Resolutions Mengubah Menu Resolusi
Jika pengguna ingin mengubah resolusi layar GRUB2 ketika menggunakan gambar splash ikuti langkah berikut:
1.Set resolusi yang diinginkan di /etc/default/grub
Ubah nilai GRUB_GFXMODE = (Contoh: GRUB_GFXMODE = 800×600)
Jika tidak yakin resolusi apa yang tersedia untuk GRUB 2 mereka dapat ditampilkan dengan mengetikkan vbeinfo dalam perintah GRUB2. Baris perintah diakses dengan mengetikkan “c” ketika menu utama ditampilkan.
2.Pilih sebuah gambar dengan ukuran yang sama dan edit /etc/grub.d/05_debian_theme
Nama gambar terletak di baris yang diawali dengan “for i in (/ boot”
Jika ukuran suatu gambar yang salah digunakan, menu tidak akan diposisikan dengan benar.
Gunakan editor gambar pilihan anda untuk membuat / mengubah ukuran gambar ke ukuran yang benar.
Pengguna mungkin dapat melihat ukuran gambar melalui Properties dalam file browser (periksa tab Image Properties dalam nautilus ).
3.Jalankan update-grub sebagai root untuk menambahkan pengaturan baru ke /boot/grub/grub.cfg
10. Bagaimana Cara Boot ke Recovery Mode tanpa Menu Option
1.Jika Anda memiliki GRUB2 yang diset untuk boot tanpa menampilkan menu sama sekali, terus tombol SHIFT hingga menampilkan menu. (Dalam GRUB sebelumnya tombol ESC.)
2.Lalu arahkan panah ke kernel yang ingin Anda boot.
3.Tekan E
4.Geser kursor ke ujung baris “linux / boot / vmlinuz ….”, kemudian hapus”quiet” dan/atau “splash”. Tambahkan kata ” single ” pada akhir baris.
5.Tekan CTRL-X untuk booting Recovery menu.
11. Uninstall GRUB2
Command line akan menghasilkan uninstall and reinstallation yang bersih. Ketika menambahkan dan menghapus paket-paket yang dapat dilakukan dengan Synaptic, ada langkah-langkah tertentu yang harus diselesaikan dalam terminal.
Buka terminal: Applications, Accessories, Terminal.
Buat salinan cadangan dari file dan folder utama GRUB2
Kode:
sudo cp /etc/default/grub /etc/default/grub.old
sudo cp -R /etc/grub.d /etc/grub.d.old
sudo cp -R /boot/grub /boot/grub.old
Hapus GRUB 2
Kode:
sudo apt-get purge grub2 grub-pc
Pengguna akan diperingatkan bahwa sistem tidak akan bootable tanpa menginstal bootloader lain.
Setelah paket dihapus, banyak file-file tersebut yang masih tetap berada di ‘/boot/grub’
Install GRUB 0,97
Kode:
sudo apt-get install grub
Dengan “grub” yang terinstal, pengguna harus tetap menciptakan file “menu.lst”dan’’stage1/stage2”.
Kode:
sudo update-grub
Generate tab ”menu.lst” ke “Yes” saat diminta.
Kode:
sudo grub-install /dev/sdX
Pilih perangkat yang benar (sda, sdb, dll), biasanya dimana tempat ubuntu diinstall.
Buat file ‘’stage1” & ‘’stage2” dalam ”/boot/grub” dan tulis ke MBR.
Reboot
12. Menginstal ulang GRUB2 dari LiveCD
Jika Anda tidak dapat boot dari GRUB 2 dan perlu untuk menginstallnya kembali:
Boot ke LiveCD Karmic 9,10 Desktop.
Buka terminal – Aplikasi, Accessories, Terminal.
Tentukan partisi sistem normal anda – `sudo fdisk -l` (lowercase L)
Jika Anda tidak yakin, jalankan `df -Th`. Lhat ukuran disk yang benar dan formatnya ext3 atau ext4.
Mount partisi sistem normal Anda:
Kode:
sudo mount /dev/sdXX /mnt
Catatan: Sesuaikan dengan partisi yang benar: sda1, sdb5, dll
Catatan: GRUB 2 menghitung drive pertama sebagai “0″, tapi partisi pertama sebagai “1″
Jka anda memiliki partisi boot terpisah:
Kode:
sudo mount /dev/sdYY /mnt/boot
Catatan: Jika Anda memiliki partisi sistem lain seperti “/ usr” ini juga harus dimount dengan cara yang sama.
Mount perangkat:
Kode:
sudo mount –bind /dev/ /mnt/dev
Chroot ke sistem normal perangkat Anda:
Kode:
sudo chroot /mnt
Instal ulang GRUB 2:
Kode:
sudo grub-install /dev/sdX
Catatan: Sesuaikan dengan perangkat yang benar – sda, sdb, dll, Tanpa menentukan nomor partisi.
Verifikasi instalasi:
Kode:
sudo grub-install –recheck /dev/sdX
Catatan: Sesuaikan perangkat yang benar – sda, sdb, dll, Tanpa menentukan nomor partisi.
Keluar dari chroot: CTRL-D
Unmount perangkat:
Kode:
sudo umount /mnt/dev
Jika Anda mount partisi /boot, secara terpisah:
Kode:
sudo umount /mnt/boot
Unmount perangkat terakhir:
Kode:
sudo umount /mnt
Reboot.
13. Booting dari Rescue Mode
Pada prompt grub rescue>, lakukan tindakan berikut ini untuk mencoba boot ke kernel terbaru:
ls Ini akan menampilkan perangkat dan partisi yang dikenal. From this information, the user must determine the device and partition on which the system is installed. Dari informasi ini, pengguna harus menentukan perangkat dan partisi tempat sistem terinstal.
set root =/dev/sdXY X adalah perangkat / drive, dimulai dengan 0. Y adalah partisi, dimulai dengan 1. (Contoh: (hd0, 1) adalah sda1. (Hd3, 5) adalah sdc5.
ls /boot untuk periksa isinya. Maka akan terlihat kernel kernel, initrd images folder grub.
insmod /boot/grub/_linux.mod Load modul linux. Tanpa meload modul ini, user akan menerima pesan “unknown command linux” ketika mencoba untuk meload kernel linux.
linux /vmlinuz root=/dev/sdXY ro Load kernel linux, ganti penomoran untuk “X” dan “Y” (contoh: sda1). Maka pengguna akan melihat pesan yang menunjukkan kernel telah dimuat.
initrd /initrd.img Load initrd image. Ketika menekan enter, pengguna mungkin melihat atau bisa juga tidak melihat pesan di terminal.
boot
14. Masalah masalah khusus
Jika anda menemukan suatu kasus bahwa baris dibawah ini perlu dihapus untuk bisa boot secara normal :
Quote:
recordfail=1
save_env recordfail
Buka / etc/grub.d/10_linux dengan hak admin:
Kode:
gksu gedit /etc/grub.d/10_linux
Cari bagian ini dan komentar baris dalam huruf tebal;
Quote:
linux_entry ()
{
menuentry “$1″ {
recordfail=1
save_env recordfail
Ubah ke:
Quote:
- linux_entry ()
{
menuentry “$1″ {
# recordfail=1
# save_env recordfail
Simpan file, kemudian jalankan
Kode:
sudo update-grub
Dua baris tersebut tidak lagi muncul ketika Anda menekan E untuk melihat pilihan di menu GRUB2. Anda akan melihat baris “save_env save_entry” tetapi ini harusnya tidak menyebabkan kegagalan jika Anda berhasil boot sebelumnya.
GRUB2 hang 10-30 Detik, diantara saat loading GRUB2 dan Menampilkan menu.
Ini adalah bug yang dikenal yang dapat disebabkan oleh GRUB 2 dan / boot yang dimuat pada partisi yang berbeda. Untuk memperbaiki masalah, jalankan:
Kode:
sudo dpkg-reconfigure grub-pc
Pilih untuk meload GRUB2 pada perangkat yang sama. In your system BIOS, change the drive to boot from first to the drive with the /boot partition. Pada BIOS di sistem anda, buatlah partisi drive tempat /boot terinstall menjadi perangkat boot pertama.
Sumber : http://jakarta.linux.or.id