Você está na página 1de 9

:.

Tutorial: Instalando o Kurumin (e outras distros) num pendrive ou carto


Carlos E. Morimoto
11/08/2005

Os pendrives esto cada vez mais baratos, j possvel comprar um de 512 MB por R$
160. Voc pode usar o pendrive como um dispositivo de boot, inicializando o Kurumin
(ou outra distribuio) e usando o espao livre para salvar arquivos. O sistema pode ser
modificado para automaticamente salvar arquivos no diretrio home e novos programas
instalados, mesmo que o pendrive esteja formatado em FAT16.

Os cartes de memria flash sempre foram dispositivos caros, restritos a palmtops e


dispositivos embarcados e, mesmo neles, quase sempre em pequenas quantidades, sempre
combinados com memria RAM ou ROM (mais baratas). Na maioria dos palmtops, voc
encontra uma pequena quantidade de memria flash, que armazena o sistema operacional e
uma quantidade maior de memria RAM, que alm de ser usada pelo sistema, armazena todos
os aplicativos e arquivos. Apenas recentemente um nmero expressivo de palmtops passou a
usar memria flash como meio primrio de armazenamento.
A memria flash um tipo de memria de estado slido constituda por clulas que
"aprisionam" um impulso eltrico, preservando-o por anos, sem necessidade de alimentao
eltrica. S necessrio energia na hora de ler ou escrever dados.
Por no ter partes mveis, a resistncia mecnica muito boa. Se voc comeasse a espancar
seu computador impiedosamente, o carto de memria seria provavelmente um dos ltimos
componentes a ser danificado ;).
As limitaes da memria flash so o custo por megabyte e uma vida til relativamente curta,
estimada em 100.000 ciclos de leitura ou gravao, o que restringe seu uso em algumas reas,
voc nunca deve usar um carto de memria flash para armazenar uma partio swap, por
exemplo.
O custo por megabyte sempre ser muito mais alto que o de um HD, a diferena que o custo
unitrio do HD mais ou menos fixo, enquanto num pendrive ou carto o custo proporcional
capacidade.
Nenhum HD (novo) custa menos que uns 80 dlares, o que evolui a capacidade. Por outro
lado, em agosto de 2005, um pendrive de 128 MB j podia ser comprado por R$ 70, enquanto
um de 512 MB custava em mdia R$ 160, ou seja, menos que um HD.
Desde o incio do milnio, o custo memria flash tem cado pela metade a cada ano, por isso a
tendncia que os HDs comecem a ser substitudos por cartes de memria flash em reas
onde no necessrio muito espao de armazenamento.
Praticamente, todas as placas me recentes so capazes de dar boot atravs de um pendrive
ou leitor de cartes plugado na porta USB, como se fosse um HD removvel. No Linux, estes
dispositivos so detectados como se fossem HDs SCSI: um pendrive detectado como
"/dev/sda" e, num leitor com vrias portas, cada tipo de carto visto como um dispositivo
diferente. No meu, por exemplo, o carto SD visto como "/dev/sdc", o carto compact-flash
visto como "/dev/sda" e o memory-stick como "/dev/sdd".
Existem ainda adaptadores, que permitem ligar um carto compact-flash diretamente a uma
das portas IDE da placa me, fazendo com que ele seja detectado como um HD. Neste caso,
ele ser detectado pelo sistema como "/dev/hda" ou "/dev/hdc", por exemplo.

A novidade que voc pode instalar Linux no pendrive ou carto e dar boot diretamente
atravs dele. Voc pode usar esta idia para ter um sistema porttil, que pode transportar
para qualquer lugar, ou para montar micros sem HD, que usam memria flash como mdia de
armazenamento.
Existem duas opes. Voc pode instalar diretamente o sistema no pendrive, como se fosse
um HD, ou instalar a imagem de um live-CD, como o Kurumin ou o Damn Small e usar o
espao excedente para armazenar arquivos.
Fazer uma instalao "real" a opo mais simples. Voc precisa apenas escolher uma
distribuio razoavelmente atual, cujo instalador seja capaz de detectar o pendrive, e fazer
uma instalao normal. Por outro lado, esta a opo mais dispendiosa, pois mesmo fazendo
uma instalao enxuta, voc precisaria de um pendrive ou carto de 512 MB ou mais.
Um segundo problema que a instalao serviria apenas para o PC usado durante a
instalao. Sempre que fosse usar o pendrive em outro micro, voc teria que reconfigurar o
sistema para trabalhar na nova configurao, um trabalho pouco agradvel :-).
A segunda opo, instalar a imagem de um live-CD, mais econmica do ponto de vista do
espao e permite usar o pendrive em vrios micros diferentes, pois o sistema detecta o
hardware durante o boot, como ao rodar a partir do CD. Se voc tem um pendrive de 512 MB,
pode experimentar instalar o Kurumin, que na verso 5.0 tem por volta de 420 MB. Voc pode
tambm remasterizar o CD, de forma a deixar o sistema mais enxuto, ou usar uma distribuio
mais compacta, como o Slax ou o Damn Small.
O espao livre pode ser usado para armazenar arquivos e configuraes, ou mesmo ser usado
para permitir a instalao de programas adicionais, usando o UnionFS. Nesta receita
manteremos o carto formatado em Fat16, por isso voc continua podendo us-lo na cmera
digital ou acessar os arquivos atravs do Windows.
Comece formatando o pendrive ou carto em Fat16. Eles j vem de fbrica formatados, mas
algumas cmeras formatam os cartes usando estruturas fora do padro que no se do muito
bem com o syslinux e alguns modelos BIOS. Ao criar a partio usando o fdisk, lembre-se de
marcar opo "bootable".
Nos exemplos abaixo estou usando um pendrive detectado pelo sistema como "/dev/sda". Ao
usar um adaptador CF-IDE, ou um leitor de cartes que seja detectado pelo sistema de forma
diferente, lembre-se de apontar o dispositivo correto.
# cfdisk /dev/sda
(para particionar o pendrive, caso necessrio)
# mkdosfs /dev/sda1

(para formatar a partio)


O prximo passo montar a partio criada e copiar os arquivos de dentro do CD do Kurumin
para dentro dela:
# mount /dev/sda1 /mnt/sda1
(monta a partio criada no pendrive)
# mount /mnt/cdrom
(monta o CD-ROM)
# cp -a /mnt/cdrom/* /mnt/sda1
(copia os arquivos do CD-ROM para dentro da partio)
Voc pode tambm copiar os arquivos diretamente a partir do ISO. Neste caso, monte-o com o
comando "mount -o loop kurumin-5.0.iso /mnt/cdrom".
O Kurumin, assim como a maioria dos live-CDs atuais usa o isolinux como sistema de boot.
Para tornar o pendrive bootvel, usaremos o syslinux, o que exige algumas adaptaes.
Em primeiro lugar, instale o pacote "syslinux" usando o gerenciador de pacotes da
distribuio em uso. Emergencialmente, voc pode tambm baixar um pacote .rpm j
compilado no http://www.kernel.org/pub/linux/utils/boot/syslinux/RPMS/
Para instalar este pacote no Debian, transforme-o em um pacote .deb usando o Alien.
No Kurumin, a imagem do Kernel, initrd e o arquivo de configurao do isolinux vo dentro da
pasta boot/isolinux/ do CD. Precisamos copiar estes trs arquivo para o diretrio raiz do
pendrive, de forma que eles possam ser acessados pelo syslinux.
Acesse a pasta boot/isolinux/ dentro do pendrive e copie os arquivos linux26 (a imagem do
Kernel), minirt26.gz (a imagem com mdulos e arquivos adicionais usada durante o boot),
isolinux.bin (o executvel do isolinux, necessrio durante o boot) e o arquivo isolinux.cfg
para a pasta raiz do pendrive.
# cd /mnt/sdc1/boot/isolinux/
# cp linux26 minirt26.gz isolinux.cfg isolinux.bin /mnt/sda1
Os arquivos de configurao do isolinux e syslinux so intercompatveis, pois isso podemos
simplesmente renomear o arquivo de "isolinux.cfg" para "syslinux.cfg". Renomeie tambm o
arquivo isolinux.bin:
# mv /mnt/sdc1/isolinux.cfg /mnt/sdc1/syslinux.cfg
# mv /mnt/sdc1/isolinux.bin /mnt/sdc1/syslinux.bin
Em outras distribuies, os trs arquivos podem estar localizados diretamente na pasta boot/,
ou mesmo direto no diretrio raiz do CD. Abra o arquivo syslinux.cfg e verifique se as
referncias aos outros arquivos esto corretas. Se os trs esto no diretrio raiz, a referncia
imagem do Kernel deve ser "KERNEL linux26" e no "KERNEL /boot/linux26" por exemplo.

O ltimo passo usar o executvel do syslinux (instalado na mquina) para tornar o pendrive
bootvel. Ao contrrio que faramos ao gravar o lilo num HD por exemplo, o comando deve
indicar a partio criada (/dev/sda1) e no o dispositivo. O parmetro "-s" uma opo de
compatibilidade, que grava um setor de boot compatvel com algumas placas antigas.
# syslinux -s /dev/sda1
Algumas placas no funcionam bem em conjunto com a opo "-s", nestes casos, experimente
usar simplesmente "syslinux /dev/sda1".
Com isto, voc j tem um pendrive ou carto bootvel, basta configurar o setup para inicializar
atravs dele e testar. Procure pela opo "Fist Boot Device" e configure-a com a opo "USBHD" ou "Removable Devices", de acordo com o que estiver disponvel. Algumas placas (mesmo
modelos recentes) so problemticas com relao ao boot atravs de pendrives. Numa Asus
A7N8X-X que testei, por exemplo, o pendrive s era detectado no POST caso a opo "APIC
Function" (que no tem nada a ver com a histria) estivesse habilitada.

O interessante que isto pode ser feito com outros dispositivos compatveis com o padro usbstorage (onde o carto visto pelo sistema como se fosse um pendrive), como cmeras e at
mesmo palms. Ou seja, com um carto de capacidade suficiente, sua cmera pode, alm de
tirar fotos, e guardar arquivos, servir como sistema de boot.
Mais um detalhe importante com relao velocidade da porta USB e tambm a velocidade
do pendrive, carto ou cmera usada. As portas USB 1.1 tem a velocidade de transferncia
limitada a cerca de 800 KB/s, o que torna o carregamento do sistema lento, como se desse
boot a partir de um CD-ROM 6x.
As portas USB 2.0 so muito mais rpidas, fazendo com que o limitante seja a velocidade do
carto ou pendrive usado. Os de fabricao recente tem geralmente tem uma velocidade de
leitura entre 6 e 12 MB/s, o que j oferece um desempenho satisfatrio. O desempenho varia
muito de acordo com a marca e o padro usado, os cartes compact-flash so normalmente os
mais rpidos.
O grande problema fica por conta de algumas cmeras e pendrives antigos, onde a taxa de
transferncia muito mais baixa, muitas vezes menos de 300 kb/s. Nada o impede de utilizlos, mas o desempenho do sistema ser muito ruim.

At aqui, o sistema d boot como se estivesse rodando a partir do CD, nenhuma grande
vantagem. Podemos incrementar isso usando o espao livre para criar uma imagem de
loopback, para armazenar os arquivos e configuraes do diretrio /home.
Para criar o arquivo, usamos o comando dd, usando o "/dev/zero" como dispositivo de
entrada. Isso faz com que seja criado um arquivo do tamanho especificado, cheio de bits 0.

Para criar um arquivo de 32 MB, por exemplo, o comando seria:


# dd if=/dev/zero of=home.img bs=1024 count=32768
O bs=1024 indica o tamanho dos setores (1 kb, no caso) e o nmero de setores, que
determina o tamanho do arquivo.
O prximo passo formatar o arquivo em EXT2. O parmetro -F serve para forar a criao do
sistema de arquivos, j que estamos formatando um arquivo e no uma partio, como seria
esperado:
# mkfs.ext2 -F home.img
A partir da, voc pode montar este arquivo como se fosse uma partio, usando o parmetro
"-o loop" do mount. Comece dando um boot normal a partir do pendrive. Monte o arquivo e
copie os arquivos do diretrio home para ele. Ao dar boot no Kurumin, os arquivos dentro do
pendrive aparecero dentro da pasta "/cdrom".
#
#
#
#

mkdir /mnt/home
mount -o loop /cdrom/home.img /mnt/home
cp -a /home/* /mnt/home
umount /mnt/home

Para usar este arquivo


home=/cdrom/kurumin.img"
pasta /cdrom, logo no incio
seria muito prtico. O ideal

como home, seria necessrio usar a opo "kurumin


(lembre-se que o pendrive montado pelo sistema na
do boot) na tela de boot (a cada boot da mquina), o que no
que isso seja feito automaticamente.

Podemos modificar dois scripts de boot sem precisar remasterizar o Kurumin. Remasterizando,
voc poderia fazer muitas coisas, como remover programas para reduzir o tamanho do
sistema, substitu-los por outros programas que utiliza no dia a dia, ou fazer personalizaes
diversas. Para mais detalhes sobre a remasterizao do Kurumin, leia o captulo 8 do meu livro
Kurumin, desvendando seus segredos. Vou me limitar aqui a alguns "hacks", que podem ser
feitos sem precisar modificar o sistema.
Como disse, existem dois arquivos de inicializao que podemos alterar, para alterar o
comportamento do sistema. O primeiro o arquivo "syslinux.cfg", no diretrio raiz do
pendrive. Dentro dele voc pode adicionar opes de boot diversas, que passaro a ser usadas
por default, sem que voc precise ficar digitando-as a cada boot.
Logo no incio do arquivo voc encontrar as linhas:
DEFAULT linux26
APPEND ramdisk_size=100000 init=/etc/init lang=us acpi=off apm=power-off
vga=788
initrd=minirt26.gz
nomce
quiet
psmouse.proto=exps
BOOT_IMAGE=knoppix
Na verdade, a linha "APPEND" forma uma nica (e longa) linha, e no duas como voc est
vendo aqui, por causa da diagramao. Basta adicionar as opes de boot que voc deseja que
sejam usadas. Se voc precisa sempre especificar a opo "kurumin xvrefresh=60" para
ajustar a taxa de atualizao do monitor, adicione a opo "xvfresh=60" no final da linha, de
modo que ela fique:
APPEND ramdisk_size=100000 init=/etc/init lang=us acpi=off apm=power-off
vga=788
initrd=minirt26.gz
nomce
quiet
psmouse.proto=exps
BOOT_IMAGE=knoppix xvrefresh=60
Lembre-se que tudo isso forma uma nica linha.
Para que o arquivo home.img seja usado, precisaremos mexer no arquivo "linuxrc", um script

bem mais complexo que executado durante o boot.


No diretrio raiz do pendrive, voc encontra o arquivo "minirt26.gz". Ele na verdade uma
imagem compactada, que contm diversos arquivos, entre eles o linuxrc. Para chegar at ele,
descompacte o arquivo e monte-o numa pasta usando a opo "-o loop", como se ele fosse um
arquivo .ISO:
# mkdir tmp
# gunzip minirt26.gz
(descompacta o arquivo)
# mount -o loop minirt26 tmp/
(monta a imagem descompactada dentro da pasta)
Acesse o diretrio tmp/ e abra o arquivo linuxrc dentro dele. A primeira alterao necessria
fazer com que o pendrive seja montado em modo escrita e leitura durante o boot e no em
modo somente leitura, como um CD-ROM. Para isso, procure pela linha:
if mountit $i /cdrom "-o ro" >/dev/null 2>&1
No arquivo original, esta a linha 358. Altere o "-o ro" para "-o rw":
if mountit $i /cdrom "-o rw" >/dev/null 2>&1
Falta agora adicionar as linhas que faro o script usar o arquivo home.img como home,
montando-o no boot. Perto do final do arquivo, procure pela linha:
mount -t devpts /dev/pts /dev/pts 2>/dev/null
Adicione as linhas abaixo logo aps ela (sem modificar as linhas originais):
# home
rm -f /home
mkdir /home
/bin/mount -o
/bin/mount -o
/bin/mount -o
/bin/chown -R

remount rw /cdrom/
remount umask=000 /cdrom/
loop /cdrom/home.img /home
kurumin.kurumin /home/kurumin

Salve o arquivo, feche a janela do editor e faa o processo inverso, desmontando o arquivo
minirt26 e compactando-o novamente:
# umount tmp/
# gzip minirt26.gz
A partir da, os arquivos que forem salvos dentro do diretrio home sero automaticamente
salvos dentro da imagem home.img e assim restaurados a cada boot.
O prximo passo fazer com que outra modificaes no sistema (arquivos de configurao,
novos programas instalados, etc.) tambm sejam salvas. Neste caso podemos usar o UnionFS,
includo no Kurumin 5.0, fazendo com que as alteraes feitas sejam salvas em outro arquivo
de imagem ao invs de tudo ser feito num ramdisk, como seria o padro do sistema. Isto far
com que tudo continue disponvel, mesmo depois de reiniciar o micro.
A questo principal aqui passa a ser o espao. Se voc est usando um pendrive de 512 MB,
depois de copiar os arquivos do sistema e criar o home.img, vo sobrar apenas uns 40 MB
livres, que no sero suficientes para instalar muitos programas. A soluo aqui seria
remasterizar o sistema, gerando uma imagem menor e assim deixando mais espao livre no
pendrive.
Vou usar como exemplo a criao de um arquivo pequeno, usando os 47 MB que ainda

estavam livres no meu caso. Comece criando a imagem usando o dd e formate o arquivo:
# dd if=/dev/zero of=union.img bs=1024 count=47000
# mkfs.ext2 -F union.img
Para que ele seja usado, precisaremos fazer mais uma modificao dentro do arquivo linuxrc.
Refaa todo o procedimento de descompactar o minirt26.gz, mont-lo na pasta temporria e
abrir o arquivo linuxrc dentro dele.
Dentro do arquivo, procure pelas linhas:
"${CRE}${BLUE}Creating
unionfs
and
echo
-n
ramdisk...${NORMAL}"
mkdir -p /UNIONFS
if test -n "$UNIONFS" && /bin/mount -t unionfs -o \
dirs=/ramdisk=rw:/KNOPPIX=ro /UNIONFS /UNIONFS; then

symlinks

on

Precisamos adicionar duas novas linhas, que montam o arquivo union.img, dentro do pendrive
e modificar a ltima linha, de forma que ele seja usado no lugar do ramdisk. Depois das
alteraes, as linhas ficaro:
echo
-n
"${CRE}${BLUE}Creating
unionfs
and
ramdisk...${NORMAL}"
mkdir -p /UNIONFS
mkdir -p /union
/bin/mount -o loop /cdrom/union.img /union
if test -n "$UNIONFS" && /bin/mount -t unionfs -o \
dirs=/union=rw:/KNOPPIX=ro /UNIONFS /UNIONFS; then

symlinks

on

Salve o arquivo, desmonte o diretrio e compacte novamente o arquivo minirt26 para salvar
suas alteraes. Experimente agora dar um novo boot usando o pendrive e instalar algum
programa pequeno. Reinicie de novo e voc notar que ele continua l.
Lembre-se que usando um arquivo union.img pequeno, ele logo ficar cheio caso voc comece
a instalar programas e fazer muitas alteraes. Para usar o apt-get e fazer um nmero mais
generoso de alteraes, recomendvel criar um arquivo union.img com pelo menos 150 MB.
Neste caso voc precisar remasterizar o sistema para liberar espao, ou usar um pendrive de
maior capacidade.

Copyright 2003 Carlos E. Morimoto, http://www.guiadohardware.net - Todos os direitos


reservados