1ca987d46SWarner Losh\ Menu.rc 2ca987d46SWarner Losh\ $FreeBSD$ 3ca987d46SWarner Losh\ 4ca987d46SWarner Losh\ You should not edit this file! Put any overrides in menu.rc.local 5ca987d46SWarner Losh\ instead as this file can be replaced during system updates. 6ca987d46SWarner Losh\ 7ca987d46SWarner Losh\ Load required Forth modules 8ca987d46SWarner Loshinclude /boot/version.4th 9ca987d46SWarner Loshinclude /boot/brand.4th 10ca987d46SWarner Loshinclude /boot/menu.4th 11ca987d46SWarner Loshinclude /boot/menu-commands.4th 12ca987d46SWarner Loshinclude /boot/shortcuts.4th 13ca987d46SWarner Losh 14ca987d46SWarner Losh\ Screen prep 15ca987d46SWarner Loshclear \ clear the screen (see `screen.4th') 16ca987d46SWarner Loshprint_version \ print version string (bottom-right; see `version.4th') 17ca987d46SWarner Loshdraw-beastie \ draw freebsd mascot (on right; see `beastie.4th') 18ca987d46SWarner Loshdraw-brand \ draw the FreeBSD title (top-left; see `brand.4th') 19ca987d46SWarner Loshmenu-init \ initialize the menu area (see `menu.4th') 20ca987d46SWarner Losh 21ca987d46SWarner Losh\ Initialize main menu constructs (see `menu.4th') 22ca987d46SWarner Losh\ NOTE: To use `non-ansi' variants, add `loader_color=0' to loader.conf(5) 23ca987d46SWarner Losh\ NOTE: ANSI variants can use `^' in place of literal `Esc' (ASCII 27) 24ca987d46SWarner Losh 25ca987d46SWarner Losh\ 26ca987d46SWarner Losh\ MAIN MENU 27ca987d46SWarner Losh\ 28ca987d46SWarner Losh 29ca987d46SWarner Loshset menuset_name1="main" 30ca987d46SWarner Losh 31ca987d46SWarner Loshset mainmenu_init[1]="init_boot" 32ca987d46SWarner Loshset mainmenu_caption[1]="Boot Multi User [Enter]" 33ca987d46SWarner Loshset maintoggled_text[1]="Boot [S]ingle User [Enter]" 34ca987d46SWarner Loshset mainmenu_command[1]="boot" 35ca987d46SWarner Loshset mainansi_caption[1]="^[1mB^[moot Multi User ^[1m[Enter]^[m" 36ca987d46SWarner Loshset maintoggled_ansi[1]="Boot ^[1mS^[mingle User ^[1m[Enter]^[m" 37ca987d46SWarner Losh\ keycode set by init_boot 38ca987d46SWarner Losh 39ca987d46SWarner Loshset mainmenu_init[2]="init_altboot" 40ca987d46SWarner Loshset mainmenu_caption[2]="Boot [S]ingle User" 41ca987d46SWarner Loshset maintoggled_text[2]="Boot [M]ulti User" 42ca987d46SWarner Loshset mainmenu_command[2]="altboot" 43ca987d46SWarner Loshset mainansi_caption[2]="Boot ^[1mS^[mingle User" 44ca987d46SWarner Loshset maintoggled_ansi[2]="Boot ^[1mM^[multi User" 45ca987d46SWarner Losh\ keycode set by init_altboot 46ca987d46SWarner Losh 47ca987d46SWarner Loshset mainmenu_caption[3]="[Esc]ape to loader prompt" 48ca987d46SWarner Loshset mainmenu_command[3]="goto_prompt" 49ca987d46SWarner Loshset mainmenu_keycode[3]=27 50ca987d46SWarner Loshset mainansi_caption[3]="^[1mEsc^[mape to loader prompt" 51ca987d46SWarner Losh 52ca987d46SWarner Losh\ Enable built-in "Reboot" trailing menuitem 53ca987d46SWarner Losh\ NOTE: appears before menu_options if configured 54ca987d46SWarner Losh\ 55ca987d46SWarner Loshset mainmenu_reboot 56ca987d46SWarner Losh 57ca987d46SWarner Losh\ Enable "Options:" separator. When set to a numerical value (1-8), a visual 58ca987d46SWarner Losh\ separator is inserted before that menuitem number. 59ca987d46SWarner Losh\ 60ca987d46SWarner Loshset mainmenu_options=5 61ca987d46SWarner Losh 62ca987d46SWarner Loshset mainmenu_kernel=5 63ca987d46SWarner Loshset mainmenu_command[5]="cycle_kernel" 64ca987d46SWarner Loshset mainmenu_keycode[5]=107 65ca987d46SWarner Losh 66ca987d46SWarner Loshset mainmenu_caption[6]="Configure Boot [O]ptions..." 67ca987d46SWarner Loshset mainmenu_command[6]="2 goto_menu" 68ca987d46SWarner Loshset mainmenu_keycode[6]=111 69ca987d46SWarner Loshset mainansi_caption[6]="Configure Boot ^[1mO^[mptions..." 70ca987d46SWarner Losh 71ca987d46SWarner Loshs" currdev" getenv dup 0> [if] drop 4 s" zfs:" compare 0= [if] 72ca987d46SWarner Losh set mainmenu_caption[7]="Select Boot [E]nvironment..." 73ca987d46SWarner Losh set mainmenu_command[7]="3 goto_menu" 74ca987d46SWarner Losh set mainmenu_keycode[7]=101 75*2de5a21eSToomas Soome set mainansi_caption[7]="Select Boot ^[1mE^[mnvironment..." 76ca987d46SWarner Losh 77ca987d46SWarner Losh s" chain_disk" getenv? [if] 78ca987d46SWarner Losh set mainmenu_caption[8]="Chain[L]oad ${chain_disk}" 79ca987d46SWarner Losh set mainmenu_command[8]="chain ${chain_disk}" 80ca987d46SWarner Losh set mainmenu_keycode[8]=108 81ca987d46SWarner Losh set mainansi_caption[8]="Chain^[1mL^[moad ${chain_disk}" 82ca987d46SWarner Losh [then] 83ca987d46SWarner Losh[else] 84ca987d46SWarner Losh s" chain_disk" getenv? [if] 85ca987d46SWarner Losh set mainmenu_caption[7]="Chain[L]oad ${chain_disk}" 86ca987d46SWarner Losh set mainmenu_command[7]="chain ${chain_disk}" 87ca987d46SWarner Losh set mainmenu_keycode[7]=108 88ca987d46SWarner Losh set mainansi_caption[7]="Chain^[1mL^[moad ${chain_disk}" 89ca987d46SWarner Losh [then] 90ca987d46SWarner Losh[then] [else] drop [then] 91ca987d46SWarner Losh 92ca987d46SWarner Losh 93ca987d46SWarner Losh\ 94ca987d46SWarner Losh\ BOOT OPTIONS MENU 95ca987d46SWarner Losh\ 96ca987d46SWarner Losh 97ca987d46SWarner Loshset menuset_name2="options" 98ca987d46SWarner Losh 99ca987d46SWarner Loshset optionsmenu_caption[1]="Back to Main Menu [Backspace]" 100ca987d46SWarner Loshset optionsmenu_command[1]="1 goto_menu" 101ca987d46SWarner Loshset optionsmenu_keycode[1]=8 102ca987d46SWarner Loshset optionsansi_caption[1]="Back to Main Menu ^[1m[Backspace]^[m" 103ca987d46SWarner Losh 104ca987d46SWarner Loshset optionsmenu_caption[2]="Load System [D]efaults" 105ca987d46SWarner Loshset optionsmenu_command[2]="set_default_boot_options" 106ca987d46SWarner Loshset optionsmenu_keycode[2]=100 107ca987d46SWarner Loshset optionsansi_caption[2]="Load System ^[1mD^[mefaults" 108ca987d46SWarner Losh 109ca987d46SWarner Loshset optionsmenu_options=3 110ca987d46SWarner Loshset optionsmenu_optionstext="Boot Options:" 111ca987d46SWarner Losh 112ca987d46SWarner Loshset optionsmenu_acpi=3 113ca987d46SWarner Loshset optionsmenu_caption[3]="[A]CPI Support off" 114ca987d46SWarner Loshset optionstoggled_text[3]="[A]CPI Support On" 115ca987d46SWarner Loshset optionsmenu_command[3]="toggle_acpi" 116ca987d46SWarner Loshset optionsmenu_keycode[3]=97 117ca987d46SWarner Loshset optionsansi_caption[3]="^[1mA^[mCPI Support ^[34;1mOff^[m" 118ca987d46SWarner Loshset optionstoggled_ansi[3]="^[1mA^[mCPI Support ^[32;7mOn^[m" 119ca987d46SWarner Losh 120ca987d46SWarner Loshset optionsmenu_init[4]="init_safemode" 121ca987d46SWarner Loshset optionsmenu_caption[4]="Safe [M]ode... off" 122ca987d46SWarner Loshset optionstoggled_text[4]="Safe [M]ode... On" 123ca987d46SWarner Loshset optionsmenu_command[4]="toggle_safemode" 124ca987d46SWarner Loshset optionsmenu_keycode[4]=109 125ca987d46SWarner Loshset optionsansi_caption[4]="Safe ^[1mM^[mode... ^[34;1mOff^[m" 126ca987d46SWarner Loshset optionstoggled_ansi[4]="Safe ^[1mM^[mode... ^[32;7mOn^[m" 127ca987d46SWarner Losh 128ca987d46SWarner Loshset optionsmenu_init[5]="init_singleuser" 129ca987d46SWarner Loshset optionsmenu_caption[5]="[S]ingle User. off" 130ca987d46SWarner Loshset optionstoggled_text[5]="[S]ingle User. On" 131ca987d46SWarner Loshset optionsmenu_command[5]="toggle_singleuser" 132ca987d46SWarner Loshset optionsmenu_keycode[5]=115 133ca987d46SWarner Loshset optionsansi_caption[5]="^[1mS^[mingle User. ^[34;1mOff^[m" 134ca987d46SWarner Loshset optionstoggled_ansi[5]="^[1mS^[mingle User. ^[32;7mOn^[m" 135ca987d46SWarner Losh 136ca987d46SWarner Loshset optionsmenu_init[6]="init_verbose" 137ca987d46SWarner Loshset optionsmenu_caption[6]="[V]erbose..... off" 138ca987d46SWarner Loshset optionstoggled_text[6]="[V]erbose..... On" 139ca987d46SWarner Loshset optionsmenu_command[6]="toggle_verbose" 140ca987d46SWarner Loshset optionsmenu_keycode[6]=118 141ca987d46SWarner Loshset optionsansi_caption[6]="^[1mV^[merbose..... ^[34;1mOff^[m" 142ca987d46SWarner Loshset optionstoggled_ansi[6]="^[1mV^[merbose..... ^[32;7mOn^[m" 143ca987d46SWarner Losh 144ca987d46SWarner Losh\ 145ca987d46SWarner Losh\ BOOT ENVIRONMENT MENU 146ca987d46SWarner Losh\ 147ca987d46SWarner Losh 148ca987d46SWarner Loshset menuset_name3="bootenv" 149ca987d46SWarner Losh 150ca987d46SWarner Loshset bemenu_current="Active: " 151ca987d46SWarner Loshset beansi_current="^[1m${bemenu_current}^[m" 152ca987d46SWarner Loshset bemenu_bootfs="bootfs: " 153ca987d46SWarner Loshset beansi_bootfs="^[1m${bemenu_bootfs}^[m" 154ca987d46SWarner Loshset bemenu_page="[P]age: " 155ca987d46SWarner Loshset beansi_page="^[1mP^[mage: " 156ca987d46SWarner Loshset bemenu_pageof=" of " 157ca987d46SWarner Loshset beansi_pageof="${bemenu_pageof}" 158ca987d46SWarner Loshset zfs_be_currpage=1 159ca987d46SWarner Losh 160ca987d46SWarner Loshset bootenvmenu_init="init_bootenv" 161ca987d46SWarner Losh 162ca987d46SWarner Loshset bootenvmenu_command[1]="be_draw_screen 1 goto_menu" 163ca987d46SWarner Loshset bootenvmenu_keycode[1]=8 164ca987d46SWarner Losh 165ca987d46SWarner Loshset bootenvmenu_command[2]="set_bootenv" 166ca987d46SWarner Loshset bootenvmenu_keycode[2]=97 167ca987d46SWarner Loshset bootenv_root[2]="${zfs_be_active}" 168ca987d46SWarner Losh 169ca987d46SWarner Loshset bootenvmenu_command[3]="set_be_page" 170ca987d46SWarner Loshset bootenvmenu_keycode[3]=112 171ca987d46SWarner Losh 172ca987d46SWarner Loshset bootenvmenu_options=4 173ca987d46SWarner Loshset bootenvmenu_optionstext="Boot Environments:" 174ca987d46SWarner Losh 175ca987d46SWarner Losh\ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to 176ca987d46SWarner Losh\ customize the timeout; default is 10-seconds) 177ca987d46SWarner Losh\ 178ca987d46SWarner Loshset menu_timeout_command="boot" 179ca987d46SWarner Losh 180ca987d46SWarner Losh\ Include optional elements defined in a local file 181ca987d46SWarner Losh\ 182ca987d46SWarner Loshtry-include /boot/menu.rc.local 183ca987d46SWarner Losh 184ca987d46SWarner Losh\ Initialize boot environment variables 185ca987d46SWarner Losh\ 186ca987d46SWarner Loshs" reloadbe" sfind ( xt|0 bool ) [if] 187ca987d46SWarner Losh s" bootenv_autolist" getenv dup -1 = [if] 188ca987d46SWarner Losh drop s" execute" evaluate \ Use evaluate to avoid passing 189ca987d46SWarner Losh \ reloadbe an optional parameter 190ca987d46SWarner Losh [else] 191ca987d46SWarner Losh s" YES" compare-insensitive 0= [if] 192ca987d46SWarner Losh s" execute" evaluate 193ca987d46SWarner Losh [then] 194ca987d46SWarner Losh [then] 195ca987d46SWarner Losh[else] 196ca987d46SWarner Losh drop ( xt=0 ) 197ca987d46SWarner Losh[then] 198ca987d46SWarner Losh 199ca987d46SWarner Losh\ Display the main menu (see `menu.4th') 200ca987d46SWarner Loshset menuset_initial=1 201ca987d46SWarner Loshmenuset-loadinitial 202ca987d46SWarner Loshmenu-display 203