Difference between revisions of "Knoppix Remastering Howto Brazilian Portuguese"


From Knoppix Documentation Wiki
Jump to: navigation, search
(Traduções)
(Problemas Comuns)
Line 592: Line 592:
 
  chroot /mnt/hda1/knx/source/KNOPPIX/
 
  chroot /mnt/hda1/knx/source/KNOPPIX/
  
  # e montadndo "/dev/pts>"
+
  # e montadndo "/dev/pts"
 
  mount -t devpts /dev/pts/ /dev/pts
 
  mount -t devpts /dev/pts/ /dev/pts
 
</nowiki></pre>
 
</nowiki></pre>

Revision as of 21:01, 22 June 2007

Este guia mostrará a você como remasterizar o KNOPPIX a partir do CD original em inglês. Isto significa que muitas configurações precisarão ser feitas para deixar o sistema do jeito que você quer.

Se quiser evitar muito trabalho na remasterização (tal como adicionar ou remover programas), você pode começar a partir de uma versão personalizada do Knoppix. Se quer isso, consulte o tópico Knoppix Customizations, que trata de diversas distribuições adaptadas baseadas no Knoppix (geralmente, em inglês) e voltadas para uma área específica.

Observações:

  • Este guia é uma tradução livre do texto original. Alguns comentários/observações foram acrescentados a fim de esclarecer certos pontos "obscuros" ou manifestar experiências pessoais.
  • Os comandos de terminal mostrados neste texto devem ser digitados em uma única linha, isto é, não pode haver quebras de linha. Onde houver a barra invertida ("\"), significa que o comando continua na linha seguinte, mas a barra invertida em si não deveria ser digitada.
  • Se você tem algum comentário/sugestão, por favor, utilize a guia Discussion na parte superior da página.


Contents

Requisitos do Sistema

  • CD-ISO
    • 3 GB livres numa partição de disco formatada com sistema de arquivos Linux (ext2, ext3, reiserfs, xfs, etc.)
  • DVD-ISO
    • 5 GB livres de espaço de RAM+swap (para um DVD completo)
    • 15 GB livres numa partição de disco formatada com sistema de arquivos Linux (ext2, ext3, reiserfs, xfs, etc.)

Preparando a Remasterização

  1. Inicialize o computador a partir do CD do Knoppix
  2. Abra um "shell" como "root": KMenu => Knoppix => Root Shell
    • Nota: Todos os comandos seguintes são executados dentro deste "shell" como "root".
  3. Configure sua conexão com a Internet (você precisará disto mais tarde).
    • Nota 1: Se você usa DHCP, pode ser que a conexão já esteja configurada.
    • Nota 2: Execute ifconfig para checar as configurações.
  4. Defina a partição que você utilizará no trabalho. Neste guia, ela será chamada de hda1. A partição deverá ter um mínimo de 3 GB de espaço livre.
  5. Monte a partição:
    mount -rw /dev/hda1 /mnt/hda1
    • Nota: O parâmetro -rw serve para habilitar a partição para leitura e escrita. Isso é importante, pois do contrário o comando chroot dará erros. Utilize o comando mount sem nenhum parâmetro para verificar essa habilitação.
  6. Crie um diretório-raiz para trabalhar nele:
    mkdir /mnt/hda1/knx
    • Nota: Se você puser todos os seus arquivos aqui será mais fácil fazer limpeza depois.
  7. Se você não tem RAM de 1 GB (verifique com egrep (MemTotal|SwapTotal) /proc/meminfo(=RAM+swap) ou cat /proc/meminfo (=RAM+swap)), então você precisará de um arquivo de trocas ("swap"):

cd /mnt/hda1/knx dd if=/dev/zero of=swapfile bs=1M count=750 mkswap swapfile swapon swapfile

  1. Crie outros dois diretórios, um para seu novo CD mestre e outro para a fonte, na partição de trabalho. Crie também subdiretórios chamados "KNOPPIX" dentro de cada um:
    mkdir -p /mnt/hda1/knx/master/KNOPPIX
    
mkdir -p /mnt/hda1/knx/source/KNOPPIX
  1. Agora, copie os arquivos de "/KNOPPIX" para o diretório-fonte:
    cp -Rp /KNOPPIX/* /mnt/hda1/knx/source/KNOPPIX
    • Nota: Isto vai demorar muito, pois estamos copiando 2 GB.
    • Aviso: Para fazer a cópia mais rápido, poderíamos utilizar o comando unionfs. Porém, a partir do Knoppix 4.0.2 há um erro no unionfs, o que impede a sua utilização. É melhor utilizar o comando cp mesmo.
  2. Adicionalmente, copie o diretório "boot" do CD:
    cp -ar /cdrom/boot /mnt/hda1/knx/master/boot
    • Nota: Você precisará destes arquivos para construir o arquivo ISO mais tarde.
  3. Para o Knoppix 5.0.1. você também deve copiar o diretório "modules":
    cp -ar /cdrom/KNOPPIX/modules /mnt/hda1/knx/master/KNOPPIX/.
  4. Copie a página HTML principal para funcionar como página inicial:
    cp /cdrom/index.html /mnt/hda1/knx/master/
  5. Copie todos os arquivos necessários, exceto o arquivo KNOPPIX (que tem cerca de 700 MB):
    • Para Knoppix < 3.4:
    cd /cdrom/KNOPPIX && find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/KNOPPIX/ \;
    • Para Knoppix >= 3.4:
    cd /cdrom && find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/ \;
    • Nota: Para a versão em DVD, você terá de usar -size -15000k e copiar o diretório KNOPPIX2 assim: cp /cdrom/KNOPPIX/KNOPPIX2 /mnt/hda1/knx/master/KNOPPIX/
  6. Prepando o ambiente para o comando chroot:
    mount --bind /dev /mnt/hda1/knx/source/KNOPPIX/dev
    
mount --bind /proc /mnt/hda1/knx/source/KNOPPIX/proc</nowiki>
  1. Agora, você pode entrar como "chroot" dentro do diretório KNOPPIX copiado na partição (isto é, tornar o diretório "knx/source/KNOPPIX" a partição "root" do novo sistema):
    chroot /mnt/hda1/knx/source/KNOPPIX
  2. Se você obtiver erros relativos a /dev/null aos montes, consulte a sessão common problems.

Neste ponto, você estará como "chroot". Portanto, o "/" é realmente "/mnt/hda1/knx/source/KNOPPIX".

Configurando como "chroot"

Lembre-se de que qualquer coisa que você faça ou crie no ambiente como "chroot" será "queimado" no CD. Se você faz alguma alteração (por exemplo, configurações no APT, no proxy, etc.), tome nota destas coisas para conseguir desfazer as mudanças antes da remasterização.

Configurando o acesso à Internet

Para usar a Internet você precisa editar o arquivo "/etc/resolv.conf" para adicionar o nome do servidor (ou saia do modo "chroot" e copie o arquivo "resolv.conf" exterior para o diretório de trabalho:

cp /etc/dhcpc/resolv.conf /mnt/hda1/knx/source/KNOPPIX/etc/dhcpc/resolv.conf

A configuração de proxy pode ser exportada com

export http_proxy=http://your.proxy.com:<porta-proxy>

Para confirmar a conexão com a Internet dentro do ambiente "chroot", teste algo como

ping google.com

Se o ICMP for barrado em algum firewall ou semelhante, tente

lynx http://www.google.com

e verifique se obtém a página após permitir "cookies".

Configurando o SAMBA

Se deseja suporte ao serviço "smbd", altere o grupo de trabalho no arquivo "smb.conf" para o grupo de trabalho da rede local Windows. No caso do Windows XP, o padrão é "MSHOME".

Adicionando e removendo pacotes

Atualizando a lista de pacotes

Atualize a lista de pacotes do APT com "apt-get update".

  • Nota: Se o comando "apt-get update" resultar no erro "FATAL -> Could not set non-blocking flag Bad file descriptor", você precisará se certificar de que seu ambiente "chroot" está montado sem a opção "nodev". Consulte o item sobre erros no "/dev/null" quando entra com ambiente "chroot" pela primeira vez.
  • Aviso: O comando "apt-get upgrade<
  • Nota: Se o "<tt>apt-get" resultar no erro "Dynamic NMap ran out of room", você pode tentar o seguinte truque, que já resolveu o problema em alguma situação:
    echo 'APT::Cache-Limit "25168524";'>> /etc/apt/apt.conf
    Nota: Isso foi feito como "chroot" conforme descrito acima.
Listando pacotes

Antes de poder adicionar programas, você provavelmente precisará remover alguns pacotes. Para obter uma lista de pacotes instalados, tecle isto:

dpkg-query -l

Se você está procurando por pacotes instalados pelo tamanho, para identificar os que ocupam mais espaço, então utilize o comando a seguir, que vai listar os pacotes em ordem decrescente de tamanho:

dpkg-awk "Status: .* installed$" -- Package Installed-Size | \
  awk '{print $2}' | egrep -v '^$' | xargs -n2 echo | \
  perl -pe 's/(\S+)\s(\S+)/$2 $1/' | sort -rg

O comando a seguir é, pelo menos, dez vezes mais rápido:

dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n

e você não precisa de "dpkg-awk" ou "awk" ou "perl"; entretanto, ele não exclui pacotes que não estejam instalados. Se você tiver problemas com o comando "sort" acima, tente usar "KPackage", expandido em todas as árvores e ordenado pela coluna de tamanho para encontrar os maiores pacotes.

Ou, você poderia usar este comando para obter velocidade no comando "dpkg-query" com os pacotes não-instalados que não forem listados:

dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | grep -v deinstall | sort -n | awk '{print $1" "$2}'

Ele faz a mesma coisa anterior, para os que não têm o "dpkg-awk".

Removendo pacotes indesejados

Para remover um pacote (e todos os pacotes dependentes dele), tecle isto:

apt-get remove --purge name-of-package-to-remove

Para verificar se há pacotes órfãos, tecle isto:

deborphan

Se quer salvar mais espaço retirando os pacotes órfãos irritantes {?}(que crueldade!){?}, tecle isto (Cuidado: O "yes/no" não não aparecerá para confirmar a remoção destes pacotes. Quando você pressionar Enter depois deste comando, os pacotes terão desaparecido!):

deborphan | xargs apt-get -y remove

Se você não está seguro sobre o comando anterior e quer ver o que acontecerá sem fazer nenhuma mudança, simplesmente adicione a opção "-s" ao comando "apt-get" como isto (você pode fazer isto com todos os comandos "apt-get", e é um bom hábito usar esta opção antes de operações em massa como esta):

deborphan | xargs apt-get -s -y remove
Adicionando pacotes

Agora, a parte boa. Se você deseja adicionar um pacote, tecle isto:

apt-get install 'name-of-package-to-install

Então não sabe que pacotes instalar? Tecle isto:

apt-cache search .* | sort | less

Quando a lista aparecer, você pode examiná-la (mais de 13 mil linhas!) ou procurar por textos usando o comando "/": /texto-a-procurar.

Limpando o cachê

Quando você terminar de remover e adicionar pacotes, uma boa maneira de limpar tudo é teclando isto:

COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P

Também, dado que o sistema de pacotes do Debian guarda em "cachê" os pacotes baixados, você pode querer fazer a seguinte limpeza daqueles arquivos inúteis:

apt-get clean

Configurando as configurações de novo usuário

As configurações de usuário estão em "/etc/skel. Este diretório será copiado para fazer os diretórios "home" dos novos usuários.

  • Dica: Não coloque arquivos em "/root" pois eles serão somente disponíveis (em tempo de execução) em "/KNOPPIX/root".

Observe que o usuário padrão "knoppix" não é criado com "adduser(1)", logo o diretório "/etc/skel" não é completamente copiado, mas seletivamente. Isto é, para fazer um arquivo ".xyrc" aparecer em "/home/knoppix" não é suficiente colocá-lo em "/etc/skel". Uma possibilidade é estender o código em "/etc/X11/Xsession.d/45xsession" o qual é responsável por preencher o diretório "/home/knoppix".

Note that the default user 'knoppix' is not created by adduser(1), thus /etc/skel is not copied completely but rather selectively. That is, to make a file .xyrc appear in /home/knoppix, it is not sufficient to place it in /etc/skel. One possibility is to extend the code in /etc/X11/Xsession.d/45xsession which is responsible for filling /home/knoppix.

Autoexecutando programas

Quando você quer autoexecutar alguns programas, pode-se criar um script e pô-lo no diretório "/etc/rc5.d/", que executa itens antes de o ambiente X ser carregado. Pesquise o processo "init" para conhecer mais possibilidades.

Editando o script de auto-configuração do KNOPPIX

Você pode encontrar muita informação interessante sobre como o KNOPPIX auto-configura seu sistema estudando o script "/etc/init.d/knoppix-autoconfig script". As seguintes configurações são particularmente notáveis.

Trocando a figura de plano de fundo do KDE

O script de auto-configuração configura como figura do plano de fundo padrão do KDE uma figura presente no CD-ROM. Esta figura pode ser facilmente trocada quando você está remasterizando o KNOPPIX.

  • No Knoppix 3.3 e abaixo ela está em "/cdrom/KNOPPIX/background.gif"
  • No Knoppix 3.5 e acima ela está em "/cdrom/KNOPPIX/background.jpg"

{?}Como trocar, então?{?}

Editando o uso da unidade de disquete e de CD-ROM ou adicionando um script personalizado

O script de auto-configuração configura ambas as unidade de disquete e de CD-ROM. Os comandos que fazem isso são "floppyconfig" e "cdromconfig", respectivamente. O script de auto-configuração também executará "cdrom/KNOPPIX/knoppix.sh", o qual é um script fácil de alterar quando remasterizando.

Alterando os parâmetros de inicialização padrões

Todos os parâmetros de "boot" obtêm valores padrões a partir do script "/etc/init.d/knoppix-autoconfig". Este é um script em "bash" muito complexo (você precisa conhecer bastante o "bash" para lidar com ele), mas é o local onde você pode editar qualquer dos parâmetros padrões. Por exemplo, você poderia procurar ocorrências de "kde" para alterar para "twm" nas variáveis que indicam o desktop padrão (DESKTOP, IIRC, etc.). Outro exemplo poderia ser a mudança do idioma padrão.

  • Nota: Se você está interessado em trocar o idioma padrão que o KDE utiliza, a maneira mais fácil é carregar o KDE (veja as instruções abaixo) e usar o utilitário de configuração do KDE para selecionar o idioma desejado.

Configurando a sessão do X

Quando trabalha com programas baseados no ambiente X, você precisa se certificar de que o seu monitor está configurado corretamente. Você pode fazer isto manualmente quando remasteriza o KNOPPIX. Também, em dois scripts relativos à Sessão X você pode mudar ou desabilitar os sons de inicialização e desligamento.

Iniciando programas baseados no ambiente X

Quando testando programas baseados no ambiente X, você terá que

export DISPLAY=localhost:0.0

que permitirá a você se conectar com o a sua sessão X normal. Alternativamente (se você precisar testar gerenciadores de janelas), você pode criar uma sessão aninhada. Fora do "chroot", execute

Xnest -ac :1

Dentro do "chroot", configure a sua variável DISPLAY

export DISPLAY=localhost:1

Uma coisa interessante em "/etc/inid.d/xsession":

  • ele TAMBÉM coloca o plano de fundo como "/usr/local/lib/knoppix.gif".
Modificando/Desabilitando o som de inicialização

O som da inicialização é tocado por "/etc/X11/Xsession.d/45xsession". Você pode desabilitá-lo colocando comentários (#) nas seguintes linhas:

playsound(){ 
# Play sound if soundcore module present (checking /dev/sndstat is unreliable)
# OGGPLAY=/usr/bin/ogg123
# PLAY=/usr/bin/wavp
# [ -x "$PLAY" ] || PLAY=/usr/bin/play-sample
# [ -x "$PLAY" ] || PLAY=/usr/bin/play
# if [ -x "$OGGPLAY" -a -f /usr/share/sounds/startup.ogg ]; then
# case "$(lsmod)" in *sound*) { $OGGPLAY -q -p 64 /usr/share/sounds/startup.ogg >/
# elif [ -f /usr/share/sounds/startup.wav -a -x "$PLAY" ]; then
# case "$(lsmod)" in *sound*) { $PLAY /usr/share/sounds/startup.wav >/dev/null 2>&
# fi
}
Modificando/Desabilitando o som de finalização

O som da finalização é tocado por "/etc/X11/Xsession.d/45xsession". Você pode desabilitá-lo colocando comentários (#) nas linhas 210-220 do script:

## Play informational sound if soundcore module present
## (checking /dev/sndstat is unreliable)
#OGGPLAY=/usr/bin/ogg123
#PLAY=/usr/bin/wavp
#[ -x "$PLAY" ] || PLAY=/usr/bin/play-sample
#[ -x "$PLAY" ] || PLAY=/usr/bin/play
#if [ -x "$OGGPLAY" -a -f /usr/share/sounds/shutdown.ogg ]; then
#case "$(</proc/modules)" in *sound*|*snd_*) { $OGGPLAY -q -p 64 /usr/share/sound
#elif [ -f /usr/share/sounds/shutdown.wav -a -x "$PLAY" ]; then
#case "$(</proc/modules)" in *sound*|*snd_*) { $PLAY /usr/share/sounds/shutdown.w
#fi

Trocando a imagem e a mensagem de "boot" e o texto do script de inicialização

Ainda no ambiente "chroot", você poderá facilmente trocar a imagem e as mensagens que aparecem durante a inicialização e a figura de plano de fundo padrão do KDE.

Trocando a imagem de "boot"

A imagem de "boot" é a primeira imagem que você vê na tela no momento da inicialização do Knoppix com CD ou DVD. Ela é semelhante a arte de texto ASCII e é normalmente o texto "Knoppix" algo "brilhante". Você pode trocar isto para qualquer figura que tenha resolução de 640x400 e somente 16 cores.

  1. Mude para o diretório /mnt/hda1/knx/master/boot (altere "/mnt/hda1/" para refletir a sua configuração particular):
    cd /mnt/hda1/knx/master/boot/isolinux
  2. Faça cópia de segurança do antigo logotipo no caso de algo dar errado:
    mv logo.16 logo.16.backup
  3. Crie uma figura de 640x400 pixels com 16 cores e salve-a como GIF, por exemplo, "logo.16.gif". Utilize o GIMP ou KolourPaint, por exemplo.
    • Nota: Você pode usar uma imagem que originalmente tenha mais de 16 cores, mas terá que forçosamente convertê-la para 16 cores antes de continuar este procedimento.
  4. Converta a figura GIF para "lss16" usando as ferramentas incluídas no CD do Knoppix:
    giftopnm < 640x400x16.gif > logo.ppm
    
ppmtolss16 <logo.ppm > logo.16
Trocando a mensagem de "boot"

A mensagem de "boot" é o texto que você vê sob a imagem de "boot" na tela no momento da inicialização do Knoppix com CD ou DVD. Esse texto diz algo sobre a versão do Knoppix e um linque para o saite do Knoppix. Você pode alterar esse texto para o que quiser, mas não deve colocar muito texto ou a tela de "boot" ficará engraçada. Restrinja a apenas uma linha de texto que não seja maior do que a original.

  1. Mude para o diretório /mnt/hda1/knx/master/boot (altere "/mnt/hda1/" para refletir a sua configuração particular):
    cd /mnt/hda1/knx/master/boot
  2. Faça cópia de segurança da mensagem original no caso de algo dar errado:
    cp boot.msg boot.msg.backup
  3. Edite a mensagem com um editor de textos. Você verá no topo da mensagem que ela mostra a imagem. Não modifique esse texto, apenas o número da linha embaixo:
    {?}Não compreendi esta última instrução, que no original é: "Edit the message with a text editor. You'll see at the top of the message that it shows the graphic. Don't change this text, just the line under."{?}
    vi boot.msg
Alterando o texto do script de inicialização

O texto do script de inicialização é o texto que você vê depois da tela de "boot", enquanto o Knoppix carrega e configura o sistema. Você pode alterar esse texto como melhor achar, até mesmo adicionar novas linhas ao script; entretanto não recomendamos "mexer" nesse arquivo. Limite-se a editar apenas a mensagem "Benvindo ao KNOPPIX".

  1. Mude para o diretório /mnt/hda1/knx/master/boot (altere "/mnt/hda1/" para refletir a sua configuração particular):
    cd /mnt/hda1/knx/master/boot
  2. Faça cópia de segurança do "minirt.gz" original no caso de algo dar errado:
    cp minirt.gz minirt.gz.backup
  3. Descomprima "minirt.gz":
    gunzip minirt.gz
  4. Crie um diretório temporário para montar o sistema de arquivos "minirt":
    mkdir todelete
  5. Monte o sistema de arquivos "minirt" como "ext2":
    mount minirt todelete -t ext2 -o=/dev/loop0
  6. Edite o script linuxrc para mostrar a mensagem que você deseja. Você vai encontrar a mensagem padrão com aproximadamente 2 páginas e configurada com várias cores, i.e. ${WHITE}, ${RED}, etc., tornando difícil a leitura.
    vi todelete/linuxrc
  7. Desmonte o sistema de arquivos "minirt":
    umount todelete
  8. Comprima o sistema de arquivos "minirt":
    gzip -9 minirt
  9. Remova o seu diretório temporário:
    rmdir todelete

Abrindo o KDE para modificar menus, ícones, etc.

Enquanto estiver no ambiente "chroot", você pode carregar o KDE e usar as ferramentas de configuração do próprio KDE para modificar botões, menus, ícones, etc. Quando terminar, você pode sair do KDE e copiar os arquivos de "/home/knoppix" para "/etc/skel" para manter estas mudanças. Para carregar o KDE faça o seguinte:

  1. Se você não está no "runlevel" 2 (i.e., se você ainda está no KDE), mude para o "runlevel" 2.
    init 2
  2. Copie os arquivos de "/etc/skel" para "/home/knoppix".
    cp -Rp /etc/skel /home/knoppix
  3. Mude as permissões de dono do diretório "/home/knoppix" para o usuário "knoppix".
    chown knoppix:knoppix -R /home/knoppix
  4. Copie a configuração de X11 exterior sobrepondo a do ambiente do "chroot" (pressione Ctrl+Alt+F2 para ir para um terminal "não-chroot" e então pressione Ctrl+Alt+F1 para voltar quando tiver feito a cópia).
    cp /etc/X11/xorg.conf /mnt/hda1/knx/source/KNOPPIX/etc/X11
      • Nota: No Knoppix 3.7 é o arquivo "XF86Config-4" no lugar de "xorg.conf".
  5. (Opcional) Mude para o usuário "knoppix". Se você quiser desinstalar pacotes, fique como "root" e pule este passo. Se você quer configurar botões, ícones, plano de fundo, etc. que você vê quando o KDE inicia, assegure-se de fazer este passo.
    su knoppix
  6. Inicie o KDE
    startx
  7. Faça as mudanças no KDE
  8. Saia do KDE
  9. (Opcional - faça este passo somente se você fez o passo 5) Saia do "su" e volte para o usuário "knoppix".
    exit
  10. Copie o diretório "/home/knoppix" de volta a "/etc/skel" para manter as mudanças.
    mv /etc/skel /etc/skel-old
    
mv /home/knoppix /etc/skel
  1. Reconfigure o dono de "/etc/skel" como "root".
    chown root:root -R /etc/skel
  2. Remova o arquivo "xorg.conf" {?}por quê?{?}
    rm /etc/X11/xorg.conf
Trocando a imagem "ksplash" do KDE

Você pode mudar a imagem que o KDE exibe via "ksplash" quando ele inicializa. Estas imagens estão no diretório "/mnt/hda1/knx/source/KNOPPIX/usr/share/apps/ksplash/Themes/Default/". Você provavelmente vai querer trocar o arquivo "splash_top.png" por uma figura PNG personalizada de 400x248 de resolução. Note que o "ksplash" não colocará automaticamente uma borda ao redor da figura. Se você quiser uma borda, terá que manualmente editar a figura.

Saindo do "chroot"

Isto deve acontecer só depois das configurações e antes da criação do arquivo ISO.

Se você montou "/proc", você precisará desmontá-lo -- isto é muito importante!

umount /proc

Pressione Ctrl+D para voltar à raiz original (ou seja, sair de "chroot").


Remasterizando o arquivo ISO

Terminamos a parte da personalização e estamos prontos para "queimar" o CD/DVD! Primeiro, façamos algumas limpezas:

  • remova qualquer arquivo .bash_history, tmp, etc.
  • reverta qualquer mudança que você não deseja que vá para o disco
    rm -rf /mnt/hda1/knx/source/KNOPPIX/.rr_moved

KNOPPIX Compressed Image

Now we'll make the big KNOPPIX file which is an ISO 9660 filesystem compressed for use by the cloop driver:

mkisofs -R -U -V "KNOPPIX.net filesystem" -publisher "KNOPPIX www.knoppix.net" \
     -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda1/knx/source/KNOPPIX \
  | nice -5 /usr/bin/create_compressed_fs - 65536 > /mnt/hda1/knx/master/KNOPPIX/KNOPPIX

the "www.knoppix.net" and "Knoppix.net filesystem" can be changed to what you want to call the file. You will get an error that it doesn't conform to ISO standards -- you can ignore this. Note that, to run create_compressed_fs, you'll need to have enough space to store the entire ISO in RAM/swap. Ensure you have at least 800M of free space before starting.

In Knoppix 3.4 the create_compressed_fs script has been updated so be sure to use it to obtain the best result. It has a new option -b (best), which enables the best compression by using different compression schemes and tries to optimize that way, but be careful, because that option is slow (10x slower).

Note: The above didn't work for me using the latest create_compressed_fs. I could create the ISO but it couldn't read the compressed image properly when booting (I/O errors when reading the cloop0 device). I think this was because create_compressed_fs didn't have enough RAM and it was just failing silently. The command below did work though. It uses a file rather than memory for temporary storage:

mkisofs -R -U -V "KNOPPIX.net filesystem" -publisher "KNOPPIX www.knoppix.net" \
    -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda1/knx/source/KNOPPIX \
      | nice -5 /usr/bin/create_compressed_fs -B \
   65536 -f /mnt/sda1/isotemp - /mnt/hda1/knx/master/KNOPPIX/KNOPPIX

Live CD ISO

If all went well, onto making the final CD-ROM Image:

cd /mnt/hda1/knx/master
find -type f -not -name md5sums -not -name boot.cat -not -name isolinux.bin \
   -exec md5sum '{}' \; > KNOPPIX/md5sums

(this will update the md5 hashes of the files included in the ISO, used for integrity checking) Now to burn the image; for Knoppix <= 3.3:

mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img -c KNOPPIX/boot.cat \
   -hide-rr-moved -o /mnt/hda1/knx/knoppix.iso /mnt/hda1/knx/master

for Knoppix >= 3.4 or other isolinux based distributions:

mkisofs -pad -l -r -J -v -V "KNOPPIX" -no-emul-boot -boot-load-size 4 \
   -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
   -hide-rr-moved -o /mnt/hda1/knx/knoppix.iso /mnt/hda1/knx/master

(the ISO is stored in /mnt/hda1/knx/knoppix.iso)

Burn the ISO using your favorite tools, and you're ready!

Tips

I have had good results remastering working from the CD as root working from fluxbox. Just say "knoppix 2" at the boot prompt and it will boot you to a root prompt where you can then say "startx /usr/bin/fluxbox". I like to use the xterm unicode shell.

Package Management

While working chroot doing the remastering I like to use

apt-get remove --purge pkg-name

to remove packages because before it does anything it will stop and show details on what it is fixing to remove and let you say "yes or no".

If you don't use the above "apt-get" instructions and have a lot to cleanup and purge, here's the easy way to do it:

 COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' > topurge

That will make a list of all removed packages to purge and then you just say

dpkg -P `< topurge `

and you're all done.

COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P

is a one-line version of this. Also use

deborphan | xargs dpkg -P .

Alternatives for Low-Memory Machines

You don't really need 1G swap as there are two new tools to create compressed filesystems. Here are some candidates to make compressed fs:

  • Valentijn's rewrite [1]
  • Quozl's port of compressloop for Knoppix 3.4 [2]
  • Quozl's distributed compressloop (use more than one processor to speed things up) [3] or [4]
  • Justin's patch [5] (link broken) I also just wrote a distributed cloop compressor(or for smp) It's in that same directory.

Test CD Image Without Burning a CD

If you have a spare partition with at least 700MB free space formatted with ext2, ext3 or Vfat, you can use this for test by booting from a floppy disk. A floppy boot will look for a partiton with /KNOPPIX/ in the root, and the compressed image /KNOPPIX/KNOPPIX. Instead of using the sub-directory /mnt/hda1/knx/master/KNOPPIX/ as described above, it should be called /mnt/hda2/KNOPPIX/ . The root index.html will then be located at /mnt/hda2/index.html and the compressed image will be at /mnt/hda2/KNOPPIX/KNOPPIX . Now you can boot from floppy and use /mnt/hda2 as your image. For further information see Hd BasedHowTo.

If you don't have an extra partition or you don't want to do so much for it, you can use Qemu ( see [6] ) with the ISO image like this:

qemu -m 128 -cdrom /temp/knoppix-custom.iso -boot d -net user

You even do not have to build a hard disk image before, just install Qemu and try this. Amazing!

Test remastered version without creating cloop file/iso

i use a setup similar to knoppix terminal server to test the remastered files without having to recreate a cloop image every time: the remastered files live in an ext2 filesytem in a loopfile (knoppix_loop) mounted rw (this is where i chroot in). when i want to test the current setup, i have another machine network boot and use the files from the loopfile directly (needs another miniroot.gz). See User:Ml#dev_setup

If you want to use only one machine, you'll have to reboot (or use qemu) and use the "loopfile" and "fromhd" cheatcodes (see User:Ml#miniroot_changes). For example, this is what my grub boot entry looks like:

title           Remastered Knoppix
root            (hd0,0)
kernel          /boot/myknoppix/vmlinuz fromhd=/dev/hda4 loopfile=/samba/share/isos/knoppix_loop lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=791 quiet BOOT_IMAGE=knoppix
initrd          /boot/myknoppix/miniroot.gz

Booting Knoppix images with GRUB

  • First copy /boot off the Knoppix cd to your boot partition (or even your dos partition). I named mine boot.knoppix

Copy the master/KNOPPIX directory to your root directory of any hard disk. You may place it somewhere other than the boot partition (ext2/3, reiserfs, vfat are supported).

  • for Knoppix <= 3.3, put the following in your /boot/grub/menu.lst:
title KNOPPIX
        root   (hd0,0)
        kernel /boot.knoppix/vmlinuz 2 fromhd=/dev/hda4 lang=us
        initrd /boot.knoppix/miniroot.gz
  • for Knoppix >= 3.4 or other isolinux based distributions:
title KNOPPIX
        root   (hd0,0)
        kernel /boot.knoppix/isolinux/linux 2 fromhd=/dev/hda4 lang=us
        initrd /boot.knoppix/isolinux/minirt.gz
  • notice the fromhd parameter: it's the location of the /KNOPPIX directory
  • reboot and have fun.

Helpful Scripts


This is the recommended directory layout for remastering KNOPPIX:

. (invoke ../remaster from here)
|-- master (invoke ../../umountbootimage from here)
|   |-- KNOPPIX
|   |   |-- KNOPPIX (compressed image)
|   |   |-- boot.img (boot floppy image)
|   |   `-- (other files snipped)
|   `-- index.html
`-- source
    `-- KNOPPIX (this directory can be chrooted into)
        |-- bin
        |-- boot
        |-- cdrom
        |-- dev
        |-- etc
        |-- floppy
        |-- home
        |-- initrd
        |-- lib
        |-- mnt
        |-- none
        |-- opt
        |-- proc
        |-- root
        |-- sbin
        |-- tmp -> /var/tmp
        |-- usr
        |-- var
        `-- vmlinuz -> boot/vmlinuz-2.4.22-xfs

the following script "remaster" will do the remaster process for you. Use as root, or you will end up with wrong access rights in the image.

The script has last been tried out on Debian sid on 2004-04-02.

#!/bin/bash -x
# This script builds a new KNOPPIX ISO image.
# Copyright (C) 2004 by Marc Haber <mh+knoppix-remaster@zugschlus.de>
# License: GPL V2

ROOT="$PWD"
SOURCE="$ROOT/source/KNOPPIX"
MASTER="$ROOT/master"
CLOOPTARGET="$ROOT/master/KNOPPIX/KNOPPIX"
TARGET="$ROOT"
EXCLUDELIST="$ROOT/source/excludelist"

rm -rf $SOURCE/.rr_moved

cd $SOURCE
mkisofs -R -U -V "KNOPPIX.net filesystem" \
-P "KNOPPIX www.knoppix.net" \
-hide-rr-moved -cache-inodes -no-bak -pad \
-exclude-list $EXCLUDELIST \
. | nice -5 /usr/bin/create_compressed_fs - 65536 > $CLOOPTARGET

cd $MASTER
rm -f KNOPPIX/md5sums
find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums
mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img \
-c KNOPPIX/boot.cat -hide-rr-moved -o $TARGET/knoppix.iso $MASTER

The following script will loop-mount boot floppy image and initrd image for modification. The umount function will build a new initrd image and put it back on the boot floppy image.

The script has last been tried out on Debian sid on 2004-01-13.

#!/bin/bash -x
# This script will loop-mount boot floppy and initrd image
# Copyright (C) 2004 by Marc Haber <mh+knoppix-remaster@zugschlus.de>
# License: GPL V2
unset CDPATH || true

# if not root, re-invoke self as root
if  "`id -u`" -ne 0 ; then
export LOCUSER="$USER"
export LOCHOME="$HOME"
if [[ "${SHELLOPTS/xtrace/}" != "$SHELLOPTS" ]]; then
sudo bash -x $0 $@
exit $?
else
sudo $0 $@
exit $?
fi
else
LOCUSER="${LOCUSER:-$USER}"
LOCHOME="${LOCHOME:-$HOME}"
fi
set -e

KNOPPIXDIR="KNOPPIX"
BOOTIMGFILE="$KNOPPIXDIR/boot.img"
BOOTIMGFS="vfat"
BOOTIMGDIR="boot.img"
INITRDGZ="$BOOTIMGDIR/miniroot.gz"
INITRDFILE="$KNOPPIXDIR/miniroot"
INITRDFS="ext2"
INITRDDIR="miniroot"

mountbootimage() {
if ! modprobe loop; then
echo >&2 "ERR: cannot load loop module"
exit 1
fi

if !  -e "$BOOTIMGFILE" ; then
echo >&2 "ERR: no $BOOTIMGFILE found"
exit 1
fi

for nofile in $BOOTIMGDIR $INITRDGZ $INITRDFILE $INITRDDIR; do
if  -e "$nofile" ; then
echo >&2 "ERR: $nofile already exists"
exit 1
fi
done

mkdir -p $BOOTIMGDIR
mount -o loop,uid=$LOCUSER -t $BOOTIMGFS $BOOTIMGFILE $BOOTIMGDIR

< $INITRDGZ gunzip > $INITRDFILE
mkdir -p $INITRDDIR
mount -o loop -t $INITRDFS $INITRDFILE $INITRDDIR
}

umountbootimage() {
dd if=/dev/zero of=$INITRDDIR/nullfile || true
sync
rm $INITRDDIR/nullfile
umount $INITRDDIR
rmdir $INITRDDIR
< $INITRDFILE gzip --best > $INITRDGZ
rm -f $INITRDFILE

umount $BOOTIMGDIR
rmdir $BOOTIMGDIR

syslinux KNOPPIX/boot.img
}

case "`basename $0`" in
mountbootimage)
mountbootimage
;;
umountbootimage)
umountbootimage
;;
*)
echo >&2 "ERR: called with unknown name `basename $0`"
exit 1
;;
esac

Tips around apt-get to install/update/remove applications

(by gnarvaja)

  • If you booted from CD, even on a HD install (example: Pivot Install) instead of copying the original CD and KNOPPIX directory to the HD, you can use them directly from their mount points.
  • Another alternative is to mount an ISO image of the original CD as a loop device and mount the KNOPPIX image as a cloop device. You will save close to 2GB of space. Script to mount from an ISO image:
#!/bin/bash
# Assumes that the current directory is the working space
# original.iso is an image of the CD we will be using as master
mount -t iso9660 original.iso ./oldcd -o ro,loop
# initialize the compressed loop device
losetup /dev/cloop1 ./oldcd/KNOPPIX/KNOPPIX
mount -t iso9660 /dev/cloop1 ./KNOPPIX -o ro,loop
  • Get apt-spy and use it to modify the sources.list file with the best mirrors for your particular region. This will speed up the downloading. Backup the original sources.list just in case.
  • Another technique is to modify sources.list. Replace the string .de. in the ftp addresses (ftp.de.debian.org) with the code corresponding to your country. Examples: USA -> .us. (ftp.us.debian.org), Brazil -> .br. (ftp.br.debian.org). Check the Debian site for debian.org mirrors in your country.
  • Remember to uncomment the linuxtag ftp addresses to get the latest and greatest from Knoppix
  • Use apt-get update to get the lists with the latest releases and patches. Do not update a package if you don't need to, it may lead to the use of additional disk space (precious commodity when you want to keep everything below 700MB) and you may brake something else without knowing. Abuse the -s option to simulate the installation.
  • Before doing the update, I modified my default releases to testing, that means that the software I'll be using will have a good balance of stability and features. Knoppix uses unstable by default, which is too risky for my personal taste.
  • Get [apt-get install] locale and configure it with the locales you are going to use. It will save lots of space when downloading applications with plenty of locale modules and localized manual pages.
  • I use aptitude to get/remove applications, it is character based so it works with init 2. As you mark packages for install/update/removal, it will tell you how much disk space you will save/use, try to solve depencies problems and give you plenty control to fix them manually when possible.
  • When installing applications it is likely that your /etc/rc?.d directories will have new entries, many of them unwanted or unplanned. Make sure you check them and remove the new entries based on your preferences. I usually leave /etc/rc2.d and /etc/rc5.d as close as the originals as possible and modify /etc/rc3.d and /etc/rc4.d to test new stuff. Example: You may want to have ntfs installed, but not necessarily running by default. Same with apache, mysql and many others.
  • When removing/purging applications, they may leave behind non-empty directories. Usually this is announced by aptitude, apt-get or any other installation utilty. Make sure to check the messages and manually remove those directories.
  • After you are done, aptitude may leave some files behind. Here's a clean up script I use:
# !/bin/bash
# Clean package files generated by aptitude
rm /var/log/aptitude
rm /var/lib/apt/lists/*debian*
rm /var/lib/apt/lists/*knoppix*

Problemas Comuns

  • Você fez startx para chamar algum ambiente de janelas que você tenha e iniciou um terminal ("gnome-terminal", "konsole", "xterm", etc.), mas nada aconteceu ou talvez um erro seja exibido como:
get_pty: not enough ptys
Consegui resolver isso assim:
 # FORA do ambiente "chroot"
 cd /mnt/hda1/knx/source/KNOPPIX/dev
 MAKEDEV pty

 # DENTRO do ambiente "chroot"
 chroot /mnt/hda1/knx/source/KNOPPIX/

 # e montadndo "/dev/pts"
 mount -t devpts /dev/pts/ /dev/pts
Pode ser que dê o erro "fstab not found" que dá na montagem de "proc", então você ignora, apenas.

Veja Também

Se este tutorial é muito confuso, ou você quer uma segunda opinião, examine este tutorial de remasterização do 'charan': http://gnubox.dyndns.org:8080/~sunil/knoppix.php. Outro tutorial está em http://www.stirnimann.com/mystuff/doc/knoppix.txt.

Há um assistente que sabe tudo sobre os passos de descompactação, compressão e gravação em CD mencionados aqui. Ele também mostra um "shell" onde você pode atualizar o sistema KNOPPIX descompactado usando ferramentas de instalação de software padrão do Debian. É chamado de "mmkcdrom" e é parte do pacote "plugscript": http://rcswww.urz.tu-dresden.de/~holzhey/plugscript.

Há ainda outro tutorial em http://quozl.linux.org.au/knoppix/.

Certifique-se de checar o Knoppix Customization Forum para idéias e ajudas com remasterização.

Conclusão

É isso. Esta é uma versão atualizada do meu tutorial anterior. Não foi feito para iniciantes, pois é preciso conhecer as "entranhas" do Linux para fazer isto funcionar. Eu atualizarei este tutorial na medida que novas correções/melhoramentos aparecerem.

Agradecimentos

Tenho que agradecer a estes: 'aay', 'charan', 'Tech2k' e '#knoppix' por algumas correções, dicas e idéias. Sinta-se à vontade para editar or aumentar este tutorial. Nota sobre o "swap":

Traduções