Apakah mungkin memverifikasi instalasi grub tanpa me-reboot?


24

Saya sudah sering digigit oleh hal ini, dan hari ini setelah opensslpembaruan di server saya grub mengeluh bahwa saya harus menginstalnya lagi karena "hard disk yang sebelumnya diinstal tidak ada".

Saya memiliki instalasi raid 1 dengan pengaturan berikut (sesuai dengan bootinfoscript):

> ============================= Boot Info Summary: ===============================
> 
>  => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at
> sector 1 of the same hard drive for core.img. core.img is at this location and looks
>     for (mduuid/d2a04f98760e2b3cc23ba87845667605)/grub on this drive.  
>
> => Grub2 (v1.99) is installed in the MBR of /dev/sdb and looks at sector 1 of
>     the same hard drive for core.img. core.img is at this location and looks
>     for (mduuid/d2a04f98760e2b3cc23ba87845667605)/grub on this drive.

My mount points are:

> /dev/md2 on / type ext4 (rw) 

> /dev/md1 on /boot type ext3 (rw)

And mduuid seems to match the ones bootinfoscript mentions:

> ls -l /dev/disk/by-id/md-uuid-*
>
> lrwxrwxrwx 1 root root 9 Mar 19 11:37 /dev/disk/by-id/md-uuid-38048286:e3004e47:510ca3e1:2bae3f2e -> ../../md2 
>
> lrwxrwxrwx 1 root root 9 Mar 19 11:37 /dev/disk/by-id/md-uuid-d2a04f98:760e2b3c:c23ba878:45667605 -> ../../md1 
>
> lrwxrwxrwx 1 root root 9 Mar 19 11:37 /dev/disk/by-id/md-uuid-e099b695:0143bb58:e4ef7645:0f22ce0b -> ../../md0

Menjalankan grub-install berfungsi, tetapi saya ingin memastikan bahwa setelah reboot grub akan benar-benar mem-boot partisi saya.

Bagaimana saya bisa memverifikasinya?


1
Saya tidak menggunakan atau benar-benar tahu RAID, tetapi Anda menginstal grub ke root RAID bukan ke MBR drive. Jika Anda menjalankan Boot-Repair, Anda mungkin akan mendapatkan pesan seperti ini. Tidak ada boot loader yang dipasang di MBR dari / dev / mapper / isw_cdjacjeebj_VOLUME_0. Di mana mapper adalah volume RAID Anda.
oldfred

Jawaban:


19

Saya tidak berpikir Anda bisa memeriksa apakah ini akan berhasil atau tidak sebelum mencoba melakukannya, tetapi Anda bisa mendapatkan preview GRUB Anda secara instan sehingga Anda dapat yakin bahwa konfigurasi baru Anda dimuat dengan benar di GRUB.

Ini dapat dicapai dengan menggunakan alat yang disebut grub-emu.

man grub-emu

NAME
       grub-emu - GRUB emulator

SYNOPSIS
       grub-emu [OPTION]...

DESCRIPTION
       GRUB emulator.

       -r, --root-device=DEV
              use DEV as the root device [default=guessed]

       -m, --device-map=FILE
              use FILE as the device map [default=/boot/grub/device.map]

       -d, --directory=DIR
              use GRUB files in the directory DIR [default=/boot/grub]

       -v, --verbose
              print verbose messages

Mudah menginstal grub-emumenggunakan baris perintah:

sudo apt-get install grub-emu

Untuk menjalankannya cukup gunakan terminal untuk menjalankan perintah ini:

grub-emu

1
Apakah ini tes yang dapat diandalkan untuk instalasi grub2? Juga, input keyboard sepertinya tidak berfungsi untuk menu yang muncul; apakah ada trik untuk mengaktifkannya?
Michael Scheper

Saya tidak bisa menutup grub-emu, satu-satunya cara untuk menghentikannya adalah pkill -SIGKILL -fe grub-emu, input keyboard tidak berfungsi dengan baik
Aquarius Power

1
@MichaelScheper ini memperbaiki interaktivitas serverfault.com/a/847429/163750 :). Pada dasarnya, xterm -e grub-emudan pertahankan fokus pada xterm bukan jendela grub-emu!
Aquarius Power

4

Jawaban ini digunakan file -s /dev/sdauntuk melihat apakah GRUB MBR telah berhasil diinstal. Selain itu, Anda pasti dapat memeriksa ulang nilai-nilai /boot/grub/grub.cfguntuk memastikan UUID cocok dengan nilai-nilai di /dev/disk/by-uuid, dan memastikan bahwa semuanya terlihat benar /boot/grub/device.map. Jika file itu salah, Anda akan mengalami masalah dengan spesifikasi (hdX) di grub.cfg.

Mengelola file-file ini secara manual tidak diperlukan meskipun jika Anda menggunakan update-grubsetelah menginstal grub pada drive pengganti. Gotcha terbesar dalam pengalaman saya adalah tidak memperbarui konfigurasi GRUB, tidak menginstal GRUB pada semua drive, atau partisi yang tidak tepat yang membuatnya sehingga Anda tidak dapat menginstal GRUB tanpa menggunakan --force.


2
Jawaban itu hanya digunakan file -suntuk grub1, untuk grub 2 ada jawaban kedua yang menunjukkandd bs=512 count=1 if=/dev/sda 2>/dev/null | strings|grep GRUB
rubo77

tidak ada "/boot/grub/device.map", tetapi thx untuk tautan itu!
Aquarius Power
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.