저는 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 ###