CUSTOMIZANDO O
Transcrição
CUSTOMIZANDO O
CUSTOMIZANDO O HUDSON GONÇALVES MANIERI FIGUEREDO(KyNDeR) 1 CUSTOMIZANDO SLACKWARE LINUX por Hudson Gonçalves Manieri Figueredo SUMÁRIO Capítulo 1 - Slackware 1.1 - Conceitos 1.2 - Inicialização 1.3 - Desenvolvedor (O quê ? Como ? Quando ? Onde ?) Capítulo 2 - Inicializador 2.1 - O que é o initrd 2.2 - Como abrir o arquivo initrd.img 2.3 - Montando a imagem initrd.img 2.4 - Arquivos do instalador(setup) do Slackware 2.5 - Recriando o arquivo initrd.img Capítulo 3 – Estruturas de diretórios 3.1 - Estruturas de diretórios de instalação do Slackware 3.2 - TAGs 3.3 - Estruturas de diretórios do Slackware Linux 3.4 - Arquivos de inicialização do Slackware Capítulo 4 – Pacotes 4.1 – Arquivo TGZ 4.2 – Alterando pacotes 4.3 – Diretório /install 4.4 – Recriando um arquivo .tgz 4.5 – Passando de RPM para TGZ 4.6 – Pacote a partir do fonte(source) Capítulo 5 - Imagem para o CD 5.1 - ISO 5.2 - Abrindo uma imagem ISO 5.3 - Criando uma ISO 5.4 - Gravando o CD http://pqui.codigolivre.org.br 2 INTRODUÇÃO Essa apostila, tem como principal objetivo, mostrar ao público como pode ser feita uma customização do Linux a partir de uma distribuição muito conhecida e conceituada, o Slackware Linux. Normalmente as pessoas confundem Linux como parte integral do Sistema Operacional em questão, quando na verdade é uma junção do projeto GNU com o kernel Linux assim devendo ser chamado de GNU/Linux, mesmo quem sabe esse conceito fala Linux, porque para muitos é apenas um diminutivo do nome. No decorrer do conteúdo, mostraremos métodos de modificações de pacotes de instalação do Slackware, as funções de cada arquivo de instalação, de cada arquivo do instalador e cada diretório da raiz do sistema, para que o leitor possa de maneira prática saber o que, ou onde ele deve procurar alguma alteração para a finalidade de customizar o Slackware de acordo com suas necessidades. 3 CAPÍTULO 1 – SLACKWARE 1.1 <> Conceitos O Slackware Linux teve sua primeira versão “final” em 1993, desenvolvido por Patrick Volkerding, o Slackware Linux tem como filosofia, manter sua semelhança com sistemas UNIX, se comprometendo a permanecer com a estrutura padrão dos Sistemas de Arquivos Linux, considerando a simplicidade e estabilidade como objetivo. Por isso o Slackware é uma das distribuições mais populares, estável e amiga. 1.2 <> Inicialização Ao inicializar o Sistema Operacional, como é o processo de inicialização ? De onde vem as linhas que passam pela telas, as quais contém várias informações ? O que é que gera tudo isso ? Onde encontrar o que cria essas linhas ? Quando ele é chamado ? No diretório de boot do Slackware existe um arquivo que é uma imagem de inicialização chamado initrd, esse initrd no Slackware está compactado na forma gzip e tem o nome initrd.img. No próximo capítulo iremos aprender mais detalhadamente sobre ele. 1.3 <> Desenvolvedor Como visto no ítem anterior, as perguntas são de extrema importância para um desenvolvedor, sendo as principais perguntas: Como ? Onde ? Quando ? O quê ? Normalmente é necessário buscar respostas a essas perguntas. Evite ficar tirando dúvidas com pessoas pelos fóruns, chats, listas, tente buscar a resposta você mesmo, com pesquisas na internet, buscando arquivos no sistemas, descobrindo os arquivos, qual a função do arquivo. Caso não encontre as respostas, existem duas soluções, esperar por respostas e novas soluções ou recorrer aos fóruns, chats, etc. Um desenvolvedor Linux deverá saber comandos básicos para auxílio no desenvolvimento tais como grep, find, cp, mv, ls, du, tar, mkdir, echo e outros. Também é muito importante saber dominar um editor de textos do modo console. CAPÍTULO 2 – O INITRD.IMG 2.1 <> O que é o initrd ? Initrd quer dizer disco de RAM inicial(initial ramdisk), um disco de RAM inicial é um sistema de arquivos Linux bem pequeno que é carregado na memória RAM e montado como o kernel de inicialização, sendo esse carregado antes de montar os arquivos de sistema principal da raiz(root). 2.2 <> Como abrir o arquivo initrd.img ? Como dito no Capítulo 1, o initrd.img é um arquivo no formato gzip e será encontrado no CD1 do 4 slackware, no diretório /isolinux , para abrí-lo é necessário renomeá-lo para initrd.img.gz e então descompactá-lo, para isso é só digitar o seguinte comando: # mv initrd.img initrd.img.gz # gunzip initrd.img.gz Listando o diretório 'ls', repare que há um initrd.img, esse arquivo é a imagem já descompactada. Obs: Dentro do mesmo diretório onde pode ser encontrado o initrd.img também podemos encontrar alguns outros arquivos de iniciais, tais como: isolinux.cfg – Arquivo que diz como o CD deve ser iniciado, passando parâmetros de boot para kernel e opções de ajuda pelas teclas F1, F2,etc. message.txt – mensagem que aparece ao pressionar a tecla F1. f2.txt – arquivo texto para a tecla F2, normalmente ajuda sobre opções de kernel. f3.txt – arquivo texto para a tecla F3, normalmente um texto de ajuda. 2.3 <> Montando a imagem initrd.img A montagem da imagem é o que permitirá acesso ao interior do arquivo de imagem. Para montarmos o initrd.img devemos digitar o comando: mount -o loop inird.img /nome_do_diretorio_de_montagem Exemplo prático onde criamos um diretório para ponto de montagem e montamos o initrd.img # mkdir /mnt/initrd # mount -o loop initrd.img /mnt/initrd Se alterarmos o initrd.img em seu ponto de montagem, não adiantará nada, porque essa montagem serve apenas para termos acesso ao conteúdo do arquivo, uma vez com acesso ao seu conteúdo podemos copiá-lo para outro diretório qualquer afim de alterarmos os seus arquivos. Exemplo: # mkdir /tmp/INITRD # cp -ra /mnt/initrd/* /tmp/INITRD O comando acima cria um diretório chamado INITRD dentro do diretório /tmp e copia tudo o que está dentro de /mnt/initrd para o diretório INITRD criado. As opções -ra faz a cópia recursiva do diretório mantendo suas permissões. Agora temos todo o conteúdo do arquivo initrd.img no diretório /tmp/INITRD. 2.4 <> Arquivos do instalador(setup) do Slackware. Os arquivos que constituem o instalador do Slackware serão encontrados no diretório para onde foi copiado o conteúdo do initrd.img no caminho usr/lib/setup/, dentro desse diretório encontraremos os seguintes arquivos: 5 FDhelp –––––– arquivo que contém informações de ajuda do instalador do slackware. INSCD ––––– script para localização do drive de cd para instalação. INSdir –––––– script de instalação a partir de um diretório com estrutura do cd do slackware. INSfd –––––– script sobre instalação por disquete. INShd –––––– script de instalação a partir de uma partição com estrutura do cd do slackware INSNFS ––––– arquivo sobre instalação por nfs. installpkg –––– script para instalação dos pacotes tgz. migrate.sh –––– script que migra o tmp para partição asap nopartHELP –– arquivo sobre ajuda se não houver partição linux pkgtool –––––– parte de seleção do tipo de instalação. PROMPThelp – arquivo de ajuda para tipo de instalação. removepkg ––– utilizado em atualização, para remover e substituir pacotes SeTconfig –––– script de opções de configuração que chama outros scripts. SeTDOS ––––– script que reconhece partição tipo fat, vfat, ntfs. SeTfdHELP –– script de chamada do arquivo Fdhelp. SeTfull –––––– avisa se a partição estiver cheia. SeTkernel –––– script para seleção do kernel. SeTkeymap ––– seleção do mapa de teclado. SeTmaketag ––– script para criação de tags(opções customizadas) para instalação. SeTmedia ––––– seleção de meio para instalação(nfs, disquete, hd, cd) SeTnopart ––––– chamada do arquivo nopartHELP SeTpartitions ––– script para escolha do tipo de formatação da partição. SeTpasswd ––––– script para configuração de senha do root(administrador). SeTPKG ––––––– script para seleção de pacotes em série. SeTswap ––––––– localiza partição swap. setup –––––––––– arquivo principal que faz a ordem de chamada dos scripts de instalação. slackinstall ––––– script que instala pacotes e mostra as descrições. unmigrate.sh ––– script que faz o link temporário do /tmp para asap. Obs: Esses arquivos são os que vem no initrd do Slackware 10.2 Abra cada um deles com um editor de texto de sua preferência e repare nas suas mensagens, traduzindo cada uma dessas mensagens teremos um instalador na língua traduzida. Ainda é possível alterar seus scripts e ou criar outros. Agora vai da criatividade e preferência de cada um. 2.5 <> Recriando o arquivo initrd.img Depois de alterarmos o que quisermos no instalador do Slackware, devemos recriar o initrd.img como imagem de inicialização, para isso usamos o comando: mkinitrd -o destino_para_arquivo_initrd.img -s caminho_onde_deve_ser_pego_os_arquivos Exemplo: # mkinitrd -o /root/initrd.img -s /tmp/INITRD/ Esse comando cria o arquivo initrd dentro do diretório /root e pega como arquivos “fonte” o que está dentro do diretório /tmp/INITRD/ onde a opção -o quer dizer “output” e -s “source”. Depois de criado o arquivo initrd.img devemos copiá-lo para o diretório /isolinux que constitui a estrutura do CD de instalação do Slackware. 6 CAPÍTULO 3 – ESTRUTURAS DE DIRETÓRIOS 3.1 <> Estruturas de diretórios de instalação do Slackware Para podermos manipular melhor os pacotes e diretórios do CD de instalação do Slackware, o ideal é copiar todo o seu conteúdo para um diretório qualquer. Exemplo: # mount /mnt/cdrom # mkdir /tmp/PROJETO-slack # cp -ra /mnt/cdrom/* /tmp/PROJETO-slack Comando acima monta o CD para podermos acessá-lo a partir do diretório /mnt/cdrom, depois criamos o diretório PROJETO-slack dentro do /tmp e por fim copiamos tudo o que há no /mn/cdrom para dentro do /tmp/PROJETO-slack. O Slackware Linux segue uma estrutura de diretórios que é a seguinte: /a: A base do sistema Slackware. /ap: Aplicações para o Linux(modo texto). /d: Ferramentas de desenvolvimento de programas. Isto inclui os compiladores gcc e o Java Runtime Engine. /e: GNU Emacs e pacotes relacionados. /f: Diversos FAQs e HOWTOs no formato texto plano. /k: O código fonte do Kernel do Linux. /kde: O Ambiente Desktop K. /kdei: Pacotes de Internacionalização para o Ambiente Desktop K. /gnome: O Ambiente de Desktop GNOME, versão 2.2. Outro grande desktop. /l: Bibliotecas para o sistema. É essência para um sistema desktop. /n: aplicativos para rede (voltados para o terminal) e serviços de rede. /t: O sistema de texto TeX /tcl: A linguagem Tcl/Tk e ferramentas relacionadas a ela. /t: The TeX typesetting system. /x: O Sistema X Window. /y: jogos BSD, o fortune, adventure e etc. Obs: kde, kdei e gnome são normalmente encontrados no segundo CD do Slakcware, já na última versão a 10.2 o gnome foi retirado por decisão de seu desenvolvedor Patrick Volkerding. Por isso o segundo CD do Slackware 10.2 vem com os diretórios kde, kdei e t além do kernel 2.6.x alternativo. 7 Ao customizar o Slackware é bom que sigam as regras deixando cada pacote em seu respectivo destino para tal finalidade. 3.2 <> TAGS Tags são arquivos encontrados em cada um dos diretórios do /slackware que estão nos CDs de instalação. A partir dos “tagfiles” podemos customizar uma instalação do Slackware apenas alterando suas prioridades. Para uma boa customização o ideal é editar cada um desses arquivos e adicionar ou remover o nome de cada pacote que contém a nossa customização, também é possível manter o que existe e apenas mudar as prioridades para instalação, essas prioridades são representadas por: REC – recomendado OPT – opcional ADD – adicionar SKP – pular, não instalar Se você colocar SKP para um determinado pacote, quando for selecionada a instalação completa(full) do Slackware esses pacotes não serão instalados. Por isso pode-se customizar uma instalação apenas editando os “tagfiles”, ainda esses “tagfiles” podem ser copiados em um disquete e na hora da instalação você pede para utilizar os “tagfiles” do disquete. Para editar um tagfile, entre em um diretório qualquer, tal como /ap e edite o arquivo tagfile. Exemplo: # vi slackware/ap/tagfile Alterando qualquer um dos arquivos que tem ADD, OPT ou REC por SKP, significa que esse arquivo não será instalado quando o método de instalação completa for selecionado. Existe também o maketag que é o arquivo com as descrições de cada pacote daquela determinada série. Mais uma vez para uma boa customização o ideal é editar cada um desses arquivos e alterá-los conforme suas necessidades, se adicionar um pacote ou remover um pacote de uma série, excluá-o ou insira-o nos arquivos tagfile e maketag. Exemplo: # vi slackware/ap/maketag Após editar cada arquivo é só salvar as alterações. 3.3 <> Estrutura de diretórios do Slackware Linux /bin - Arquivos executáveis (binários) de comandos essenciais pertencentes ao sistema e que são utilizados com freqüência. /sbin - Arquivos de sistema essenciais /boot - Arquivos estáticos de boot ou inicialização. /dev - Arquivos de dispositivos de entrada/saída. 8 /etc - Configuração do sistema da máquina local com arquivos diversos para a administração de sistema. /lib - Arquivos de bibliotecas compartilhadas usadas com freqüência. /mnt - Ponto de montagem de partição temporária. /tmp - Arquivos temporários gerados por alguns utilitários. /var - Ficam os arquivos de informação variável.. /home - Diretórios dos usuários. /root - Diretório local do superusuário (root) /usr - Todos os arquivos de usuários devem estar aqui (Ex: quando você instala um programa o executável geralmente fica em: /usr/local/bin). Esses diretórios nas formações dos pacotes também deverão seguir o padrão, onde todo e qualquer programa que não está por padrão na distribuição deve ser colocado no /usr/local ou /opt para um melhor controle e os usuários não ficarem perdidos procurando pelos programas. 3.4 <> Arqvuivos de inicialização do Slackware Dentro do diretório /etc/rc.d/ ficam os scripts de inicialização do slackware o qual contém: rc.S - Este é o script de Start do Slackware. rc.K - Carregado quando entramos no runlevel 1, para manutenção do sistema. rc.M - Modo multiusuário, utilizado nos demais runlevels. rc.4 - Aciona o login gráfico (runlevel 4). rc.0 e rc.6 - Respectivamente desliga e reinicia(reboot) o computador. Além destes, existem vários outros que são chamados a partir destes primeiros, alguns deles setam apenas um serviço, outros configuram o hardware da máquina, são eles: rc.modules - Carrega os módulos do kernel. rc.pcmcia - Suporte a dispositivos pcmcia (muito utilizados em notebooks). rc.serial - Configura as portas seriais da máquina. rc.cdrom - Verifica se existe um CD no drive e monta-o automaticamente; rc.gpm - Configura e carrega o gpm (suporte a mouse); rc.font - Carrega a fonte de console a ser utilizada; rc.keymap - Ativa o mapa de teclado apropriado e; rc.ibcs2 - Modo de compatibilidade binária com outro *nix para 386. Também temos scripts especiais para a configuração das interfaces e serviços da rede: rc.netdevice - Carrega o módulo para a placa de rede correta. rc.inet1 - Configura IP, Gateway, etc... rc.inet2 - Carrega vários serviços, como o rpc.portmap, ypbind, nfsd, lpd entre outros. rc.samba - Ativa o protocolo SMB. rc.atalk - Uso do protocolo AppleTalk. rc.news - Carrega os news services. rc.httpd - Ativa o Apache. Por último, carregamos o rc.local, que contém as configurações próprias da máquina local. Algumas pessoas colocam aqui suas regras de firewall (outras preferem colocar em um rc.firewall), outras usam o rc.local para carregar programas como monitores de rede, etc... 9 Nesses arquivos estão algumas das mensagens que visualizamos durante a inicialização do Slackware, portanto podem ser alterados utilizando um editor de texto qualquer. CAPÍTULO 4 – PACOTES 4.1 <> Arquivo TGZ Os pacotes do slackware são arquivos tgz(tarball + gzip), isso facilita a manipulação desses pacotes, porque sendo um tarball poderemos trabalhar com o comando tar. O sistema padrão de pacotes do Slackware é o .tgz (que ao contrário do que muitos pensam, não é igual ao .tar.gz, pois contém algumas informações adicionais sobre a instalação), e as atuais versões do Slackware também vêem com o gerenciador de pacotes RPM, podendo assim instalar os aplicativos já compilados em ambos os formatos. 4.2 <> Alterando pacotes Um pacote TGZ pode ser aberto com o comando tar da seguinte maneira: tar -zxvf nome_do_pacote.tgz Normalmente criamos um diretório para separarmos o conteúdo do pacote, porque se abrirmos esse pacote em um diretório qualquer ele irá se misturar com outros arquivos e vai ficar tudo bagunçado, por isso, criamos um diretório com o nome do pacote, para que o seu conteúdo seja descompactado dentro desse diretório. Exemplo: # # # # mkdir /tmp/pacotes mkdir /tmp/pacotes/etc cd /tmp/pacotes/etc tar zxvf /mnt/iso/slackware/a/etc-5.1-noarch-10.tgz Nas linhas acima, foi criado um diretório chamado pacotes e um outro diretório dentro de “pacotes” chamado “etc” que é o nome do pacote que iremos utilizar, depois entramos no diretório pacotes/etc/ e “descompactamos” o pacote que vem na ISO do primeiro CD do Slackware, assim agora podemos visualizar, modificar, adicionar coisas a estrutura do pacote etc-5.1-noarch-10.tgz . Se usarmos o comando “ls”, poderemos ver o que há no pacote etc-5.1-noarch-10.tgz já que o “abrimos”. Exemplo: # ls # etc install tmp usr var Repare que a um diretório install, dentro desse diretório temos 2 arquivos que serão comentados no próximo subtítulo. Vamos alterar o arquivo etc/issue.new , esse arquivo é o responsável pela mensagem na tela de login. 10 # vi etc/issue.new Welcome to \s \r (\l) Subsituiremos Welcome to \s \r (\l) por Seja Bem Vindo ao \s Kernel \r (\l) ficando: Seja Bem Vindo ao \s Kernel \r (\l) Salve as modificações para o arquivo, no caso do editor VI é só digitar “:wq” e depois quando remontarmos o pacote e ele for instalado pelo seu CD customizado a mensagem padrão que aparecerá será essa que acabamos de alterar. 4.3 <> Diretório /install O diretório install contém dois arquivos que são interpretados pelo instalador de pacotes do slackware, o doinst.sh e o slack-desc. O doinst.sh é um script de instalação do pacote, é ele que diz ao installpkg o que deve ser feito para instalar aquele pacote. Claro que esse é o jeito certo de se ter um pacote, mas o pacote também pode não ter esse arquivo, e o installpkg faz a instalação seguindo a ordem da estrutura de diretórios criada no pacote. Se dermos uma olhada no arquivo doinst.sh do pacote etc-5.1-noarch-10.tgz iremos ver que ele tem um script que retira a extensão .new e faz uma verificação para ver se o arquivo já existe, caso ele exista ele é instalado com a extensão .new . Assim você pode escolher em ter ou não um arquivo doinst.sh no seu pacote para dizer ao installpkg o que deve ser feito. Lembrando que a maneira mais coerente e certa é ter esse arquivo. O slack-desc é apenas um arquivo de descrição do pacote que segue algumas regras como por exemplo: |-----handy-ruler------------------------------------------------------| etc: etc (system configuration files) etc: etc: System configuration files. The /etc directory is traditionally the etc: location where configuration files are found. etc: etc: Cada linha deve ter o nome-base(basename) do pacote seguida de “:” e a handy-ruler que dimensiona a janela de descrição. É essa descrição que aparece ao ser instalado um pacote .tgz no slackware. Com isso já podemos alterar o conteúdo de um pacote, sua descrição e seu script de instalação, o próximo passo é reconstruirmos esse pacote. 4.4 <> Recriando um arquivo .tgz Há algumas maneiras de recriar um arquivo TGZ, vamos aprender a mais fácil e prática, mas não a mais certa e coerente. Anteriormente vimos que o comando tar -zxvf pode ser utilizado para abrir(descompactar) um pacote no formato .tgz, agora vamos usar esse mesmo comando mas com outras regras. Essas regras são as que farão o pacote ser compactado, o comando é: 11 tar -zcpvf nome_do_pacote_desejado.tgz ./* Onde “c” serve para criar um novo arquivo, “z” utiliza o compactador gzip, “p” mantém as respectivas permissões dos arquivos, “v” mostra na tela o que está sendo feito e “f” utiliza método de arquivamento e o ./* é para que ele construa a estrutura de diretórios a partir do diretório atual(current), assim na hora de instalar o pacote ele instalará assumindo a estrutura a partir da raiz(/). Exemplo: # # # # cd /tmp/pacotes/etc tar -zcpvf etc-5.1-noarch-10-modificado.tgz ./* ls etc etc-5.1-noarch-10-modificado.tgz install tmp usr var O arquivo etc-5.1-noarch-10-modificado.tgz é o seu novo pacote, é só copiá-lo para estrutura do seu CD que será criado. 4.5 <> Passando de RPM para TGZ O que facilita muito trabalho no slackware é um script que faz a conversão dos pacotes no formato RPM para TGZ utilizado no Slackware. Esse script leva o nome de rpm2tgz que do inglês rpm to tgz quer dizer rpm para tgz. Isso é bom pelo seguinte, as vezes achamos um aplicativo interessante e quando vamos procurá-lo no formato tgz ele não existe, mas existe no formato rpm, então convertemos de rpm para tgz e podemos instalar esse pacote. É aconselhável abrir o pacote e dar uma olhada na estrutura de diretórios que ele segue, apenas por garantia e dependendo para criarmos o arquivo “doinst.sh”. O comando rpm2tgz pode ser usado da seguinte forma: rpm2tgz nome_do_pacote.rpm Simples assim ! Esse comando cria um novo pacote mas no formato tgz ficando de pacote.rpm para pacote.tgz. 4.6 <> Pacote a partir do fonte(source) Mais uma forma de criarmos um pacote é a partir do fonte do programa, você baixa o código fonte, compila, seguindo os procedimentos de compilação daquele software, esses procedimentos de compilação normalmente estão nos arquivos INSTALL e README que vem no código fonte do software, mas quase sempre a seqüência de comandos para compilação é ./configure , make e make install. Aí é que vem o detalhe, existe um script chamado “checkinstall” que faz o serviço de criação do pacote para você. Ao invés de colocar o comando make install que faz a instalação do software após a compilação do mesmo, você utiliza o comando checkinstall, que na verdade é um script que já cria um pacote no formato .tgz e instala esse pacote criado a partir da sua compilação. Claro que depois de criado o pacote, também é possível modificá-lo. CAPÍTULO 5 – IMAGEM PARA O CD 12 5.1 <> ISO ISO é um arquivo de imagem que é a cópia literal de um CD ou DVD. Um dos formatos mais utilizados para gerar o arquivo de imagem é o ISO. Contém todos os arquivos do CD, além de informações que permitem gerar uma cópia fiel. Por exemplo, o Nero e o K3B, programas de gravação de CD/DVD, tem a opção "Gravar Imagem", que cria um CD/DVD a partir de um arquivo ISO. Pelo fato de o ISO ser um formato padrão, independente de fabricante, a grande maioria dos programas que gravam CD/DVD podem gravar arquivos ISO. 5.2 <> Abrindo uma imagem ISO Para abrirmos uma imagem ISO vamos usar o mesmo comando que utilizamos para abrir o arquivo initrd.img. A imagem ISO pode ser do slackware, do slax, do pQui ou de qualquer outra coisa.iso. Para acessarmos o seu conteúdo, vermos o que tem dentro dessa imagem sem precisarmos gravá-la em um CD/DVD, utilizamos o seguinte comando: mount -o loop nome_da_imagem.iso /pornto_de_montagem Exemplo: # mkdir /mnt/iso # mount -o loop slackware-10.2-install-d1.iso /mnt/iso Ao entrarmos no diretório /mnt/iso, veremos todo o conteúdo do CD1 do Slackware 10.2 # cd /mnt/iso # ls Mas do que adianta vermos o conteúdo se não podemos alterá-lo ? Vamos copiar todo o seu conteúdo para um diretório onde possamos fazer o que quisermos. # mkdir /tmp/CD1 # cp -ra /mnt/iso/* /tmp/CD1 Depois de copiarmos todo o conteúdo do CD1, respeintando sua estrutura, vamos ao diretório /tmp/CD1 e a partir daí podemos começar nossa customização. 5.3 <> Criando uma ISO Após alterarmos tudo o que foi possível, retirar pacotes, modificar pacotes, acrescentar pacotes, vamos fechar o CD para que possamos gravá-lo e levá-lo para qualquer lugar :-) O comando de criação de uma ISO é bem extenso, por isso é aconselhável utilizarmos um script que contenha esse comando ou anotá-lo em algum arquivo para quando precisarmos, apenas copiarmos o comando. O comando é: mkisofs -o /tmp/nome-da-imagem.iso -R -J -V "Nome que aparece quando o sistema le o CD" -hide-rr-moved -v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table -sort isolinux/iso.sort -b isolinux/isolinux.bin -c isolinux/isolinux.boot . 13 Esse comando com todas essas opções, cria uma imagem a partir do diretório que você está, portanto é necessário que esteja na parte “raiz” , na parte onde será o começo da estrutura de diretórios do seu CD, assim sendo, a partir do exemplo deveríamos estar no /tmp/CD1 para que o comando funcionasse. Exemplo: # cd /tmp/CD1 # mkisofs -o /tmp/meu-slackware.iso -R -J -V "Slackware Modificado" -hide-rr-moved -v -d -N -no-emul-boot -boot-load-size 4 -boot-info-table -sort isolinux/iso.sort -b isolinux/isolinux.bin -c isolinux/isolinux.boot . Nesse caso, o nome da imagem é meu-slackware.iso e estará dentro do /tmp . 5.4 <> Gravando a ISO Agora iremos gravar a ISO criada em um CD. De todo jeito o arquivo ISO que você criou já é uma imagem completa do CD. Ele não irá funcionar se você gravar o arquivo ISO como um arquivo comum(CD de Dados), então inicie o seu programa de gravação favorito(K3B, NERO, etc) e procure a opção "Gravar/Queimar imagem"(inglês: Burn Image) ou "Gravar/Queimar imagem de CD"(inglês: Burn CD iso image). Essa opção pode estar escondida em algum lugar no seu programa, porque os usuários normalmente não precisam dessa opção. As vezes você terá que mudar o tipo de filtro dos arquivos para *.* porque se não, você não conseguirá visualizar o seu arquivo .ISO. Se não achar a opção para gravação da imagem, tente o arquivo de ajuda do programa, se ainda assim não conseguir achar as opções de gravação, escolha outro programa mais fácil. O resultado dessa gravação será um CD bootável. Obs: Alguns programas como winrar podem associar a extensão .ISO para abrir com ele. Ele pode achar que meu-slackware.iso é um arquivo compactado. Mas não pense assim. Não descompacte o arquivo! Grave a ISO como descrito acima porque se não você pode perder a inicialização do CD. Tutorial sobre isso pode ser encontrado no link: http://www.slacklife.com.br/article.php?sid=1486 CONCLUSÃO Após ler e entender o conteúdo desse documento, o leitor deverá estar apto a customizar um Slackware Linux, modificando um pacote da distribuição, modificando o instalador(setup), modificando arquivos de inicialização, criando pacotes próprios e gerando imagem ISO pronta para ser gravada em um CD. 14 ACORDO DE LICENCIAMENTO Atribuição-Uso Não-Comercial-Compartilhamento pela mesma licença 2.0 Brasil Você pode: • • copiar, distribuir, exibir e executar a obra criar obras derivadas Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Uso Não-Comercial. Você não pode utilizar esta obra com finalidades comerciais. • • Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. Qualquer direito de uso legítimo (ou "fair use") concedido por lei, ou qualquer outro direito protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima. Você pode copiar, modificar, exibir este documento, mantendo os créditos do autor ou autores. Esse documento não deve ser vendido e está sob a licença DE: da Creative Commons. http://creativecommons.org/licenses/by-nc-sa/2.0/br/deed.pt Documento criado por Hudson Gonçalves Manieri Figueredo (KyNDeR) http://www.securityview.com.br/~hudson e-mail: [email protected] 15