LFCS Cara Mengkonfigurasi dan Memecahkan Masalah Grand Unified Bootloader (Grub) - Bagian 13

LFCS Cara Mengkonfigurasi dan Memecahkan Masalah Grand Unified Bootloader (Grub) - Bagian 13

Karena perubahan terbaru dalam tujuan ujian sertifikasi LFCS yang efektif dari 2 Februari 2016, Kami menambahkan topik yang diperlukan ke seri LFCS yang diterbitkan di sini. Untuk mempersiapkan ujian ini, Anda juga sangat dianjurkan untuk mengikuti seri LFCE.

LFCS: Mengkonfigurasi dan memecahkan masalah grub boot loader - Bagian 13

Dalam artikel ini kami akan memperkenalkan Anda untuk membatalkan dan menjelaskan mengapa boot loader diperlukan, dan bagaimana itu menambah keserbagunaan pada sistem.

Proses boot Linux dari saat Anda menekan tombol daya komputer Anda sampai Anda mendapatkan sistem fungsional sepenuhnya mengikuti urutan tingkat tinggi ini:

  1. 1. Proses yang dikenal sebagai POS (Tes mandiri power-on) melakukan pemeriksaan keseluruhan pada komponen perangkat keras komputer Anda.
  2. 2. Kapan POS Menyelesaikan, itu meneruskan kontrol ke boot loader, yang pada gilirannya memuat kernel linux dalam memori (bersama dengan initramfs) dan menjalankannya. Boot loader yang paling banyak digunakan di Linux adalah Grand Unified Boot Loader, atau Grub Ringkasnya.
  3. 3. Kernel memeriksa dan mengakses perangkat keras, dan kemudian menjalankan proses awal (sebagian besar dikenal dengan nama generiknya "init”) Yang pada gilirannya melengkapi boot sistem dengan memulai layanan.

Di dalam Bagian 7 Dari seri ini (“Sysvinit, Upstart, dan Systemd”) kami memperkenalkan sistem dan alat manajemen layanan yang digunakan oleh distribusi Linux modern. Anda mungkin ingin meninjau artikel itu sebelum melanjutkan lebih lanjut.

Memperkenalkan grub boot loader

Dua mayor Grub Versi (v1 terkadang dipanggil Grub Legacy Dan v2) dapat ditemukan dalam sistem modern, meskipun sebagian besar distribusi digunakan v2 secara default dalam versi terbaru mereka. Hanya Red Hat Enterprise Linux 6 dan turunannya masih digunakan v1 Hari ini.

Dengan demikian, kami akan fokus terutama pada fitur v2 dalam panduan ini.

Terlepas dari Grub Versi, boot loader memungkinkan pengguna untuk:

  1. 1). memodifikasi cara sistem berperilaku dengan menentukan kernel yang berbeda untuk digunakan,
  2. 2). Pilih antara sistem operasi alternatif untuk boot, dan
  3. 3). Tambahkan atau edit bait konfigurasi untuk mengubah opsi boot, antara lain.

Hari ini, Grub dipertahankan oleh Gnu Proyek dan didokumentasikan dengan baik di situs web mereka. Anda didorong untuk menggunakan dokumentasi resmi GNU saat memeriksa panduan ini.

Saat sistem sepatu bot Anda disajikan dengan berikut Grub layar di konsol utama. Awalnya, Anda diminta untuk memilih antara kernel alternatif (secara default, sistem akan boot menggunakan kernel terbaru) dan diizinkan untuk memasukkan a Grub baris perintah (dengan C) atau edit opsi boot (dengan menekan e kunci).

Layar boot grub

Salah satu alasan mengapa Anda akan mempertimbangkan booting dengan kernel yang lebih lama adalah perangkat perangkat keras yang dulu berfungsi dengan baik dan telah dimulai “bertingkah“Setelah peningkatan (lihat tautan ini di Askubuntu forum untuk contoh).

Itu Grub v2 Konfigurasi dibaca pada boot dari /boot/grub/grub.CFG atau /boot/grub2/grub.CFG, sedangkan /boot/grub/grub.conf atau /boot/grub/menu.lst digunakan di v1. File -file ini tidak akan diedit dengan tangan, tetapi dimodifikasi berdasarkan konten /etc/default/grub dan file yang ditemukan di dalam /etc/grub.D.

Di sebuah Centos 7, Inilah file konfigurasi yang dibuat saat sistem pertama kali diinstal:

Grub_timeout = 5 grub_distributor = "$ (Sed's, rilis .*$ ,, G ' /etc /System-Release) "grub_default = saved grub_disable_submenu = true grub_terminal_output =" konsol "grub_cmdline_linux =" vconsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.LVM.lv = centos_centos7-2/root rhgb diam "grub_disable_recovery =" true " 

Selain dokumentasi online, Anda juga dapat menemukan manual GNU Grub menggunakan info sebagai berikut:

# info grub 

Jika Anda tertarik secara khusus di opsi yang tersedia untuk /etc/default/grub, Anda dapat memohon bagian konfigurasi secara langsung:

# info -f grub -n 'konfigurasi sederhana' 

Menggunakan perintah di atas Anda akan mencari tahu itu Grub_timeout Mengatur waktu antara momen ketika layar awal muncul dan booting otomatis sistem dimulai kecuali terganggu oleh pengguna. Saat variabel ini diatur ke -1, boot tidak akan dimulai sampai pengguna membuat pilihan.

Saat beberapa sistem operasi atau kernel dipasang di mesin yang sama, Grub_default membutuhkan nilai integer yang menunjukkan entri OS atau kernel mana di layar awal grub harus dipilih untuk boot secara default. Daftar entri dapat dilihat tidak hanya di layar splash yang ditunjukkan di atas, tetapi juga menggunakan perintah berikut:

Di Centos dan OpenSUSE:

# awk -f \ "$ 1 ==" menuentry "print $ 2 '/boot/grub2/grub.CFG 

Di Ubuntu:

# awk -f \ "$ 1 ==" menuentry "print $ 2 '/boot/grub/grub.CFG 

Dalam contoh yang ditunjukkan pada gambar di bawah ini, jika kita ingin boot dengan versi kernel 3.10.0-123.EL7.x86_64 (Entri ke -4), kita perlu mengatur Grub_default ke 3 (Entri dinomori secara internal dimulai dengan nol) sebagai berikut:

Grub_default = 3 
Sistem boot dengan versi kernel lama

Salah satu variabel konfigurasi grub terakhir yang menarik adalah Grub_cmdline_linux, yang digunakan untuk memberikan opsi ke kernel. Opsi yang dapat diteruskan melalui grub ke kernel didokumentasikan dengan baik dalam file parameter kernel dan di man 7 bootparam.

Opsi saat ini di saya Centos 7 Server adalah:

Grub_cmdline_linux = "vconsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.LVM.lv = centos_centos7-2/root rhgb diam " 

Mengapa Anda ingin memodifikasi parameter kernel default atau melewati opsi tambahan? Secara sederhana, mungkin ada saat -saat ketika Anda perlu memberi tahu kernel parameter perangkat keras tertentu yang mungkin tidak dapat menentukan dengan sendirinya, atau untuk mengganti nilai -nilai yang akan dideteksinya.

Ini terjadi pada saya belum lama ini ketika saya mencoba Vektor Linux, turunan dari Slackware, di laptop saya yang berusia 10 tahun. Setelah instalasi itu tidak mendeteksi pengaturan yang tepat untuk kartu video saya jadi saya harus memodifikasi opsi kernel yang melewati grub untuk membuatnya berfungsi.

Contoh lain adalah ketika Anda perlu membawa sistem ke mode pengguna tunggal untuk melakukan tugas pemeliharaan. Anda dapat melakukan ini dengan menambahkan kata single ke Grub_cmdline_linux dan me -reboot:

Grub_cmdline_linux = "vconsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.LVM.lv = centos_centos7-2/root rhgb diam lajang" 

Setelah mengedit /etc/defalt/grub, Anda perlu berlari UPDATE-GRUB (Ubuntu) atau grub2 -mkconfig -o/boot/grub2/grub.CFG (Centos Dan OpenSuse) setelah itu untuk memperbarui grub.CFG (Jika tidak, perubahan akan hilang saat boot).

Perintah ini akan memproses file konfigurasi boot yang disebutkan sebelumnya untuk memperbarui grub.CFG. Metode ini memastikan perubahan bersifat permanen, sedangkan opsi melewati grub pada waktu boot hanya akan berlangsung selama sesi saat ini.

Memperbaiki masalah linux grub

Jika Anda menginstal sistem operasi kedua atau jika file konfigurasi grub Anda rusak karena kesalahan manusia, ada cara Anda bisa mendapatkan sistem Anda kembali dan dapat boot lagi.

Di layar awal, tekan C Untuk mendapatkan baris perintah grub (ingatlah bahwa Anda juga dapat menekan e Untuk mengedit opsi boot default), dan gunakan bantuan untuk membawa perintah yang tersedia di prompt grub:

Perbaiki masalah konfigurasi grub di Linux

Kami akan fokus ls, yang akan mencantumkan perangkat dan sistem file yang diinstal, dan kami akan memeriksa apa yang ditemukannya. Pada gambar di bawah ini kita dapat melihat bahwa ada 4 hard drive (HD0 melalui HD3).

Hanya HD0 tampaknya telah dipartisi (sebagaimana dibuktikan oleh msdos1 Dan msdos2, Di mana 1 Dan 2 adalah nomor partisi dan MSDOS adalah skema partisi).

Sekarang mari kita periksa partisi pertama HD0 (msdos1) untuk melihat apakah kita dapat menemukan grub di sana. Pendekatan ini akan memungkinkan kami untuk boot Linux dan di sana menggunakan alat tingkat tinggi lainnya untuk memperbaiki file konfigurasi atau menginstal ulang Grub sama sekali jika diperlukan:

# LS (HD0, MSDOS1)/ 

Seperti yang dapat kami lihat di area yang disorot, kami menemukan grub2 Direktori di partisi ini:

Temukan konfigurasi grub

Setelah kami yakin bahwa Grub berada di (HD0, MSDOS1), mari kita beri tahu Grub di mana menemukan file konfigurasinya dan kemudian menginstruksikannya untuk mencoba meluncurkan menunya:

Set awalan = (hd0, msdos1)/grub2 set root = (hd0, msdos1) insmod normal normal 
Temukan dan Luncurkan Menu Grub

Kemudian di menu grub, pilih entri dan tekan Memasuki untuk boot menggunakannya. Setelah sistem boot, Anda dapat mengeluarkan grub2-install /dev /sdx Perintah (Ubah sdx dengan perangkat yang ingin Anda instal grub). Informasi boot kemudian akan diperbarui dan semua file terkait dipulihkan.

# grub2-install /dev /sdx 

Skenario lain yang lebih kompleks didokumentasikan, bersama dengan perbaikan yang disarankan, dalam panduan pemecahan masalah Ubuntu Grub2. Konsep yang dijelaskan ada yang valid untuk distribusi lain juga.

Ringkasan

Dalam artikel ini kami telah memperkenalkan Anda kepada Grub, menunjukkan di mana Anda dapat menemukan dokumentasi baik secara online maupun offline, dan menjelaskan cara mendekati skenario di mana suatu sistem telah berhenti boot dengan benar karena masalah yang berhubungan dengan bootloader.

Untungnya, Grub adalah salah satu alat yang paling baik didokumentasikan dan Anda dapat dengan mudah menemukan bantuan baik di dokumen yang diinstal atau online menggunakan sumber daya yang telah kami bagikan dalam artikel ini.

Apakah Anda memiliki pertanyaan atau komentar? Jangan ragu untuk memberi tahu kami menggunakan formulir komentar di bawah ini. Kami menantikan kabar dari Anda!

Menjadi Administrator Sistem Bersertifikat Linux