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