Na
primeira parte do artigo, aprendemos a criar um menu básico, a inserir uma imagem de fundo, a organizar, definir as posições, os tamanhos e as cores dos itens do menu. Aprendemos também a traduzir as mensagens que são exibidas na tela e a adicionar descrições a cada item do menu. Finalmente, vimos como criar um LiveCD utilizando o ISOLINUX como gerenciador de boot.
Continuaremos, agora na segunda parte, a trabalhar com menus, vendo como podemos incrementá-los ainda mais. Aprenderemos também a fazer uma tela de boot igual à do LiveCD do Kurumin, deixando apenas o prompt "boot: ", para que o usuário selecione manualmente as opções de boot. Finalizando o artigo, veremos como criar um menu de ajuda para auxiliar o usuário a escolher entre as opções de boot disponíveis.
Criando submenus
Quando você possui uma grande quantidade de opções de boot disponíveis, pode ser interessante distribuí-las através de submenus acessíveis por um menu principal. Nesse tópico veremos com quais tags podemos definir submenus.
MENU BEGIN [tagname]
MENU END
Essas tags indicam o início e término da definição um submenu, respectivamente. Entre elas, podemos utilizar todas as tags que já vimos. Os submenus herdam as propriedades do menu principal, mas podem também apresentar suas próprias propriedades (seu próprio título, seu próprio fundo, sua própria formatação etc).
A tag MENU BEGIN aceita um parâmetro, mas não é obrigatório. Esse parâmetro serve para dar um nome do submenu.
MENU EXIT [tagname]
(válido somente depois de uma tag LABEL dentro de um submenu)
Define que a opção de menu à qual está associada será usada para sair do submenu e voltar ao menu principal. Aceita um parâmetro, mas não é obrigatório. Se for informado, o retorno será feito não para o menu principal, mas para o menu com o nome passado como parâmetro.
Na
primeira parte do artigo vimos um exemplo de arquivo de configuração básico:
DEFAULT vesamenu.c32
TIMEOUT 300
PROMPT 0
LABEL live
MENU LABEL ^Iniciar o
Linux em modo grafico
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND boot=live nopersistent rw quiet splash
LABEL text_only
MENU LABEL Iniciar o Linux em modo ^texto
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND boot=live nopersistent textonly rw quiet
LABEL memtest
MENU LABEL Testar a ^memoria
KERNEL /boot/memtest86
APPEND -
LABEL hd
MENU LABEL Iniciar a partir do ^disco rigido
LOCALBOOT 0x80
APPEND -
Vamos colocar todas as opções do menu com exceção da primeira e da última dentro de um submenu e vamos chamar esse submenu de "Opções avançadas":
DEFAULT vesamenu.c32
TIMEOUT 300
PROMPT 0
LABEL live
MENU LABEL ^Iniciar o Linux em modo grafico
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND BOOT=live boot=live nopersistent rw quiet splash
MENU BEGIN advanced
MENU LABEL Opcoes ^avancadas
LABEL text_only
MENU LABEL Iniciar o Linux em modo ^texto
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND BOOT=live boot=live nopersistent textonly rw quiet
LABEL memtest
MENU LABEL Testar a ^memoria
KERNEL /boot/memtest86
APPEND -
LABEL mainmenu
MENU LABEL < ^Voltar
MENU exit
MENU END
LABEL hd
MENU LABEL Iniciar a partir do ^disco rigido
LOCALBOOT 0x80
APPEND -
Se você testar essa configuração (veja como fazer isso na
primeira parte do artigo), verá isso: