듀얼 부팅 Solaris 및 Linux

듀얼 부팅 Solaris 및 Linux

저는 Oracle Solaris와 Gentoo Linux를 실행하는 노트북을 가지고 있습니다.

먼저 젠투 리눅스를 설치했습니다. GPT 파티션 구성표를 사용합니다. Gentoo Linux를 부팅하려면 GRUB 2가 필요합니다.

그런 다음 Solaris 11.1을 설치했습니다. 이제 Solaris의 GRUB가 Gentoo Linux의 GRUB보다 우선하지만 이를 감지하지 못하므로 현재 부팅 메뉴에는 Solaris만 있습니다.

제가 하고 싶은 일은 체인 로딩을 통해 이중 부팅이 가능하도록 Solaris용 GRUB 구성을 수정하는 것입니다. 왜냐하면 Solaris용 GRUB는 ext2 파일 시스템을 지원하지 않기 때문입니다.

불행하게도 GRUB에 대한 Solaris 문서는 다음과 같습니다.여기, Linux에 대해서는 예제가 제공되지 않습니다. Windows에만 해당됩니다.

그래서 나는 다음을 만들었습니다 /rpool/boot/grub/custom.cfg.

root@solaris:/rpool/boot/grub# cat custom.cfg
menuitem "Gentoo" {
    insmod gpt_part
    insmod chain
    set root=(hd0,ext2)
    chainload --force +1
}

그런 다음 다시 시작하십시오.

GRUB이 시작되면 Solaris 메뉴만 표시됩니다.

GRUB 구성을 적용하려면 Gentoo Linux에서 추가 명령을 실행해야 합니까?

Solaris에서는 문서에서 비슷한 내용을 볼 수 없습니다.

내가 무엇을 놓치고 있나요? 최소한 "Gentoo" 메뉴 항목은 GRUB에 표시되어야 합니다.

GRUB 구성 /rpool/boot/grub/grub.cfg:

igor@solaris:~/Broadcom$ cat /rpool/boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /usr/lib/grub2/bios/etc/grub.d and settings from /usr/lib/grub2/bios/etc/default/grub
#

### BEGIN /usr/lib/grub2/bios/etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
}

if loadfont "/@/boot/grub/unicode.pf2" ; then
  set gfxmode="1024x768x32;1024x768x16;800x600x16;640x480x16;640x480x15;640x480x32"
  load_video
  insmod gfxterm
  set locale_dir=($root)${prefix}/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
insmod part_gpt
insmod zfs
set root=''
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  e71191bc1127be5c
else
  search --no-floppy --fs-uuid --set=root e71191bc1127be5c
fi
insmod gfxmenu
loadfont ($root)//@/boot/grub/themes/solaris/liber18.pf2
loadfont ($root)//@/boot/grub/themes/solaris/univers16.pf2
loadfont ($root)//@/boot/grub/themes/solaris/univers20.pf2
insmod jpeg
insmod png
set theme=($root)//@/boot/grub/themes/solaris/theme.txt
set timeout=30
### END /usr/lib/grub2/bios/etc/grub.d/00_header ###

### BEGIN /usr/lib/grub2/bios/etc/grub.d/10_solaris ###
menuentry "Oracle Solaris 11.1" {
    insmod part_msdos
    insmod part_sunpc
    insmod part_gpt

    insmod zfs

    search --no-floppy --fs-uuid --set=root e71191bc1127be5c
    zfs-bootfs /ROOT/solaris/@/ zfs_bootfs
    set kern=/platform/i86pc/kernel/amd64/unix
    echo -n "Loading ${root}/ROOT/solaris/@$kern: "
    $multiboot /ROOT/solaris/@/$kern $kern -B console=graphics -B $zfs_bootfs
    set gfxpayload="1024x768x32;1024x768x16;800x600x16;640x480x16;640x480x15;640x480x32"
    insmod gzio
    echo -n "Loading ${root}/ROOT/solaris/@/platform/i86pc/amd64/boot_archive: "
    $module /ROOT/solaris/@/platform/i86pc/amd64/boot_archive
}

if [ "$target" = "i386_pc" ]; then
    search --no-floppy --fs-uuid --set=root_rpool e71191bc1127be5c
    if [ -s "($root_rpool)/@/boot/grub/menu.lst" ]; then
        submenu "Legacy GRUB Menu (from root pool rpool)" "($root_rpool)/@/boot/grub/menu.lst" {
            extract_legacy_entries_source "$2"
        }
    fi
fi

### END /usr/lib/grub2/bios/etc/grub.d/10_solaris ###

### BEGIN /usr/lib/grub2/bios/etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /usr/lib/grub2/bios/etc/grub.d/41_custom ###

관련 정보