デュアルブートSolarisおよびLinux

デュアルブートSolarisおよびLinux

私はOracle SolarisとGentoo Linuxを実行しているノートブックを持っています。

まず、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 ###

関連情報