Можно ли проверить установку grub без перезагрузки?

24

Я был укушен этим много раз, и сегодня после opensslобновления на моем сервере grub жаловался, что мне следует установить его снова, поскольку «жестких дисков, которые были установлены ранее, не существует».

У меня есть установка raid 1 со следующей установкой (согласно 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

Запуск grub-install работает, но я хочу убедиться, что после перезагрузки grub действительно правильно загрузит мои разделы.

Как я могу это проверить?

мебиус
источник
1
Я не использую и не знаю RAID, но вы устанавливаете grub в корень RAID, а не в MBR диска. Если вы запустите Boot-Repair, вы можете получить следующее сообщение. В MBR файла / dev / mapper / isw_cdjacjeebj_VOLUME_0 не установлен загрузчик. Где картограф - ваш том RAID.
oldfred
связанные: serverfault.com/questions/61400/…
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

Ответы:

19

Я не думаю, что вы можете просто проверить, будет ли это работать или нет, прежде чем пытаться это сделать, но вместо этого вы можете мгновенно получить предварительный просмотр вашего GRUB, чтобы вы могли быть уверены, что ваша новая конфигурация загружена правильно в GRUB.

Это может быть достигнуто с помощью инструмента под названием 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

Легко установить grub-emuс помощью командной строки:

sudo apt-get install grub-emu

Чтобы запустить его, просто используйте терминал для запуска этой команды:

grub-emu
Maythux
источник
1
Это надежный тест для установок grub2? Кроме того, ввод с клавиатуры, кажется, не работает для меню, которое появляется; есть ли хитрость для его включения?
Майкл Шепер
Я не могу закрыть grub-emu, единственный способ остановить это pkill -SIGKILL -fe grub-emu, клавиатурный ввод тоже не работает
Aquarius Power
1
@MichaelScheper это исправляет интерактивность serverfault.com/a/847429/163750 :). В основном, xterm -e grub-emuи держите акцент на xterm, а не на окне grub-emu!
Сила Водолея
4

Этот ответ используется, file -s /dev/sdaчтобы увидеть, была ли GRUB MBR успешно установлена. Кроме того, вы могли бы дважды проверить значения, /boot/grub/grub.cfgчтобы убедиться, что идентификаторы UUID совпадают со значениями в /dev/disk/by-uuid, и убедиться, что все выглядит правильно /boot/grub/device.map. Если этот файл неправильный, у вас возникнут проблемы со спецификациями (hdX) в grub.cfg.

Управление этими файлами вручную не требуется, хотя, если вы используете их update-grubпосле установки grub на сменные диски. Самым большим недостатком в моем опыте было не обновление конфигурации GRUB, не установка GRUB на всех дисках или неправильное разбиение, что делает его невозможным для установки GRUB без использования --force.

jkt123
источник
2
Этот ответ используется только file -sдля grub1, для grub 2 есть второй ответ, предлагающийdd bs=512 count=1 if=/dev/sda 2>/dev/null | strings|grep GRUB
rubo77 15.10.15
"/boot/grub/device.map" нет, но спасибо за эту ссылку!
Сила Водолея