Самый легкий способ загрузить несколько операционных систем состоит в том, чтобы использовать загрузчик одной операционной системы для начальной загрузки, эта операционная система непосредственно и иметь его загружают загрузчики других операционных систем. Часто это - единственная опция. Здесь, Личинка 1 (загрузчик Соляриса) и Личинка 2 (загрузчик Ubuntu) могут загрузить ядра друг друга, таким образом, это - также опция.
Чтобы иметь Личинку Соляриса загружают загрузчик Ubuntu (который является тем, что я рекомендую):
/dev/sda5
. (Программа установки, вероятно, предупредит Вас, что это - плохая идея, потому что она не делает Вашу систему загрузочной; скажите этому идти вперед, так как Вы используете загрузчик другой операционной системы для начальной загрузки системы, которая необычна.)В Солярисе добавьте запись меню для Ubuntu в menu.lst
файл (обычно расположенный в /boot/grub/menu.lst
, но используйте команду bootadm list-menu
для наблюдения, где это находится в системе):
title Ubuntu
root (hd0,4)
chainloader +1
Если Вы хотите, чтобы загрузчик Ubuntu загрузил загрузчик Соляриса (также рекомендуемый, но это идет вразрез с созданием Солярис “основная ОС”), Личинка Ubuntu установки 2 на загрузочном секторе и Личинке Соляриса 1 на загрузочном секторе раздела Соляриса. Выполненный sudo update-grub
на Ubuntu однажды при изменении загрузочного сектора Соляриса после установки Ubuntu, и это возьмет запись Соляриса (возможно, родовым названием, а не “Солярисом”). Если update-grub
не берет запись Соляриса, затем объявляет это вручную путем создания названного файла /etc/grub.d/31_local_solaris
со следующим содержанием, затем работающим sudo update-grub
:
#!/bin/sh
set -e
prefix=/usr
libdir=${prefix}/lib
. ${libdir}/grub/grub-mkconfig_lib
cat <<'EOF'
menuentry 'Solaris' {
EOF
save_default_entry
prepare_grub_to_access_device /dev/sda1
cat <<'EOF'
chainloader +1
}
EOF
Если Вы хотите, чтобы Личинка Соляриса загрузила ядро Ubuntu непосредственно, установите его на загрузочном секторе и добавьте записи в menu.lst
на Солярисе (см. выше для того, где этот файл расположен). Обратите внимание, что это документируется для работы, но существуют отчеты, что это не делает (это может быть зависеть от версии Соляриса).
title Ubuntu
root (hd0,4)
kernel /vmlinuz root=/dev/sda5 ro
initrd /initrd.img
title Ubuntu (single-user mode)
root (hd0,4)
kernel /vmlinuz root=/dev/sda5 ro single
initrd /initrd.img
Я не думаю Личинка 2 в настоящее время поддержки, загружающие ядро Соляриса непосредственно.
Было обсуждение подобного предмета на Gmane и хинду форумах, таким образом, ответ может быть найден там.
Кроме того, я предложил бы запуститься со взгляда, что Ваша программа во время выполнения загрузит правильные библиотеки так попытка ldd
динамично связанный файл, чтобы видеть, что Вы на самом деле работаете против правильных версий и затем запускаете программу через valgrind
потому что совершенно возможно, что Вы обращаетесь к памяти, Вы не были должны и valgrind
сможет показать это Вам.