Customizando o (K/X/ED)Ubuntu Linux Live-CD

Neste artigo serão descritas uma série de técnicas necessárias para customizar o live-cd do Ubuntu e suas variações (Kubuntu, Xubuntu, EDubuntu). A prática de custumização é aceita e prevista pela licença do Ubuntu. Para conseguir esse tutorial em PDF acesse http://anakinpendragon.wordpress.com/.

[ Hits: 62.859 ]

Por: Alexandre da silva costa em 26/03/2007


Fechando a imagem



1) Gerando o arquivo squashfs

Todos os comandos abaixo serão executados com o usuário “root” do seu Linux. É preciso fechar a imagem em um novo arquivo squashfs de novo para coloca-lo no CD. Para execução desse processo precisaremos do squashfstools (instalado anteriormente). Primeiro vamos copiar o conteúdo do CD montado em /mnt/teste para um diretório onde é possível escrever. Digite o comando abaixo.

# cp -Rf /mnt/teste/* /mnt/projeto/

Neste ponto será necessário substituir o arquivo filesystem.squashfs original por uma imagem da nossa customização. Primeiro iremos apagar o original e em seguida iremos criar o nosso arquivo filesystem.squashfs resultado da nossa customização. Para criar o sistema de arquivos em Squashfs, utilize os comandos abaixo.

# rm /mnt/projeto/casper/filesystem.squashfs (apagando o original)
# mksquashfs /mnt/hdb1 /mnt/projeto/casper/filesystem.squashfs

O comando mksquashfs cria a partir do conteúdo de /mnt/hdb1 um arquivo filesystem.squashfs com seu conteúdo no formato squashfs. Esse procedimento demora um pouco.

Observação: Cuidado o conteúdo do CD não pode passar de 700MB, caso o contrário terá de se gravar em um DVD. Para verificar o tamanho do CD use o comando abaixo dentro do diretório do projeto (após o uso do comando acima).

# cd /mnt/projeto
# du -sh


O CD do Ubuntu e derivados possui uma série de programas para Windows que ocupam em torno de 70MB. Apagando irá liberar mais espaço no CD. Execute os comandos abaixo para limpar esses arquivos.

# rm -rf /mnt/projeto/bin
# rm -rf /mnt/projeto/programs
# rm -rf /mnt/projeto/autorun.inf


2) Recriação do MD5

Recrie o md5sum para poder testar a imagem. Isso é feito na gravação do CD.

# rm /mnt/projeto/md5sum.txt
# cd /mnt/projeto/ && find . -type f -print0 | xargs -0 md5sum > md5sum.txt


3) Gerando a nova imagem ISO

Gere a imagem ISO. Entre dentro do diretório do projeto e digite em uma única linha o comando mkisofs.

# cd /mnt/projeto/
# mkisofs -r -V "kubuntu-6.10" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /path_para_salvar_ISO/kubuntu-6.10.1-desktop-i386-custom.iso .


Observação: Fique atento e lembre de substituir o texto acima (local onde deseja gerar o iso) por uma partição com espaço suficiente para gerar o ISO. O título do CD está entre as aspas, ele vai criar a partir do conteúdo do diretório corrente, por isso o ponto "." no final do comando, não esqueça dele.

Em poucos instantes você terá sua imagem que pode ser gravada em um CD.

Com o CD pronto, agora você pode desmontar o swap e apagar o arquivo criado no principio desse tutorial com o comando.


# swapoff /tmp/swap
# rm /tmp/swap
(isso irá limpar o arquivo gerado para servir de swap extra, 1 GB)

Desmonte as imagens montadas (loop) em /mnt/teste e /mnt/teste2:

# umount /mnt/teste2
# umount /mnt/teste


Com o arquivo ISO criado você pode queimar o CD e fazer a instalação do sistema. Um pequeno bug foi encontrado em nossos testes. Mesmo que você instale todos os pacotes de internacionalização (pacotes que traduzem os programas para diversas línguas), na hora que você for instalar o CD, no final do processo de instalação o programa instalador do Ubuntu vai tentar baixar esses pacotes. Esse problema se resolve facilmente, cancelando o processo ou simplesmente desconectando da internet.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Procedimentos
   3. Customizando seu (K/X/ED)Ubuntu
   4. Instalando e removendo programas
   5. Fechando programas e preparando para gerar o ISO
   6. Fechando a imagem
   7. Testando sua imagem sem queimar o CD
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalação do Wonderland Server

Distribuições Linux Para Computadores Antigos

Squid + Iptables - Combinação Infalível

Instalando Zabbix no CentOS 7

Programação (III) - Programação Orientada a Objetos (POO)

  
Comentários
[1] Comentário enviado por erasmo em 26/03/2007 - 15:04h

Caro anakinpendragon,

na hora de montar o chroot, está dando este erro:
chroot: cannot run command `/bin/bash': Exec format error

erasmo

[2] Comentário enviado por anakinpendragon em 26/03/2007 - 15:59h

Quando o chroot é executado ele usa a pasta que você indicou no comando como a distribuição corrente. Quando ele faz isso ele procura o arquivo /bin/bash que deve estar dentro da pasta que você copiou o conteúdo do arquivo filesystem.squasf. verifique se na pasta que você copiou esta realmente o conteudo desse arquivo, que é toda a estrutura de um linux, com as pastas basicas /bin./usr,/etc/lib,etc... por que o chroot não esta achando o /bin/bash, que esta na pasta, no caso do meu tutorial /media/hdb1

[3] Comentário enviado por erasmo em 26/03/2007 - 18:27h

Caro anakinpendragon,

eu criei :
/expandida/64/teste
/expandida/64/teste2
/expandida/64/teste3
/expandida/64/projeto

segui o que vc diz.
a estrutura esta toda lá.

erasmo

[4] Comentário enviado por anakinpendragon em 26/03/2007 - 21:41h

Apos esse procedimento:
# cd /mnt/teste/casper/ (é necessário entrar nesse diretório)
# mount -o loop -t squashfs filesystem.squashfs /mnt/teste2

você copiou o conteudo de /mnt/teste2 para /mnt/teste3 certo?
# cd /mnt/teste2
# cp -pRf * /media/teste3

verifique o conteudo de /mnt/teste3 e veja se esta como eu descrevi, parecendo a raiz de um linux normal. pois o erro parece estar nessa parte do processo.

[5] Comentário enviado por flaviocc em 30/03/2007 - 16:26h

Ola, muito bom o seu artigo, porém
apareceu um erro aqui: "failed to initialize HAL!"
e outra caixa dizendo:
"Ocorreu um erro ao inicializar o Gerenciador de Configuração

Algumas configurações, como tema, sons ou papel de fundo, podem não funcionar corretamente.

A mensagem de erro foi:

Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

O GNOME tentará inicia o gerenciador de configurações na próxima vez que for iniciado."

outra coisa que notei é que não tem nada na pasta /home, e não tem o usuario ubuntu criado, como é que funciona no live??

abraços!

[6] Comentário enviado por anakinpendragon em 31/03/2007 - 10:51h

Oi Flaciocc, primeiramente o "failed to initialize HAL!" acontece aonde? Você esta usando o Ubuntu 6.10?
Quando a gente custumiza o live-cd só existe o usuario root. Somente na hora que você boota o Live-cd que ele cria o usuario do ubuntu. Na hora de salvar as custumizações você salvou o conteudo do usuario root em /etc/skel ?
Todo usario quando criado pega o conteudo de /etc/skel como modelo, que é como se fosse um profile padrão para todo novo usario.

[7] Comentário enviado por fernandoamador em 08/04/2007 - 23:47h

Ótimo artgo...

[8] Comentário enviado por kixkix em 02/07/2007 - 08:57h

Eu criei a iso normal, mas na hora de emular aparecia a tela que conta os 30 segundos, que tem um menu, onde eu escolho para instalar o ubuntu e depois começa a carregar, mas não abre.

Alguém sabe o que eu fiz de errado?

[9] Comentário enviado por nenemfromhell em 27/10/2007 - 15:56h

Quando eu tentei rodar o gnome pelo Xnest apareceu o seguinte erro(na janela do Xnest):

"O gerenciador de sessão do GNOME não conseguiu travar o arquivo '/home/username/.ICEauthority'.Por favor, reporte isso como um erro do GNOME.Às vezes este erro pode acontecer se o diretório do arquivo não possuir permissão de escrita.Você pode tentar fazer o login usando a sessão de segurança e checar se este é o caso"

Como faço para resolver?

[10] Comentário enviado por anakinpendragon em 27/10/2007 - 20:08h

Você esta usando xnest como root? se não provavelmente vai ter problema de permissão de arquivos na hora da remasterização.

[11] Comentário enviado por oiciruam em 02/01/2008 - 11:16h

Cara sou um tanto leigo no assunto. Me diga uma coisa esses procedimentos servem para criar um live cd do ubuntu que ja tenho instalado no meu computador, se não, como posso fazer isso

grato.

[12] Comentário enviado por kamushadenes em 30/01/2008 - 13:25h

não passa do splash
:(

[13] Comentário enviado por shara em 06/02/2008 - 13:22h

filesystem.squashfs

car aonde eu encntro eese arquivo aew brother..ja pesquise i nante vcs fazem tipo...legal

mas num to axando..
jah montei a iso na teste
descompactei e coloquei na otura..
mas tipow..

filesystem.squashfs

onde pego isso..||
que pasta eh essa casper dentro do monto d montagem ,,, do teste,,, onde puis a iso..||||

[14] Comentário enviado por shara em 06/02/2008 - 13:23h

alexandre cara c podia me passar seu msn||


o meu eh..

shara_alves@msn.com

agradecida se isso for possivel..

[15] Comentário enviado por flaviodbz em 24/02/2009 - 20:58h

To seguindo seu tutorial so estou tendo problemas com, o comando mksquashfs /mnt/hdb1 /mnt/projeto/casper/filesystem.squashfs quando vai gerar o novo arquivo para em 71%

root@gamemaniaco:/mnt# mksquashfs /mnt/hdb1 /mnt/projeto/casper/filesystem.squashfs
Parallel mksquashfs: Using 1 processor
Creating little endian 3.1 filesystem on /mnt/projeto/casper/filesystem.squashfs, block size 131072.
[========================================== ] 69509/97172 71%

[16] Comentário enviado por anakinpendragon em 25/02/2009 - 09:44h

Você já verificou se existe espaço em disco suficiente para gerar a imagem?

[17] Comentário enviado por flaviodbz em 06/03/2009 - 13:10h

kra descobri e esse mesmo o problema, mas estou tendo problemas em instalar alguns programas depois de instalar eles geram um novo filesystem.squashfs e tal mas nao hora de gerar um live cd da erro e fica na linha de comando, os programas q estou tendo este problema e o Mplayer, Broffice.org e o java so q o java eu instalei manualmente baixando do site e funciono corretamente flw t+

[18] Comentário enviado por amiltonbh em 18/12/2009 - 10:34h

nao funciona! no Xnest apareceu o seguinte erro:

"Could not connect to ssession bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken."

É na janela que estar com o chroot aparece o seguinte mensager:

"Xlib: extension "RANDR" missing on display "localhost:1.0".
gnome-session[8937]: WARNING: Could not make bus activated clients aware of DISPLAY=localhost:1.0 environment variable: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
gnome-session[8937]: WARNING: Could not make bus activated clients aware of GNOME_DESKTOP_SESSION_ID=this-is-deprecated environment variable: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
gnome-session[8937]: WARNING: Could not make bus activated clients aware of SESSION_MANAGER=local/cts-sistprod03:@/tmp/.ICE-unix/8937,unix/cts-sistprod03:/tmp/.ICE-unix/8937 environment variable: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
shm_open() failed: Função não implementada
shm_open() failed: Função não implementada
shm_open() failed: Função não implementada
shm_open() failed: Função não implementada

root@cts-sistprod03:/# shm_open() failed: Função não implementada
gnome-session[8937]: Gtk-CRITICAL: gtk_main_quit: assertion `main_loops != NULL' failed
gnome-session[8937]: CRITICAL: dbus_g_proxy_new_for_name: assertion `connection != NULL' failed
shm_open() failed: Função não implementada
shm_open() failed: Função não implementada
shm_open() failed: Função não implementada
shm_open() failed: Função não implementada
gnome-session[8937]: Gtk-CRITICAL: gtk_main_quit: assertion `main_loops != NULL' failed
gnome-session[8937]: GLib-GObject-CRITICAL: g_object_unref: assertion `G_IS_OBJECT (object)' failed
gnome-session[8937]: CRITICAL: error getting session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
gnome-session[8937]: WARNING: Unable to register presence with session bus
gnome-session[8937]: CRITICAL: dbus_g_proxy_new_for_name: assertion `connection != NULL' failed
gnome-session[8937]: devkit-power-gobject-WARNING: Couldn't connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: Arquivo ou diretório não encontrado
Erro do GConf: Falha ao contatar o servidor de configuração; algumas das causas possíveis são: necessidade de habilitar rede TCP/IP no ORBit ou existência de arquivos de bloqueio deixados para trás no NFS devido a algum um erro do sistema. Para mais informações consulte: http://projects.gnome.org/gconf/. (Detalhes - 1: Falha ao obter uma conexão à sessão: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.)
Erro do GConf: Falha ao contatar o servidor de configuração; algumas das causas possíveis são: necessidade de habilitar rede TCP/IP no ORBit ou existência de arquivos de bloqueio deixados para trás no NFS devido a algum um erro do sistema. Para mais informações consulte: http://projects.gnome.org/gconf/. (Detalhes - 1: Falha ao obter uma conexão à sessão: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.)
gnome-session[8937]: WARNING: Error retrieving configuration key '/desktop/gnome/session/idle_delay': Falha ao contatar o servidor de configuração; algumas das causas possíveis são: necessidade de habilitar rede TCP/IP no ORBit ou existência de arquivos de bloqueio deixados para trás no NFS devido a algum um erro do sistema. Para mais informações consulte: http://projects.gnome.org/gconf/. (Detalhes - 1: Falha ao obter uma conexão à sessão: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.)
gnome-session[8937]: CRITICAL: error getting session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken."


favor se alguem souber como resolver isso me passe por favor me ajude. eu fiz todo o procedimento mais mesmo assim nao funcionou.

[19] Comentário enviado por iane em 20/12/2011 - 11:51h

Bom dia, o seu artigo está excelente. Parabéns.

Estou com o seguinte problema:

# mksquashfs /mnt/hdb1 /mnt/projeto/casper/filesystem.squashfs
Parallel mksquashfs: Using 2 processors
Creating little endian 3.1 filesystem on /mnt/projeto/casper/filesystem.squashfs, block size 131072.
[==== ] 12733/163023 7%sqlzma_un: ZLIB data error
FATAL ERROR:get_fragment:1258: res -3


Já verifiquei meu espaço em disco, é mais que suficiente.
Você poderia me ajudar?

Obrigada.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts