Не удается загрузить grub4dos через kexec

Я исполняю

sudo kexec -l /sbin/grub.exe
sudo kexec -e

и получить черный экран с некоторыми фразами. Шрифт сжат вертикально, и я вижу также одну копию тех же фраз справа. Есть фразы (могу перепутать цифры)

"... root is (0x80.0)
"Processing the preset menu ...
Launching GRUB ..."

Он не зависает, потому что, если я подожду 10-20 секунд, появится еще одна фраза "Если зависание, используйте" geometry --lba1sector (120) "в начале предустановленного меню".

Я пытался вставить эту строку в menu.lst. Нет эффекта. Тоже попробовал --reset-vga вариант kexec и попробовал его --append='...' возможность передать тот же контент menu.lst grun4dos в качестве его параметра. Тот же результат.

Я не вносил изменений в MBR или загрузочный сектор раздела, особенно для grub4dos. У меня есть menu.lst и grldr на диске C: и одна строка в boot.ini. Таким образом, я могу загрузить Ubuntu через grub4dos.

Это было для grub4dos 0.4.5. С grub4dos 0.4.4 я могу получить доступ к некоторому меню, шрифт сжат и ввод отключен.

kexec настроен так, чтобы сделать быстрый перезапуск с помощью этого, когда я нажимаю Shut Down -> Restart. Таким образом, это работает нормально.

Любые предложения, как решить эту проблему? Возможно, Ubuntu должен сначала выполнить некоторые задачи, которые он обычно выполняет перед обычным перезапуском, а затем запустить kexec. Но как это проверить? Я новичок в Linux.

Здесь говорят, что 32-битный сегмент загрузки должен быть добавлен к boot/i386/pc/lnxboot.S, который отсутствует в Ubuntu.

Обновление: следующие команды могут перезапустить Ubuntu

sudo kexec -l /boot/vmlinuz-3.13.0-39-generic --initrd=/boot/initrd.img-3.13.0-39-generic --command-line="$( cat /proc/cmdline )"
sudo kexec -e

но это повесить потом через несколько секунд. Это также было замечено несколько раз после выключения -> перезагрузка. Может быть, есть ошибка в kexec или есть более правильный способ ее использования.

Обновление 2: аналогичный результат загрузки изображения

kexec -l grub.exe --initrd=DOS.IMG --command-line="--config-file=map (rd) (fd0); map --hook; chainloader (fd0)+1; rootnoverify (fd0)"

Обновление 3: аналогичные результаты для версий grub4dos 0.4.3, 0.4.2, 0.4.1

Обновление 4: Моя версия kexec - 2.0.6. Ubuntu 14.04. В /boot я нахожу 3.13.0-39 в каком-то имени файла (версия ядра?).

Обновление 5: В Knoppix 5.1.1 LiveCD grub4dos загружался нормально и затем загружал Ubuntu, хотя тогда он завис. И Knoppix 5.1.1 (LiveCD или обычный) не имеет приостановки. Во всяком случае, это некоторый прогресс.

1 ответ

Зачем вам grub4dos для загрузки вашей машины?

Я бы использовал Super Grub2 Disk, который может сделать то же самое намного проще.

Другие вопросы по тегам