Отладка отказа сегментации

Самый легкий способ загрузить несколько операционных систем состоит в том, чтобы использовать загрузчик одной операционной системы для начальной загрузки, эта операционная система непосредственно и иметь его загружают загрузчики других операционных систем. Часто это - единственная опция. Здесь, Личинка 1 (загрузчик Соляриса) и Личинка 2 (загрузчик Ubuntu) могут загрузить ядра друг друга, таким образом, это - также опция.

Чтобы иметь Личинку Соляриса загружают загрузчик 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 в настоящее время поддержки, загружающие ядро Соляриса непосредственно.

6
15.08.2012, 18:44
1 ответ

Было обсуждение подобного предмета на Gmane и хинду форумах, таким образом, ответ может быть найден там.

Кроме того, я предложил бы запуститься со взгляда, что Ваша программа во время выполнения загрузит правильные библиотеки так попытка ldd динамично связанный файл, чтобы видеть, что Вы на самом деле работаете против правильных версий и затем запускаете программу через valgrind потому что совершенно возможно, что Вы обращаетесь к памяти, Вы не были должны и valgrind сможет показать это Вам.

2
27.01.2020, 20:30

Теги

Похожие вопросы