1 \ Menu.rc 2 \ 3 \ Load required Forth modules 4 include /boot/forth/version.4th 5 include /boot/forth/brand.4th 6 include /boot/forth/menu.4th 7 include /boot/forth/menu-commands.4th 8 include /boot/forth/shortcuts.4th 9 10 \ Screen prep 11 clear \ clear the screen (see `screen.4th') 12 print_version \ print version string (bottom-right; see `version.4th') 13 draw-beastie \ draw freebsd mascot (on right; see `beastie.4th') 14 draw-brand \ draw the FreeBSD title (top-left; see `brand.4th') 15 menu-init \ initialize the menu area (see `menu.4th') 16 17 \ Initialize main menu constructs (see `menu.4th') 18 \ NOTE: To use `non-ansi' variants, add `loader_color=0' to loader.conf(5) 19 \ NOTE: ANSI variants can use `^' in place of literal `Esc' (ASCII 27) 20 21 \ 22 \ MAIN MENU 23 \ 24 25 set menuset_name1="main" 26 27 set mainmenu_init[1]="init_boot" 28 29 s" smartos" getenv? [if] 30 set mainmenu_caption[1]="Boot SmartOS [Enter]" 31 set maintoggled_text[1]="R[e]covery (root/root) [Enter]" 32 set mainansi_caption[1]="^[1mB^[moot SmartOS ^[1m[Enter]^[m" 33 set maintoggled_ansi[1]="R^[1me^[mcovery (root/root) ^[1m[Enter]^[m" 34 [else] 35 set mainmenu_caption[1]="Boot Multi User [Enter]" 36 set maintoggled_text[1]="Boot [S]ingle User [Enter]" 37 set mainansi_caption[1]="^[1mB^[moot Multi User ^[1m[Enter]^[m" 38 set maintoggled_ansi[1]="Boot ^[1mS^[mingle User ^[1m[Enter]^[m" 39 [then] 40 set mainmenu_command[1]="boot" 41 \ keycode set by init_boot 42 43 set mainmenu_init[2]="init_altboot" 44 s" smartos" getenv? [if] 45 set mainmenu_caption[2]="[R]ecovery (root/root)" 46 set maintoggled_text[2]="[B]oot SmartOS" 47 set mainansi_caption[2]="^[1mR^[mecovery (root/root)" 48 set maintoggled_ansi[2]="^[1mB^[oot SmartOS" 49 [else] 50 set mainmenu_caption[2]="Boot [S]ingle User" 51 set maintoggled_text[2]="Boot [M]ulti User" 52 set mainansi_caption[2]="Boot ^[1mS^[mingle User" 53 set maintoggled_ansi[2]="Boot ^[1mM^[multi User" 54 [then] 55 set mainmenu_command[2]="altboot" 56 \ keycode set by init_altboot 57 58 set mainmenu_caption[3]="[Esc]ape to loader prompt" 59 set mainmenu_command[3]="goto_prompt" 60 set mainmenu_keycode[3]=27 61 set mainansi_caption[3]="^[1mEsc^[mape to loader prompt" 62 63 \ Enable built-in "Reboot" trailing menuitem 64 \ NOTE: appears before menu_options if configured 65 \ 66 set mainmenu_reboot 67 68 \ Enable "Options:" separator. When set to a numerical value (1-8), a visual 69 \ separator is inserted before that menuitem number. 70 \ 71 set mainmenu_options=5 72 73 \ illumos does not have multiple kernels 74 \ set mainmenu_kernel=5 75 \ set mainmenu_command[5]="cycle_kernel" 76 \ set mainmenu_keycode[5]=107 77 78 set mainmenu_caption[5]="Configure Boot [O]ptions..." 79 set mainmenu_command[5]="2 goto_menu" 80 set mainmenu_keycode[5]=111 81 set mainansi_caption[5]="Configure Boot ^[1mO^[mptions..." 82 83 \ Boot Environments are (supported) only on ZFS 84 s" currdev" getenv drop 4 s" zfs:" compare 0= be-pages and [if] 85 set mainmenu_caption[6]="Select Boot [E]nvironment..." 86 set mainmenu_command[6]="3 goto_menu" 87 set mainmenu_keycode[6]=101 88 set mainansi_caption[6]="Select Boot ^[1mE^[mnvironment..." 89 90 s" chain_disk" getenv? [if] 91 set mainmenu_caption[7]="Chain[L]oad ${chain_disk}" 92 set mainmenu_command[7]="chain ${chain_disk}" 93 set mainmenu_keycode[7]=108 94 set mainansi_caption[7]="Chain^[1mL^[moad ${chain_disk}" 95 [then] 96 [else] 97 s" chain_disk" getenv? [if] 98 set mainmenu_caption[6]="Chain[L]oad ${chain_disk}" 99 set mainmenu_command[6]="chain ${chain_disk}" 100 set mainmenu_keycode[6]=108 101 set mainansi_caption[6]="Chain^[1mL^[moad ${chain_disk}" 102 [then] 103 [then] 104 105 \ 106 \ BOOT OPTIONS MENU 107 \ 108 109 set menuset_name2="options" 110 111 set optionsmenu_caption[1]="Back to Main Menu [Backspace]" 112 set optionsmenu_command[1]="1 goto_menu" 113 set optionsmenu_keycode[1]=8 114 set optionsansi_caption[1]="Back to Main Menu ^[1m[Backspace]^[m" 115 116 \ set optionsmenu_caption[2]="Load System [D]efaults" 117 \ set optionsmenu_command[2]="set_default_boot_options" 118 \ set optionsmenu_keycode[2]=100 119 \ set optionsansi_caption[2]="Load System ^[1mD^[mefaults" 120 121 set optionsmenu_options=2 122 set optionsmenu_optionstext="Boot Options:" 123 124 set optionsmenu_osconsole=2 125 set optionsmenu_command[2]="cycle_osconsole" 126 set optionsmenu_keycode[2]=99 127 128 set optionsmenu_acpi=3 129 set optionsmenu_command[3]="cycle_acpi" 130 set optionsmenu_keycode[3]=97 131 132 set optionsmenu_init[4]="init_singleuser" 133 set optionsmenu_caption[4]="[S]ingle User. Off" 134 set optionstoggled_text[4]="[S]ingle User. On" 135 set optionsmenu_command[4]="toggle_singleuser" 136 set optionsmenu_keycode[4]=115 137 set optionsansi_caption[4]="^[1mS^[mingle User. ^[34;1mOff^[m" 138 set optionstoggled_ansi[4]="^[1mS^[mingle User. ^[32;7mOn^[m" 139 140 set optionsmenu_init[5]="init_verbose" 141 set optionsmenu_caption[5]="[V]erbose..... Off" 142 set optionstoggled_text[5]="[V]erbose..... On" 143 set optionsmenu_command[5]="toggle_verbose" 144 set optionsmenu_keycode[5]=118 145 set optionsansi_caption[5]="^[1mV^[merbose..... ^[34;1mOff^[m" 146 set optionstoggled_ansi[5]="^[1mV^[merbose..... ^[32;7mOn^[m" 147 148 set optionsmenu_init[6]="init_reconfigure" 149 set optionsmenu_caption[6]="[R]econfigure. Off" 150 set optionstoggled_text[6]="[R]econfigure. On" 151 set optionsmenu_command[6]="toggle_reconfigure" 152 set optionsmenu_keycode[6]=114 153 set optionsansi_caption[6]="^[1mR^[meconfigure. ^[34;1mOff^[m" 154 set optionstoggled_ansi[6]="^[1mR^[meconfigure. ^[32;7mOn^[m" 155 156 set optionsmenu_init[7]="init_kmdb" 157 set optionsmenu_caption[7]="k[m]db........ Off" 158 set optionstoggled_text[7]="k[m]db........ On" 159 set optionsmenu_command[7]="toggle_kmdb" 160 set optionsmenu_keycode[7]=109 161 set optionsansi_caption[7]="k^[1mm^[mdb........ ^[34;1mOff^[m" 162 set optionstoggled_ansi[7]="k^[1mm^[mdb........ ^[32;7mOn^[m" 163 164 set optionsmenu_init[8]="init_debug" 165 set optionsmenu_caption[8]="[D]ebug....... Off" 166 set optionstoggled_text[8]="[D]ebug....... On" 167 set optionsmenu_command[8]="toggle_debug" 168 set optionsmenu_keycode[8]=100 169 set optionsansi_caption[8]="^[1mD^[mebug....... ^[34;1mOff^[m" 170 set optionstoggled_ansi[8]="^[1mD^[mebug....... ^[32;7mOn^[m" 171 172 \ 173 \ BOOT ENVIRONMENT MENU 174 \ 175 176 \ the BE list is read from [pool]/boot/menu.lst, the list in file 177 \ is ordered from oldest to most recent. 178 \ the BE menu will list entries from most recent to oldest, 179 \ so the first page in menu is last page in menu.lst 180 181 be-pages [if] 182 set zfs_be_currpage=1 183 be-set-page \ set page data 184 set menuset_name3="bootenv" 185 186 set bootenvmenu_command[1]="be_draw_screen 1 goto_menu" 187 set bootenvmenu_keycode[1]=8 188 189 set bootenvmenu_keycode[2]=8 190 set bootenvmenu_command[2]="be_draw_screen 1 goto_menu" 191 192 set bemenu_current="Active: " 193 set beansi_current="^[1m${bemenu_current}^[m" 194 set bemenu_bootfs="bootfs: " 195 set beansi_bootfs="^[1m${bemenu_bootfs}^[m" 196 set bemenu_page="[P]age: " 197 set beansi_page="^[1mP^[mage: " 198 set bemenu_pageof=" of " 199 set beansi_pageof="${bemenu_pageof}" 200 201 set bootenvmenu_init="init_bootenv" 202 203 set bootenvmenu_keycode[3]=112 204 set bootenvmenu_command[3]="set_be_page" 205 206 set bootenvmenu_options=4 207 set bootenvmenu_optionstext="Boot Environments:" 208 [then] 209 210 \ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to 211 \ customize the timeout; default is 10-seconds) 212 \ 213 set menu_timeout_command="boot" 214 215 \ Include optional elements defined in a local file 216 \ 217 try-include /boot/menu.rc.local 218 219 \ Display the main menu (see `menu.4th') 220 set menuset_initial=1 221 menuset-loadinitial 222 menu-display