GRUB 2에서는 GRUB 레거시와 완전히 다른 구성을 사용합니다. GRUB 레거시 구성은 menu.lst 파일을 통해 관리되지만 GRUB 2에서는 menu.lst 파일을 사용하지 않습니다. 대신 GRUB 2에서는 구성 파일 grub.cfg를 사용하여 동일한 유형의 정보를 저장합니다. menu.lst 파일과 마찬가지로 grub.cfg 파일은 루트 풀(/pool-name/boot/grub)에 대한 ZFS 데이터 세트의 최상위 레벨(예: /rpool/boot/grub/grub.cfg)에 있습니다.
grub.cfg 파일의 구문은 bash 스크립팅의 하위 세트를 기반으로 합니다. 다음 예와 같이 이 구문은 menu.lst 파일에서 사용되는 지시어 스타일의 언어보다 복잡하고 강력합니다.
title title bootfs pool-name/ROOT/bootenvironment-name kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS module$ /platform/i86pc/$ISADIR/boot_archive
한편 동일한 구성이 다음과 같이 grub.cfg 파일에 저장됩니다.
menuentry "<title>" { insmod part_msdos insmod part_sunpc insmod part_gpt insmod zfs search --no-floppy --fs-uuid --set=root f3d8ef099730bafa zfs-bootfs /ROOT/<BE name>/@/ zfs_bootfs set kern=/platform/i86pc/kernel/amd64/unix echo -n "Loading ${root}/ROOT/<BE name>/@$kern: " $multiboot /ROOT/<BE name>/@/$kern $kern -B $zfs_bootfs set gfxpayload="1024x768x32;1024x768x16;800x600x16;640x480x16;640x480x15;640x480x32" insmod gzio echo -n "Loading ${root}/ROOT/<BE name>/@/platform/i86pc/amd64/boot_archive: " $module /ROOT/<BE name>/@/platform/i86pc/amd64/boot_archive }
grub.cfg 파일과 menu.lst 파일의 다른 주요 차이는 grub.cfg 파일을 편집하지 않는다는 점입니다. menu.lst 파일은 사용자가 만든 메뉴 항목과 전역 GRUB 구성 파일 설정 및 변수에 대한 수동 변경 사항을 비롯하여 시스템에 의해 자동으로 생성된 메뉴 항목을 지원합니다. 반면 grub.cfg 파일은 이 릴리스에서 새로 도입된 다양한 bootadm 하위 명령을 사용하여 관리됩니다. 다양한 bootadm 하위 명령을 통해 대부분의 부트 로더 관리 작업을 관리할 수 있습니다. bootadm 명령을 사용하여 GRUB 구성 관리를 참조하십시오.
grub.cfg 파일의 다른 특징은 부트 로더 구성을 변경할 때마다 파일이 자동으로 생성된다는 점입니다. 일부 작업 도중, 그리고 특정 부트 관리 명령이 사용될 때도 파일이 자동으로 생성됩니다. 필요한 경우 새 generate-menu 하위 명령과 함께 bootadm 명령을 실행하여 새 grub.cfg 파일을 수동으로 생성할 수 있습니다. 부트 구성이 손상된 경우에만 이 하위 명령을 사용하여 새 grub.cfg 파일을 만들 수 있습니다. 수동으로 GRUB 메뉴를 재생성하는 방법을 참조하십시오.
참고로, GRUB 2 구성은 다음 파일에 저장됩니다.
grub.cfg – GRUB 2에서 사용되는 기본 구성 파일입니다.
/pool-name/boot/grub/menu.conf - Oracle Solaris에서 최종 grub.cfg 구성 파일을 생성하는 데 사용되는 파일입니다.
menu.conf 파일은 시스템에서 구문을 분석할 수 있는 형식으로 GRUB 2 구성을 저장하는 별도의 GRUB 메타 구성 파일입니다.
/pool-name/boot/grub/custom.cfg - grub.cfg 및 menu.conf 파일과 동일한 위치에 상주하는 편집 가능한 파일입니다. custom.cfg 파일은 관리자가 만드는 것으로, 기본적으로 시스템에 없습니다. 이 파일은 기본적인 GRUB 구성에 보다 복잡한 구문(메뉴 항목 또는 기타 스크립팅 정보)을 추가하기 위한 용도로 예약됩니다.
custom.cfg 파일은 grub.cfg 파일에서 참조됩니다. custom.cfg 파일이 시스템에 존재하면 해당 파일에 있는 명령 또는 지시어가 grub.cfg 파일에 의해 처리됩니다. 자세한 내용은 GRUB 구성 사용자 정의를 참조하십시오.