Agora que já terminei a explicação sobre o ISOLINUX, passarei quais as alterações que devem ser feitas no passo-a-passo do artigo
Criando um LiveCD a partir de uma instalação do Debian Lenny para que você tenha no final do processo um LiveCD com ISOLINUX como gerenciador de boot.
Um LiveCD que utiliza o ISOLINUX como gerenciador de boot apresenta uma estrutura básica similar a essa:
(Raiz do CD)
|-------+boot
| |-------+isolinux
| | |-------isolinux.bin
| | |-------isolinux.cfg
| |
| |-------vmlinuz
| |-------initrd.gz
| |-------memtest86
|
|-------+live
| |-------filesystem.squashfs
|
|--------md5sum.txt
A única diferença entre essa estrutura e a apresentada no artigo anterior, onde o GRUB era usado como gerenciador de boot, é a presença da pasta "boot/isolinux" no lugar da pasta "boot/grub". Algumas distribuições preferem colocar a pasta "isolinux" na raiz do CD ao invés de dentro de uma pasta boot, mas isso é questão de organização e fica a critério de quem faz o LiveCD.
Vejamos resumidamente o que são cada um desses arquivos (para informações mais detalhadas, veja
o artigo anterior):
- "boot/isolinux/isolinux.bin": esse arquivo contém o ISOLINUX. Como sabemos, ele é o gerenciador de boot. Logo, é o primeiro componente do LiveCD a ser carregado para a memória. Você vai ler várias vezes nesse artigo o nome ISOLINUX, mas o arquivo que mais nos interessa não é esse, é o "isolinux.cfg".
- "boot/isolinux/isolinux.cfg": esse é o arquivo de configuração do ISOLINUX e o que mais nos interessa nesse artigo. Ele contém não somente as opções do menu que aparece durante o boot do LiveCD, como também suas personalizações (cor de fundo, layout, textos de ajuda, opções avançadas, etc).
- "boot/vmlinuz": esse arquivo é o kernel, que durante a inicialização do LiveCD é o segundo componente a ser carregado para a memória. Isso acontece assim que escolhemos uma das opções mostradas no menu de boot.
- "boot/initrd.gz": esse arquivo é o initramfs, que contém os módulos e scripts necessários para inicializar o LiveCD. Ele é carregado durante a inicialização do LiveCD logo após o kernel.
- "boot/memtest86": esse arquivo na verdade é opcional, mas está presente na quase totalidade dos LiveCDs. Trata-se de um programa usado para testar a memória RAM do computador.
- "live/filesystem.squashfs": esta é a imagem compactada SquashFS que contém o sistema operacional em si.
- "md5sum.txt": esse arquivo também é opcional. Contém o MD5 de cada arquivo do CD e pode ser usado após a gravação do CD (ou o download da imagem ISO) para verificar sua a integridade.
Se você executou o passo-a-passo do artigo anterior, pode copiar o conteúdo do seu LiveCD para o disco rígido e apagar a pasta "boot/grub". Você vai recomeçar o passo-a-passo a partir do final da etapa E (eu direi qual será seu primeiro comando). Os que não o fizeram, se desejarem, podem seguir o passo-a-passo aplicando as mudanças que eu passarei a seguir.
A maior parte das mudanças por conta da troca de gerenciador de boot ocorre na etapa E (
Preparar a estrutura de diretórios do LiveCD). As etapas B (
Copiar o sistema para a pasta de trabalho) e D (
Fazer as modificações necessárias no sistema de trabalho) do passo-a-passo permanecem inalteradas. As demais possuem pequenas alterações em um ou dois comandos que listarei a seguir.
Antes de tudo, obviamente, você deve ter o ISOLINUX instalado no seu computador. Você pode instala-lo via
apt-get ou usando outro método de sua preferência. Isso deve ser feito na etapa A do passo-a-passo (
Preparar o ambiente de trabalho), cuja única mudança é a instalação do pacote
syslinux no lugar do pacote
grub. Evidentemente, não há problema algum se seu sistema já possuir o GRUB instalado.
# apt-get install syslinux
O comando para a instalação de todos os pacotes utilizados no passo-a-passo fica então assim:
# apt-get install rsync squashfs-tools squashfs-modules-$(uname -r) syslinux mkisofs x11-xserver-utils xnest qemu cdrecord dvd+rw-tools
Ainda na etapa A, a pasta "boot/grub" também não será criada. Ao invés dela, criaremos a pasta "boot/isolinux". Assim, para criar todas as pastas que você vai necessitar, execute esses três comandos no terminal (lembre-se de alterar os comandos para adaptá-los ao seu computador):
mkdir -p /home/vinicius/debian-live/cd/live
$ mkdir -p /home/vinicius/debian-live/cd/boot/isolinux
$ mkdir -p /home/vinicius/debian-live/work/rootfs
Durante a etapa C (
Fazer as modificações desejadas no sistema de trabalho), que também permanece inalterada, exceto pelas sugestões que vou dar agora, você pode remover o GRUB do sistema que vai para o LiveCD (caso seu sistema já apresentava o GRUB antes da cópia de arquivos na etapa B), uma vez que ele não será útil no LiveCD (a menos que você pretenda usar esse LiveCD para recuperação ou pretenda torna-lo instalável):
# apt-get install grub
Você pode também remover o pacote
syslinux e suas dependências, que não terão nenhuma utilidade dentro do LiveCD (isso trará uma economia de uns 2 MB):
# apt-get remove syslinux
# apt-get autoremove
Como a etapa E (
Preparar a estrutura de diretórios do LiveCD) sofre muitas alterações, vou preferir reescrever seus passos a seguir.
Comece copiando o
kernel, o
initrd e o
memtest que foram criados na etapa anterior para a pasta temporária que contém os arquivos do LiveCD:
# cp -vp /home/vinicius/debian-live/work/rootfs/boot/vmlinuz-$(uname -r) /home/vinicius/debian-live/cd/boot/vmlinuz
# cp -vp /home/vinicius/debian-live/work/rootfs/boot/initrd.img-$(uname -r) /home/vinicius/debian-live/cd/boot/initrd.gz
# cp -vp /home/vinicius/debian-live/work/rootfs/boot/memtest86+.bin /home/vinicius/debian-live/cd/boot/memtest86
Para finalizar, converta a pasta de trabalho em uma imagem SquashFS:
# mksquashfs /home/vinicius/debian-live/work/rootfs /home/vinicius/debian-live/cd/live/filesystem.squashfs
Se os arquivos da pasta "/home/vinicius/debian-live/cd" cabem no disco (CD ou DVD) no qual você pretende armazenar o sistema, você já pode apagar a pasta de trabalho, uma vez que não precisaremos de mais nenhum arquivo do sistema de trabalho (isso também representa uma boa quantidade de espaço em disco liberado, que poderá ser usado na criação do CD ou DVD):
# rm -rf /home/vinicius/debian-live/work
Agora chegou a parte em que quem aproveitou o LiveCD já pronto também entra na ação.
Copie o gerenciador de boot ISOLINUX, que está no seu sistema, para a pasta temporária:
# find /boot /usr/lib/syslinux/ -iname 'isolinux.bin' -exec cp -v {} /home/vinicius/debian-live/cd/boot/isolinux \;
# find /boot /usr/lib/syslinux/ -iname 'vesamenu.c32' -exec cp -v {} /home/vinicius/debian-live/cd/boot/isolinux \;
Agora vamos criar o arquivo "isolinux.cfg". Para isso, abra-o com o seu editor de texto favorito (no meu caso, escolhi abri-lo com o kedit):
kedit /home/vinicius/debian-live/cd/boot/isolinux/isolinux.cfg
Copie e cole o que vier a seguir no editor de texto, salve o arquivo e saia do editor de texto:
DEFAULT vesamenu.c32
TIMEOUT 300
PROMPT 0
LABEL live
MENU LABEL ^Start
Linux in Graphical Mode
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND BOOT=live boot=live nopersistent rw quiet splash
LABEL safe
MENU LABEL Start Linux in Safe ^Graphical Mode
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND BOOT=live boot=live xforcevesa rw quiet splash
LABEL text_only
MENU LABEL Start Linux in ^Text Mode
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND BOOT=live boot=live nopersistent textonly rw quiet
LABEL persistent
MENU LABEL Start ^Persistent Live CD
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND BOOT=live boot=live persistent rw quiet splash
LABEL from_ram
MENU LABEL Start Linux Graphical Mode from ^RAM
KERNEL /boot/vmlinuz
INITRD /boot/initrd.gz
APPEND BOOT=live boot=live toram nopersistent rw quiet splash
LABEL memtest
MENU LABEL ^Memory test
KERNEL /boot/memtest86
APPEND -
LABEL hd
MENU LABEL Boot from first ^hard disk
LOCALBOOT 0x80
APPEND -
O comando a seguir não é necessário para a criação do LiveCD, mas usualmente é executado. Ele calcula o MD5, que permite verificar posteriormente a integridade dos arquivos contidos no LiveCD.
# cd /home/vinicius/debian-live/cd && find . -type f -print0 | xargs -0 md5sum | tee /home/vinicius/debian-live/cd/md5sum.txt
Pronto, encerrada a etapa E, podemos prosseguir à Etapa F (
Criar o LiveCD), cuja única alteração consiste no primeiro comando, onde devemos passar os caminhos referentes aos arquivos do ISOLINUX:
# mkisofs -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "DEBIAN" -cache-inodes -r -J -l -o /home/vinicius/live-cd.iso /home/vinicius/debian-live/cd
Encerrada a lista de alterações, o restante do passo-a-passo pode ser seguido sem problemas.
Nessa primeira parte do artigo, aprendemos a criar um menu básico, a colocar 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. Na segunda parte, que virá em breve, continuaremos a trabalhar com menus, vendo como podemos incrementá-los ainda mais, e 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.
Um abraço a todos e até a próxima.
Fontes
Esse artigo foi publicado originalmente no meu blog:
Antônio Vinícius