| 1 | |
| 2 | = Como gerar uma imagem do "Live-cd Expresso" = |
| 3 | |
| 4 | 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 é: |
| 5 | |
| 6 | {{{ |
| 7 | $ dd of=livecd.iso if=/dev/zero count=4G bs=1k # Cria um arquivo de 4 gB cheio de zeros |
| 8 | $ mkfs.xfs livecd.iso # Formata o arquivo |
| 9 | }}} |
| 10 | |
| 11 | * Montar o sistema de arquivos |
| 12 | {{{ |
| 13 | # mkdir /media/loop # Criar uma pasta onde iremos montar a imagem |
| 14 | # mount livecd.iso /media/loop -o loop -o rw # Por sua vez montar o sistema de arquivos |
| 15 | }}} |
| 16 | * Agora é preciso instalar o sistema linux no arquivo, aqui copiaremos todo sistema de arquivos do sistema para o arquivo |
| 17 | {{{ |
| 18 | # cp -rpva /bin /boot /usr /lib /etc /home /var /sbin /sys /media/loop |
| 19 | }}} |
| 20 | 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: |
| 21 | {{{ |
| 22 | # chroot /media/loop |
| 23 | # su - |
| 24 | # mount /proc (opcional caso seja necessário) |
| 25 | }}} |
| 26 | 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 é: |
| 27 | Na sua distro (que não está no chroot) execute: |
| 28 | {{{ |
| 29 | $ Xnest :1 -ac |
| 30 | }}} |
| 31 | no chroot do live execute: |
| 32 | {{{ |
| 33 | # export DISPLAY=localhost:1.0 |
| 34 | }}} |
| 35 | Daí todo programa gráfico é mostrado numa janela. |
| 36 | |
| 37 | 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) |
| 38 | |
| 39 | Dentro da imagem que eu criei tem o script do linux-live, para finalmente gerar um cd bastar executar: |
| 40 | {{{ |
| 41 | # ./build |
| 42 | }}} |
| 43 | Este build vai gerar um .lzm para cada diretório do /. Esses lzm serão montados no boot via squashfs. Depois execute: |
| 44 | |
| 45 | Para criar uma imagem iso |
| 46 | {{{ |
| 47 | # /tmp/live_data_XXXX/expresso/make_iso.sh |
| 48 | }}} |
| 49 | Onde XXXX vai ser um número aleatório gerado pelo script. O resultado será um /tmp/expresso.iso. |
| 50 | Esse arquivo pode ser gravado num cd e usado. |
| 51 | |
| 52 | Ou então: |
| 53 | {{{ |
| 54 | # cp -r /tmp/live_data_XXXX /media/usbdisk |
| 55 | # /media/usbdisk/boot/bootinst.sh |
| 56 | }}} |
| 57 | Para criar um dispositivo usb ou qualquer outro disco bootável. |
| 58 | |
| 59 | Outras considerações: |
| 60 | Existe um arquivo que tem configurações da imagem. Esse arquivo é "/tmp/linux-live-6.0.7/.config" |
| 61 | Essa configuração abaixo é interessante para não precisar refazer todo o live-cd. |
| 62 | {{{ |
| 63 | ... |
| 64 | # list of directories which will be modularized |
| 65 | MKMOD="bin etc home lib lib64 opt usr root sbin var php_sessions" |
| 66 | }}} |
| 67 | 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. |