Vous êtes sur la page 1sur 4

QUE TAL CRIAR UMA MINI-DISTRO EM 1 DISQUETE?

Autor: Rafael Leandro Breviglieri <pistosbo at hotmail.com>


Data: 10/09/2004

INTRODUO

H um tempo atrs (acho que 1 ms) eu estava querendo criar uma mini-distro igual a do Coyote Linux
(//www.vivaolinux.com.br/linux/), no igual, mas uma criada por mim que criasse um proxy em mquinas
antigas para o acesso a net, at agora ainda no consegui, mas criei a minha mini-distro "Levix Linux v0.01".

Ela possui mais de 50 comandos, incluindo o e2fsck para checagem de parties ext2 (na verdade eu
acabei criando um rescue-floppy, mas j foi um grande passo).

Pergunta: Mas pode uma distro possuir 50 comandos e ainda caber em 1 disquete???
Resposta: Pode sim, o segredo uma ferramenta chamada BusyBox, que praticamente uma caixa de
ferramentas onde os comandos ficam encabeados dentro de um s executvel (ELF), ou seja, so mais de
50 comandos dentro de 1 comando apenas, isso na verso 0.60.5. Na verso 1.00 ele conta com suporte a
IPv4, IPv6, IPX, NFS, pacotes rpm e deb, crond, editores de texto (vi, vim), servidor e cliente DHCP, telnet...
Resumindo, uma ferramenta extremamente incrvel, estou usando a verso 1.00 para criar o Levix com
suporte a proxy, mas vamos ao que interessa.

Levix Linux v0.01 (by PiStO):


https://codigolivre.org.br/projects/levix/ (https://codigolivre.org.br/projects/levix/)

BusyBox (baixe a verso 0.60.5 que a instvel):

http://www.busybox.net (http://www.busybox.net)

O QUE RAMDISK
Quem j executou o Kurumin sabe muito bem o que um RAMDISK, ele cria uma partio virtual na RAM
(memria voltil) permitindo assim usar o sistema, lgico que como e um LFD ele no vai usar mais que 4
MB de memria. A idia j essa, criar um Linux (//www.vivaolinux.com.br/linux/) pequeno e til. Caso voc
queira criar um Kurumin, d uma olhada em http://www.guiadohardware.net
(http://www.guiadohardware.net).

Como vamos utilizar o RAMDISK e o InitRD (Initial RAMDISK), precisamos que esses mdulos estejam
compilados no kernel, caso no estejam, selecione essas opes e tire as coisas que no sero utilizadas
no kernel (SOM, TELEFONIA, NETWORKING, etc) para compilar uma imagem pequena (a minha tem 400k,
eu nem recompilei e sim peguei no CD do Conectiva no diretrio /dosutils/autoboot). O InitRD o arquivo
que vai conter o filesystem (ext2) com os arquivos que sero copiados para a RAMDISK.

CRIANDO O INITRD

Para criar o InitRD faa o seguinte:

# dd if=/dev/zero of=initrd bs=1500k count=1

Aqui estamos criando o initrd com 1.5MB utilizando o dd, o /dev/zero serve para criar o arquivos com zeros,
pois na hora de compactar isso ajuda a conseguir o mximo de compactao dos arquivos.

# mke2fs -F -m0 -b 1024 initrd

Agora criamos um filesystem ext2 no arquivo para montar como se fosse uma partio utilizando loop do
kernel, criamos com blocksize de 1024 bytes isso ajuda a deixar o arquivo menor.

# mount -t ext2 -o loop initrd /mnt/arquivo

Monte o arquivo em algum lugar (/arquivo no meu caso), crie um diretrio no /mnt e monte ele l:

# cd /mnt/arquivo && mkdir proc mnt

Agora vamos compilar o BusyBox.

COMPILANDO O BUSYBOX
Descompacte o BusyBox em algum diretrio da sua preferncia:

# tar xvfz busybox-0.60.5.tar.gz


# cd busybox-0.60.5
# make LDFLAGS=-static
# make PREFIX=/mnt/arquivo install

Estamos compilando o pacote estaticamente para no depender de smbolos externos (bibliotecas) e o


PREFIX=/mnt/arquivo e o diretrio onde o seu initrd est montado.

Depois disso compacte o initrd usando:

# gzip -9 initrd

Isso vai criar o arquivo initrd.gz.

CRIANDO O DISQUETE

Agora formate um disquete no formato (vfat) use o superformat:

# superformat /dev/fd0

Use o syslinux para criar um boot-sector no disquete:

# syslinux /dev/fd0

Copie o kernel e o initrd.gz para o disquete e crie o syslinux.cfg, que o arquivo de configurao do
syslinux. Exemplo:

default linux1
label linux1
kernel vmlinuz
append initrd=initrd.gz init=/linuxrc

Desmonte o disquete e use o bochs para testar seu LFD, ou simplesmente d o boot com o disquete.

PiStO

Voltar (verArtigo.php?codigo=1378)

Vous aimerez peut-être aussi