Guia de referência do ISOLINUX (parte 1)

O ISOLINUX é provavelmente o gerenciador de boot mais utilizado em LiveCDs, certamente pela grande quantidade de recursos que ele oferece para tornar o boot do LiveCD um processo mais amigável. Nesse artigo você verá como utilizá-lo em seu LiveCD, desde as configurações básicas até alguns recursos interessantes.

[ Hits: 74.051 ]

Por: Antônio Vinícius Menezes Medeiros em 17/03/2010 | Blog: http://www.vinyanalista.com.br/


Configuração básica



Vejamos um exemplo de arquivo de configuração do ISOLINUX no qual são utilizadas somente as configurações básicas:

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 -

As palavras em caixa alta no início de cada linha são utilizadas para definir opções ou seções do arquivo de configuração. Vou chamá-las de tags, assim como está na documentação do ISOLINUX, para facilitar minha explicação. O que vem logo após elas são os valores associados a elas, ou seja, seus parâmetros.

As tags se dividem em dois grupos: as gerais e as de menu. As tags gerais (global tags) configuram o menu do ISOLINUX como um todo, enquanto as tags de menu (per-menu tags) configuram uma entrada do menu específica.

Nesse exemplo então, as tags gerais são DEFAULT, TIMEOUT e PROMPT. As tags de menu são LABEL, MENU LABEL, KERNEL, APPEND e LOCALBOOT. Vejamos a sintaxe de cada uma delas.

Antes de começar, quero ressaltar que estou usando caixa alta nesse artigo para diferenciar as tags de seus parâmetros, mas o ISOLINUX não diferencia maiúsculas de minúsculas, ou seja, ele não é caso sensitivo. Assim, não é necessário que as tags no arquivo de configuração sejam escritas com todas as letras maiúsculas, como estou fazendo aqui.

Além disso, vale observar que, assim como qualquer outro arquivo de configuração, o do ISOLINUX pode ser comentado. Para isso, insira um caractere de jogo da velha (#) no início da linha em que deseja comentar. O conteúdo dessa linha será ignorado pelo ISOLINUX na hora em que ele for ler o arquivo de configuração.

DEFAULT command

Define a ação padrão a ser executada durante o boot. Possui um único parâmetro, que pode ser uma das opções de boot definidas no próprio arquivo de configuração, um kernel ou ainda uma das extensões do ISOLINUX, chamadas de COMBOOTs (nesses dois últimos casos, o arquivo deve ser referenciado pelo seu caminho relativo, se estiver na mesma pasta que o arquivo de configuração, ou pelo seu caminho absoluto a partir da raiz do CD, se estiver em outra pasta). Se o usuário não optar por nenhuma ação durante o boot (ou se você configurar o ISOLINUX de modo a fazer um boot automático) essa será a ação tomada.

Nesse arquivo de configuração do exemplo, como queremos exibir um menu gráfico através do qual o usuário possa interagir com o ISOLINUX, definimos seu valor como "vesamenu.c32". Pela observação que fiz acima, o LiveCD que possuir esse arquivo de configuração deve apresentar um arquivo "vesamenu.c32" na mesma pasta do arquivo "isolinux.cfg".

Obs.: nessa primeira parte do artigo trabalharemos com menus (tais como os dos LiveCDs do Debian, do Ubuntu e do Slax) ao invés de deixar apenas o prompt "boot: " para que o usuário digite as opções de boot (como no LiveCD do Kurumin).

TIMEOUT timeout

Define quanto tempo o gerenciador de boot deve esperar por um decisão do usuário antes de iniciar o boot. A contagem regressiva pode ser cancelada se o usuário apertar qualquer tecla. Se isso não acontecer, a ação especificada em DEFAULT ou no primeiro item do menu será executada.

Essa tag admite como parâmetro um número inteiro, que representa o tempo de espera em décimos de segundos. Se for especificado zero, a contagem regressiva é desabilitada e o menu de opções ficará na tela por tempo indeterminado até que o usuário escolha alguma opção (essa é, aliás, a configuração default, ou seja, a configuração que é adotada se seu arquivo de configuração não apresentar essa tag). O valor máximo possível é 35996, que corresponde a pouco menos de uma hora.

Nesse exemplo, adotamos um tempo limite de 30 segundos (por isso escrevemos 300 no arquivo de configuração).

PROMPT flag_val

Define se o prompt "boot: " deve ser exibido ou não. Admite como parâmetro os valores 0 ou 1. Se você definir 0, o prompt "boot: " será exibido apenas se o usuário pressionar as teclas Shift ou Alt ou se Caps Lock ou Scroll Lock estiverem ativadas (opção default). Se você definir 1, o prompt "boot: " será sempre exibido.

LABEL command

Define uma opção de boot, exigindo como parâmetro um nome para a mesma. Se um menu não for exibido (ou ainda que o menu tenha sido exibido e o usuário tenha optado por digitar a opção que ele deseja), o usuário deverá digitar esse nome no prompt "boot: " para que essa opção seja iniciada. Cada opção de boot deve conter um nome único e recomenda-se que não tenha pontos ou outros caracteres especiais.

Assim, nesse exemplo, para iniciar o LiveCD o usuário deve digitar "live" (sem as aspas, claro) no prompt "boot: ".

MENU LABEL label

(válido somente depois de uma tag LABEL)

Define o texto que será exibido no menu referente à opção de boot que se encontra associada. Equivale à tag TITLE do arquivo de configuração do GRUB. Se nenhum texto for definido aqui, o nome da opção (definido pela tag LABEL) será exibido no menu. Diferente das tags LABEL, não precisa ter valores únicos, mas ainda assim não reconhece caracteres especiais.

No menu definido pelo arquivo de configuração acima, ao invés de digitar "live" no prompt "boot: ", o usuário pode escolher a opção "Iniciar o Linux em modo gráfico" no menu.

O acento circunflexo (^) é usado para definir como tecla de atalho para aquela opção do menu o caractere que vier logo em seguida. As teclas de atalho também devem ser únicas dentro de um menu. No menu, as teclas de atalho costumam vir destacadas de alguma forma (sublinhadas, em negrito etc).

KERNEL file

Define qual arquivo será lido pelo ISOLINUX se a opção de boot correspondente for solicitada pelo usuário. Não precisa ser necessariamente um kernel Linux, pode ser também um setor de boot ou uma extensão do ISOLINUX (um COMBOOT, veremos adiante uma das formas de se utilizar isso). Novamente, cuidado com os caminhos relativos e absolutos.

As seguintes extensões são reconhecidas pelo ISOLINUX (retirado da documentação do ISOLINUX):
none or other   Linux kernel image
.0              PXE bootstrap program (NBP) [PXELINUX only]
.bin            "CD boot sector" [ISOLINUX only]
.bs             Boot sector [SYSLINUX only]
.bss            Boot sector, DOS superblock will be patched in [SYSLINUX only]
.c32            COM32 image (32-bit COMBOOT)
.cbt            COMBOOT image (not runnable from DOS)
.com            COMBOOT image (runnable from DOS)
.img            Disk image [ISOLINUX only]

É importante observar que o ISOLINUX distingue os arquivos pela sua extensão, não importando seu conteúdo. Assim, muito cuidado ao nomear o kernel do seu CD (evite, por exemplo "redhat-9.0"). É preferível que o kernel Linux tenha um nome curto e não tenha extensão (como no exemplo que estamos estudando).

A tag KERNEL do arquivo de configuração do ISOLINUX não equivale à tag KERNEL do arquivo de configuração do GRUB porque essa recebe o caminho do kernel e os parâmetros a serem passados para ele, enquanto aquela recebe apenas o caminho do kernel como parâmetro. No arquivo de configuração do ISOLINUX, os parâmetros a serem passados para o kernel são escritos na tag APPEND, que será vista adiante.

INITRD initrd_file

Define qual arquivo initramfs deve ser carregado para a memória juntamente com o kernel. É equivalente à tag INITRD do arquivo de configuração do GRUB e tem o mesmo efeito que passar o parâmetro "initrd=initrd_file" na tag APPEND, que será vista a seguir. O parâmetro deve conter o caminho relativo para o arquivo, se este estiver na mesma pasta que o "isolinux.cfg", ou o caminho absoluto a partir da raiz do CD, se estiver em outra pasta.

APPEND options

Define quais parâmetros são passados para o kernel durante o boot. Se você não quiser passar nenhum parâmetro, você pode passar como parâmetro para essa tag um hífen apenas (-) ou simplesmente suprimi-la.

LOCALBOOT type

Usar essa tag em uma opção de boot no lugar da tag KERNEL define que o boot deve ser feito a partir de um disco local ao invés de um kernel presente no LiveCD. O parâmetro dessa tag especificará a partir de qual disco deve ser dado o boot: 0x00 equivale ao primeiro disquete, enquanto 0x80 equivale ao primeiro disco rígido. Também pode ser especificado o valor -1, que indica ao ISOLINUX que ele deve retornar um erro para a BIOS. Ela então procurará pelo sistema operacional no próximo dispositivo na sequência de boot. Isso não é recomendado pois somente algumas BIOS reagem dessa maneira a uma mensagem de erro enviada pelo gerenciador de boot.

Obs.: se quisermos especificar uma opção padrão de menu, devemos usar uma tag diferente de DEFAULT:

MENU DEFAULT

(válido somente depois de uma tag LABEL)

Indica que a opção de boot à qual está associada é a opção padrão do menu. Se você não utilizar essa tag em nenhuma das opções do menu, a opção padrão será a primeira.

Veja o que poderia ser um exemplo de utilização dessa tag, supondo que você preferisse que a opção de boot padrão do seu LiveCD fosse iniciar em modo texto:

LABEL live
  MENU LABEL ^Start Linux in Graphical Mode
  KERNEL /boot/vmlinuz
  INITRD /boot/initrd.gz
  APPEND boot=live nopersistent rw quiet splash

LABEL text_only
  MENU LABEL Start Linux in ^Text Mode
  MENU DEFAULT
  KERNEL /boot/vmlinuz
  INITRD /boot/initrd.gz
  APPEND boot=live nopersistent textonly rw quiet

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configuração básica
   3. Testando o ISOLINUX
   4. Inserindo uma imagem de fundo
   5. Organizando os elementos do menu
   6. Definindo as posições e tamanhos dos elementos do menu
   7. Aplicando cores aos elementos do menu
   8. Alterando as mensagens de boot automático e de prompt
   9. Inserindo textos de descrição
   10. Criando um LiveCD usando o ISOLINUX como gerenciador de boot
Outros artigos deste autor

Desmistificando a instalação do Dazuko

Instalação do MediaWiki em uma Project web do SourceForge

Conheça o OpenOffice.org e o BrOffice.org

Criando um LiveCD a partir de uma instalação do Debian Lenny

Exibindo um splash durante o boot com Splashy

Leitura recomendada

Google Chrome OS

Easter Eggs em Linux

Executando (entre outras funcionalidades) qualquer vídeo no Mozilla a partir do add-on Media Player Connectivity

XFCE 4.4 - Desktop alternativo a dupla KDE/Gnome

Internet Explorer: Esse fenômeno

  
Comentários
[1] Comentário enviado por xirux em 27/03/2010 - 17:44h

Muito bom o artigo, vou tirar um tempo pra praticar!

[2] Comentário enviado por zebento.cpd em 07/08/2010 - 12:07h

Parabéns por mais esse artigo!

Dentre as vantagens de cada gerenciador GRUB e ISOLINUX, existe alguma(s) que façam que um gerenciador sobressaia o outro? Resumindo, qual é o melhor e porque?

[3] Comentário enviado por edutaquary em 17/02/2011 - 13:10h

como faço para gerar uma iso do meu hd usando partimage e depois instalar pelo dvd

[4] Comentário enviado por sboorbou em 13/07/2011 - 12:33h

cara tem como usar o ISOLINUX para iniciar uma iso direto do HD?
Tipo uma iso de um live cd iniciar direto no hd?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts