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.847 ]

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


Procedimentos



Instalação de programas necessários

Resolvido o problema do swap, vamos instalar os programas necessários. Isso é um procedimento simples no Ubuntu (ou variantes de Debian) através do comando apt-get. Execute os comandos abaixo.

# apt-get update
# apt-get install squashfs-tools xnest mkisofs


Baixando o ISO

Primeiro é preciso obter uma cópia da imagem ISO da distribuição favorita (Ubuntu, Kubuntu, Xubuntu, Edubuntu). Um bom local para encontrar é no site www.ubuntu.com. Essa imagem ISO será necessária no processo de customização.

Observação: O seu kernel precisa ter suporte ao squashfs para realizar essa customização. O kernel instalado no Ubuntu já possui essa opção como padrão.

Ponto de montagem

Crie os 4 pontos de montagem que serão utilizados durante todo o processo. No nosso exemplo iremos montar 3 no diretório /mnt para centralizar e um em outro disco. Execute os comandos abaixo para criar os pontos de montagem.

# cd /mnt
# mkdir teste teste2 projeto


Posso criar o quarto ponto de montagem no diretório /mnt/teste3, porém no nosso exemplo irei usar outro disco que tenho formatado com Ext3, montado em /media/hdb1. Se quiser criar todos diretórios em outro disco fique a vontade.

Funções dos pontos de montagem:
  1. /mnt/teste - montagem do arquivo ISO original, gasta em média 700 MB;
  2. /mnt/teste2 - Montagem do arquivo ISO descompactado, gasta em média 1,5 GB;
  3. /media/hdb1 - Local de alteração dos programas e configurações , gasta em média 2 GB, por isso usei outro disco nesse tutorial;
  4. /mnt/projeto - Necessário para gerar o arquivo squashfs e o ISO customizados, gasta em média 700 MB.

Montando a imagem ISO

De posse da imagem ISO da distribuição favorita, montaremos a mesma no 1º ponto de montagem criado acima, utilize o comando descrito abaixo.

# mount -o loop /(path_da_ISO)/kubuntu-6.10-desktop-i386.iso /mnt/teste

O próximo passo é a montagem do arquivo /mnt/teste/casper/filesystem.squashfs no 2° ponto de montagem. Montaremos com os comandos abaixo.

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

Dentro do diretório /mnt/teste2 terá disponível todo o filesystem da distribuição descompactado, no qual teremos que copiar para o 3° ponto de montagem.

No nosso exemplo utilizamos o diretório /media/hdb1 (sistema de arquivos ext3). A formatação do sistema de arquivos pode ser qualquer uma nativa no Linux, ou seja não serve FAT, NTFS. Copie todo os arquivos para /media/hdb1 com o comando:

# cd /mnt/teste2
# cp -pRf * /media/hdb1
(este procedimento demora um pouco)

Últimos detalhes na montagem

Copie o arquivo resolv.conf e hosts da sua distribuição corrente para o 3° ponto de montagem. Isso possibilitará o acesso a internet e conseqüentemente o uso do apt-get. Se preferir você configurar manualmente em /media/hdb1/etc/resolv.conf e /media/hdb1/etc/hosts. Para copiar o seu atual resolv.conf e hosts execute os comandos abaixo.

# cp /etc/resolv.conf /media/hdb1/etc
# cp /etc/hosts /media/hdb1/etc


Usaremos o comando chroot para apontar o diretório /media/hdb1 como se fosse a raiz de nossa distribuição. Precisamos também montar os diretórios dinâmicos para o funcionamento do sistema em chroot, execute os comandos abaixo.

# chroot /media/hdb1
# mount -t proc none /proc
# mount -t sysfs none /sys
# cd /dev
# MAKEDEV pty
(o comando MAKEDEV é escrito em maiúscula)

Agora você já esta com um sistema funcional possível de usar o apt-get ou qualquer gerenciador de pacotes para instalar e remover programas.

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

GSlapt - Gerenciando os pacotes de seu Slackware

Personalizando o Ubuntu 9.04 com Screenlets

KnowledgeTree - Um Gerenciador Eletrônico de Documentos funcional

Conhecendo o eBox

Uma pequena análise do Gentoo Linux

  
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