wiki:livecd/gerar

Version 1 (modified by trac, 17 years ago) (diff)

--

Como gerar uma imagem do "Live-cd Expresso"

A imagem do cd é gerada é feito pelo script do slax disponível em  http://www.linux-live.org/. Para gerar uma imagem de um live cd é preciso ter um sistema pré-instalado que será a imagem do ambiente executado no live-cd. Como é preciso ter uma imagem de forma manuseável, o ideal é ter um sistema de arquivos dentro de um arquivo. Assim não precisa ter um particionamento. O processo para criar este arquivo é:

$ dd of=livecd.iso if=/dev/zero count=4G bs=1k # Cria um arquivo de 4 gB cheio de zeros
$ mkfs.xfs livecd.iso # Formata o arquivo
  • Montar o sistema de arquivos
    # mkdir /media/loop # Criar uma pasta onde iremos montar a imagem
    # mount livecd.iso /media/loop -o loop -o rw  # Por sua vez montar o sistema de arquivos
    
  • Agora é preciso instalar o sistema linux no arquivo, aqui copiaremos todo sistema de arquivos do sistema para o arquivo
    # cp -rpva /bin /boot /usr /lib /etc /home /var /sbin /sys /media/loop
    

Apartir desse momento temos um livecd.iso que contém o ambiente do livecd. Essa imagem livecd.iso foi criada para personalizar continuamente a imagem. Para modifica-la e usá-la é só montar ela em /media/loop por exemplo e executar:

# chroot /media/loop
# su -
# mount /proc (opcional caso seja necessário)

Para usar programas gráficos não execute (nem ao menos tente executar) o X dentro do chroot, porque ele as vezes causa reboot da máquina e causa inconsistência no sistema de arquivos! Um método bom para isso é: Na sua distro (que não está no chroot) execute:

$ Xnest :1 -ac

no chroot do live execute:

# export DISPLAY=localhost:1.0

Daí todo programa gráfico é mostrado numa janela.

O Kernel da imagem deve ter suporte ao squashfs e aufs. Por isso re-compilei o 2.6.20 vanila, com splashscreen. Mas poderia ser usado qualquer outro desde que tenha esses suportes. (por conta disso na minha imagem a base o dpkg relacionado ao linux-image está "acreditando" que existe kernel do debian, mas indiferentemente isso não altera nada)

Dentro da imagem que eu criei tem o script do linux-live, para finalmente gerar um cd bastar executar:

# ./build

Este build vai gerar um .lzm para cada diretório do /. Esses lzm serão montados no boot via squashfs. Depois execute:

Para criar uma imagem iso

# /tmp/live_data_XXXX/expresso/make_iso.sh

Onde XXXX vai ser um número aleatório gerado pelo script. O resultado será um /tmp/expresso.iso. Esse arquivo pode ser gravado num cd e usado.

Ou então:

# cp -r /tmp/live_data_XXXX /media/usbdisk
# /media/usbdisk/boot/bootinst.sh

Para criar um dispositivo usb ou qualquer outro disco bootável.

Outras considerações: Existe um arquivo que tem configurações da imagem. Esse arquivo é "/tmp/linux-live-6.0.7/.config" Essa configuração abaixo é interessante para não precisar refazer todo o live-cd.

...
# list of directories which will be modularized
MKMOD="bin etc home lib lib64 opt usr root sbin var php_sessions"

Quando uma alteração foi feita (só no /etc por exemplo). Deixe essa variável com somente o etc. Daí pegue os arquivos .lzm gerados anteriormente de outras compilaçoes.