mslomp
(usa Slackware)
Enviado em 15/10/2008 - 18:57h
você quer fazer um livecd?
se você não pretende passar trabalho, sugiro que dê uma olhada na sugestão dos colegas acima.
porém caso queira fazer "no muque", os passos básicos são esses (sem entrar nos detalhes, visto que fica inviável através de um comentário):
- criar um initrd, que nada mais é do que um "mini-linux básico" que será carregado na memória. este carregará o kernel, reconhecerá o cd, criará os devices, montará e unirá os filesystems, chamará o init, etc)
- criar o script linuxrc (que fará todo o trabalho sujo do item anterior - o segredo da coisa está nesse script)
- compilar um kernel com suporte a unionfs + squashfs (este último opcional, porém reduzirá em muito o tamanho final da imagem do seu livecd)
- num diretório vazio, instale sua distribuição favorita (apenas explodir os pacotes). instale o essencial para que o so funcione a contento, e entao instale os demais softwares que forem de seu interesse, tomando cuidado com as respectivas dependências e também com permissões de arquivos
- gerar uma imagem squashfs com esse diretório
- utilizar isolinux ou similar para o boot (que carregará o initrd e chamará o linuxrc)
internamente falando, o que acontecerá é o seguinte:
1 - boot
2 - carregamento do initrd na memória (kernel + modulos)
3 - execução do linuxrc
4 - detecção e montagem do drive de cd (hdc, hdd)
5 - montagem da imagem estática squashfs (que está no cd)
6 - montagem de um tmpfs e do /proc
7 - criação de uma imagem dinâmica em memória (que permitirá que você salve alterações, etc)
8 - união das imagens estática e dinâmica
9 - troca de root através de pivot_root (da initrd para o da sua distro live)
10 - desmontagem da initrd
11 - operações diversas I (atualizar fstab, etc)
12 - chamar init (que enfim carregará sua distro)
13 - operações diversas II (carregar firulas)
se sua intenção for apenas adicionar 2 ou 3 pacotes pequenos, além do so básico, e o boot se der apenas em máquinas com quantidade de ram aceitável, pode-se embutir tudo no initrd, apesar de não ser o recomendável.