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.
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
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.
mkdir /mnt/home
mount -o loop /cdrom/home.img /mnt/home
cp -a /home/* /mnt/home
umount /mnt/home
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
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.