LFCS Cara mengkonfigurasi dan menyelesaikan masalah Bootloader Unified Grand (GRUB) - Bahagian 13

LFCS Cara mengkonfigurasi dan menyelesaikan masalah Bootloader Unified Grand (GRUB) - Bahagian 13

Kerana perubahan baru -baru ini dalam objektif peperiksaan pensijilan LFCS yang berkesan dari 2 Februari 2016, Kami menambah topik yang diperlukan untuk siri LFCS yang diterbitkan di sini. Untuk mempersiapkan peperiksaan ini, anda sangat digalakkan mengikuti siri LFCE juga.

LFCS: Konfigurasikan dan Selesaikan GRUB Boot Loader - Bahagian 13

Dalam artikel ini, kami akan memperkenalkan anda kepada grub dan menjelaskan mengapa pemuat boot diperlukan, dan bagaimana ia menambah serba boleh kepada sistem.

Proses boot Linux dari masa anda menekan butang kuasa komputer anda sehingga anda mendapat sistem berfungsi sepenuhnya mengikuti urutan peringkat tinggi ini:

  1. 1. Proses yang dikenali sebagai Jawatan (Ujian diri kuasa) melakukan pemeriksaan keseluruhan pada komponen perkakasan komputer anda.
  2. 2. Bila Jawatan Selesai, ia melepasi kawalan ke loader boot, yang seterusnya memuatkan kernel linux dalam ingatan (bersama -sama dengan initramfs) dan melaksanakannya. Loader boot yang paling banyak digunakan di linux adalah Loader Boot Bersepadu Grand, atau Grub untuk pendek.
  3. 3. Kernel memeriksa dan mengakses perkakasan, dan kemudian menjalankan proses awal (kebanyakannya dikenali dengan nama generiknya "di dalamnya") Yang seterusnya melengkapkan boot sistem dengan memulakan perkhidmatan.

Dalam Bahagian 7 Dari siri ini ("Sysvinit, Upstart, dan Systemd") Kami memperkenalkan sistem pengurusan dan alat perkhidmatan yang digunakan oleh pengagihan Linux moden. Anda mungkin ingin menyemak artikel itu sebelum meneruskan lebih jauh.

Memperkenalkan Loader Boot Grub

Dua Major Grub Versi (v1 kadang -kadang dipanggil Warisan grub dan v2) boleh didapati dalam sistem moden, walaupun kebanyakan pengagihan digunakan v2 Secara lalai dalam versi terbaru mereka. Hanya Red Hat Enterprise Linux 6 dan derivatifnya masih digunakan v1 Hari ini.

Oleh itu, kita akan memberi tumpuan terutamanya kepada ciri -ciri v2 Dalam panduan ini.

Tanpa mengira Grub versi, pemuat boot membolehkan pengguna untuk:

  1. 1). Ubah suai cara sistem berkelakuan dengan menentukan kernel yang berbeza untuk digunakan,
  2. 2). Pilih antara sistem pengendalian alternatif untuk boot, dan
  3. 3). Tambahkan atau edit stanza konfigurasi untuk menukar pilihan boot, antara lain.

Hari ini, Grub dikekalkan oleh Gnu projek dan didokumentasikan dengan baik di laman web mereka. Anda digalakkan menggunakan dokumentasi rasmi GNU semasa melalui panduan ini.

Apabila butiran sistem anda dibentangkan dengan yang berikut Grub skrin di konsol utama. Pada mulanya, anda diminta untuk memilih antara kernel alternatif (secara lalai, sistem akan boot menggunakan kernel terkini) dan dibenarkan masuk Grub baris arahan (dengan c) atau edit pilihan boot (dengan menekan e kunci).

Skrin boot grub

Salah satu sebab mengapa anda akan mempertimbangkan boot dengan kernel yang lebih tua adalah peranti perkakasan yang digunakan untuk berfungsi dengan baik dan telah bermula "berlakon"Selepas naik taraf (rujuk pautan ini di Askubuntu Forum untuk contoh).

The 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 dalam v1. Fail -fail ini tidak boleh diedit dengan tangan, tetapi diubahsuai berdasarkan kandungan /etc/lalai/grub dan fail yang terdapat di dalam /etc/grub.d.

Didalam Centos 7, Inilah fail konfigurasi yang dibuat apabila sistem pertama dipasang:

Grub_timeout = 5 grub_distributor = "$ (sed's, Release .*$ ,, g ' /etc /sistem-pelepasan) "grub_default = disimpan 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 tenang "grub_disable_recovery =" true " 

Sebagai tambahan kepada dokumentasi dalam talian, anda juga boleh mencari manual GNU Grub menggunakan maklumat seperti berikut:

# info grub 

Sekiranya anda berminat secara khusus dalam pilihan yang tersedia untuk /etc/lalai/grub, Anda boleh menggunakan bahagian konfigurasi secara langsung:

# info -f grub -n 'konfigurasi mudah' 

Menggunakan arahan di atas anda akan mengetahui bahawa Grub_timeout Menetapkan masa antara saat ketika skrin awal muncul dan boot automatik sistem bermula kecuali terganggu oleh pengguna. Apabila pemboleh ubah ini ditetapkan ke -1, Boot tidak akan dimulakan sehingga pengguna membuat pilihan.

Apabila pelbagai sistem operasi atau biji dipasang di mesin yang sama, Grub_default Memerlukan nilai integer yang menunjukkan entri OS atau kernel yang mana di skrin awal grub harus dipilih untuk boot secara lalai. Senarai penyertaan boleh dilihat bukan sahaja dalam skrin percikan yang ditunjukkan di atas, tetapi juga menggunakan arahan 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 dalam imej di bawah, jika kita ingin boot dengan versi kernel 3.10.0-123.EL7.x86_64 (Entri ke -4), kita perlu menetapkan Grub_default ke 3 (Penyertaan dimulakan secara dalaman dengan sifar) seperti berikut:

Grub_default = 3 
Sistem boot dengan versi kernel lama

Satu pemboleh ubah konfigurasi grub terakhir yang mempunyai minat khusus adalah Grub_cmdline_linux, yang digunakan untuk lulus pilihan ke kernel. Pilihan yang boleh dilalui melalui grub ke kernel didokumentasikan dengan baik dalam fail Parameter Kernel dan dalam BootParam Man 7.

Pilihan semasa di saya Centos 7 pelayan 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 tenang " 

Mengapa anda mahu mengubah suai parameter kernel lalai atau lulus pilihan tambahan? Secara ringkas, mungkin ada masa apabila anda perlu memberitahu parameter perkakasan tertentu kernel bahawa ia mungkin tidak dapat menentukan sendiri, atau untuk mengatasi nilai -nilai yang akan dikesan.

Ini berlaku kepada saya tidak lama dahulu ketika saya mencuba Vektor Linux, derivatif Slackware, di komputer riba berusia 10 tahun saya. Selepas pemasangan, ia tidak mengesan tetapan yang tepat untuk kad video saya jadi saya terpaksa mengubahsuai pilihan kernel yang dilalui melalui grub untuk menjadikannya berfungsi.

Contoh lain ialah apabila anda perlu membawa sistem ke mod pengguna tunggal untuk melaksanakan tugas penyelenggaraan. Anda boleh melakukan ini dengan memasukkan kata tunggal ke Grub_cmdline_linux dan 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 tenang bujang" 

Selepas mengedit /etc/defalt/grub, anda perlu berlari Update-Grub (Ubuntu) atau grub2 -mkconfig -o/boot/grub2/grub.cfg (Centos dan opensuse) selepas itu dikemas kini grub.cfg (Jika tidak, perubahan akan hilang apabila boot).

Perintah ini akan memproses fail konfigurasi boot yang disebut tadi untuk mengemas kini grub.cfg. Kaedah ini memastikan perubahan kekal, sementara pilihan yang diluluskan melalui grub pada masa boot hanya akan bertahan semasa sesi semasa.

Memperbaiki masalah grub linux

Sekiranya anda memasang sistem operasi kedua atau jika fail konfigurasi grub anda rosak kerana kesilapan manusia, ada cara anda dapat mengembalikan sistem anda dan dapat boot lagi.

Di skrin awal, tekan c Untuk mendapatkan baris arahan grub (ingat bahawa anda juga boleh menekan e untuk mengedit pilihan boot lalai), dan gunakan bantuan untuk membawa arahan yang ada di GRUB Prompt:

Betulkan masalah konfigurasi grub di linux

Kami akan memberi tumpuan ls, yang akan menyenaraikan peranti dan sistem fail yang dipasang, dan kami akan meneliti apa yang ia dapati. Dalam gambar di bawah kita dapat melihat bahawa terdapat 4 cakera keras (HD0 melalui HD3).

Hanya HD0 nampaknya telah dibahagikan (seperti yang dibuktikan oleh MSDOS1 dan MSDOS2, di mana 1 dan 2 Adakah nombor partition dan MSDOS adalah skim pembahagian).

Mari kita periksa partition pertama di HD0 (MSDOS1) untuk melihat sama ada kita dapat mencari grub di sana. Pendekatan ini akan membolehkan kami boot Linux dan menggunakan alat peringkat tinggi lain untuk membaiki fail konfigurasi atau memasang semula grub sama sekali jika diperlukan:

# LS (HD0, MSDOS1)/ 

Seperti yang dapat kita lihat di kawasan yang diserlahkan, kami dapati grub2 Direktori dalam partition ini:

Cari konfigurasi grub

Sebaik sahaja kita yakin bahawa grub tinggal di (HD0, MSDOS1), mari kita beritahu Grub di mana untuk mencari fail konfigurasinya dan kemudian mengarahkannya untuk cuba melancarkan menunya:

Tetapkan awalan = (hd0, msdos1)/grub2 set root = (hd0, msdos1) insmod normal normal 
Cari dan lancarkan menu grub

Kemudian di menu grub, pilih entri dan tekan Masukkan Untuk boot menggunakannya. Sebaik sahaja sistem telah booted anda boleh mengeluarkan grub2-install /dev /sdx perintah (perubahan SDX dengan peranti yang anda mahu pasang grub dihidupkan). Maklumat boot kemudiannya akan dikemas kini dan semua fail yang berkaitan dipulihkan.

# grub2-install /dev /sdx 

Senario lain yang lebih kompleks didokumenkan, bersama dengan pembetulan yang dicadangkan, dalam panduan penyelesaian masalah Ubuntu Grub2. Konsep -konsep yang dijelaskan ada yang sah untuk pengagihan lain juga.

Ringkasan

Dalam artikel ini, kami telah memperkenalkan anda kepada grub, menunjukkan di mana anda dapat mencari dokumentasi dalam talian dan luar talian, dan menjelaskan cara mendekati senario di mana sistem telah berhenti boot dengan betul disebabkan oleh isu yang berkaitan dengan bootloader.

Nasib baik, Grub adalah salah satu alat yang paling didokumentasikan dan anda dapat dengan mudah mencari bantuan sama ada dalam dokumen yang dipasang atau dalam talian menggunakan sumber yang telah kami kongsi dalam artikel ini.

Adakah anda mempunyai soalan atau komen? Jangan teragak -agak untuk memberitahu kami menggunakan borang komen di bawah. Kami berharap untuk mendengar daripada anda!

Menjadi Pentadbir Sistem Bersertifikat Linux