No natal passado dei para minha namorada, Samara, um netbook: o Asus EeePC 2G Surf. Ele foi o primeiro netbook lançado, com processador de 800 MHz, 512 MB de RAM e 2 GB de SSD. Infelizmente, para diferenciá-lo de modelos mais caros, alguém na Asus teve a ideia imbecil genial de soldar a memória RAM e o SSD. Ou seja, é impossível fazer um upgrade nele.
Passei meus dias antes do natal de 2009 pesquisando como instalar um Sistema Operacional usável com essa limitação de espaço. A instalação do Ubuntu, pelada, gastava mais de 4 GB. Depois de algumas noites mal dormidas, consegui instalar o Xubuntu 9.04 capado, com um browser minimalista (Midori) e algumas coisas mais. Ficou usável, mas longe de bom. Mais de um ano depois, finalmente tomei vergonha na cara de fazer direito.
Comprei um cartão MicroSD de 8 GB e fui instalar o Ubuntu 10.10 nele. Consegui sem muito esforço, simplesmente colocando o / no SSD de 2 GB e o /usr e o /home em duas partições no cartão de memória. Ficou legal, gostei da interface Unity, e tava tudo funcionando. Quando mostrei para ela, depois de brincar por uns 30 segundos, ela disse: “Tá muito lento!”.
Ok, segunda tentativa. Levei o netbook para casa e fui falar com Deus. Descobri que a Unity é realmente mais pesada, e era melhor usar o Ubuntu 10.04 Netbook Edition. Mas, se o problema dela era velocidade, pesquisei mais um pouco sobre como otimizar. Foi aí que encontrei o ótimo blog do Steve Hanov, onde ele dá 4 dicas para otimizar o Ubuntu quando ele for usado em de um drive USB. Neste post só vou falar da terceira dica (a mais importante para mim): comprimindo os arquivos.
O diretório /usr é normalmente o maior diretório de uma instalação do Linux. Nele ficam todos os binários dos programas instalados, bibliotecas, códigos-fonte, etc.. Para se ter uma ideia, quando instalei o Ubuntu 10.10 no netbook da Samara, o /usr tinha cerca de 1.8 GB, enquanto todas as outras pastas juntas não chegavam a 700 MB. Então, se queremos diminuir o tamanho de uma instalação, nada mais lógico que começar com o maior culpado.
A ideia é comprimir a /usr. Para isso usamos o squashfs. Com ele, criaremos um sistema de arquivos comprimido, virtual, somente leitura. Conseguimos diminuir a pasta para cerca de 700 MB. Mas, para não ficarmos com a /usr somente leitura, usamos também o aufs2. O que ele faz é simular uma partição de leitura e escrita em cima da criada pelo squashfs. Ele faz isso criando uma “camada” em cima da partição /usr. Quando tentarmos ler um arquivo de lá, o aufs2 vai nos mostrar o que foi comprimido com o squashfs. Se tentarmos criar um arquivo, ele o cria em uma outra pasta (que vamos definir), mas nos mostra como se tivesse criado na /usr, nos dando a ilusão que essa partição é de leitura e escrita, quando não é. Não se preocupe com esses detalhes técnicos. Tudo vai ficar mais claro conforme fomos fazendo (espero).
Antes de tudo, instale o pacote squashfs-tools:
sudo apt-get install squashfs-tools
Depois adicione as seguintes linhas ao arquivo /etc/modules:
squashfs
loop
Crie as pastas onde irão ficar as partições virtuais squashfs e aufs2:
sudo mkdir -p /squashed/usr /squashed/usr/ro /squashed/usr/rw
Comprima a pasta /usr em uma imagem dentro de /squashed/usr:
sudo mksquashfs /usr /squashed/usr/usr.sqfs
Adicione as seguintes linhas ao arquivo /etc/fstab:
/squashed/usr/usr.sfs /squashed/usr/ro squashfs loop,ro 0 0
usr /usr aufs udba=reval,br:/squashed/usr/rw:/squashed/usr/ro 0 0
Reinicie o computador. Tudo deve funcionar normalmente, então você pode apagar o diretório /usr, fazendo:
sudo umount /usr
sudo rm -rf /usr
Se houve algum problema, tente voltar para os passos anteriores e descobrir o que deu errado. Qualquer coisa mande um comentário que tentarei ajudar.
Um bônus de comprimir seu /usr é que, além de ocupar bem menos espaço, o computador ficará mais rápido. As máquinas de hoje em dia têm processadores muito mais velozes que os discos, então um tempo maior é gasto lendo um programa no HD do que executando-o. Como os programas estão comprimidos, precisa-se ler menos dados, tornando o computador mais rápido.
No final, o Ubuntu 10.04 está ocupando menos de 1.5 GB do SSD do netbook, que ganhou mais uns anos de vida útil com a Samara. Eu não fiz benchmarks, mas a diferença é visível. Ele está levando 1m30s para iniciar, mais 10s para abrir o Chrome e 30s para abrir o OpenOffice.org. Nada mal para um netbook de 2007
Este post foi baseado no Optimizing Ubuntu to run from a USB key or SD card e [TRICKS] Speed up system with aufs + squashfs.
Posts relacionados:


12 comments ↓
wow! posso comprovar que o netbook tem salvo a minha vida ultimamente! ele está rápido, livre e lindo!
Estou tentando instalar em um netbook sililar da positivo, também com 2 GB de SSD e até agora não consegui nem instalar. Dá erro.
Qual? Quando instalei o Ubuntu nesse PC ele reclamou pra caramba na instalação, dizendo que poderia não ter espaço o suficiente e tal, mas deu tudo certo (fazendo com essas partições que eu falei)
Olá Vitor. Valeu por responder.
É um positivo mobo, do primeiro que saiu, 512 de memoria, 2gb ssd, processador via 1ghz.
Consegui instalar o lubuntu 10.04sem fazer swap. Sobraram 458 megas. Estou tentando comprimir as pastas, aparece “permissão negada” quando tento incluir as linhas no etc/modules.
Opa, foi a 10.04 mesmo que eu instalei. Tive alguns problemas desse tipo, comprimir os diretórios não é algo muito fácil, mas se você conseguiu instalar o sistema sem precisar disso, e se tá rodando, sugeriria só você criar a /home em um cartão SD ou pendrive… dependendo dos testes que você fizer de velocidade, se está o suficiente…
quando vc fala de comprimir a \usr … em que momento devo fazer isso ? antes das instalação ? ou durante a instalação? estou com um mobo positivo com a mesma ideia imbecil de ter a ssd soldada na placa…kkk….quero muito instalar o 11.04 nele…consigo ? abs
rapaz socorre aq. instalei tudo no ssd menos a /usr q coloquei em um cartão. fiz tudo q vc mandou quando deu no passo de reiniciar , o net so liga em terminal acusando erro de montar o sistema de arquivos. aqlas ultimas linha do fstab eram 2 linhas separadas ou eram um coisa so ?
Adicione as seguintes linhas ao arquivo /etc/fstab:
/squashed/usr/usr.sfs /squashed/usr/ro squashfs loop,ro 0 0
usr /usr aufs udba=reval,br:/squashed/usr/rw:/squashed/usr/ro 0 0
aq deu o problema.
olá, problema aq é esse : tudo deu certo, qd xega na parte de editar o fstab, não sei se aqlo são 2 linhas diferentes ou uma frase só. coloquei como uma so. e não deu certo. o pc não liga o x. abre so um terminal. to usando o easy peasy q é o mesmo ubuntu 10.04. a minha /usr ta numm cartão de memoria. como é aq ? quem me ajuda. o erro foi qd editei o fstab, depois q revertir a edição voltou a funcionar normal, isso com o cartão dentro do pc . a /usr ta no cartão.
Danilo,
É, ficou meio ruim de ler as linhas do fstab mesmo. Mas, se você selecionar, copiar e colar, ela fica certinha. São duas linhas:
/squashed/usr/usr.sfs /squashed/usr/ro squashfs loop,ro 0 0
usr /usr aufs udba=reval,br:/squashed/usr/rw:/squashed/usr/ro 0 0
Qual erro que dá? Ele não consegue montar? Tenta, quando entrar no terminal, digitar:
sudo mount -ae vê se funciona.
Abraços,
Vítor.
Alexandre,
Depois de estar tudo instalado que você segue esse tutorial. Assim, se ele suportar a interface Unity do 11.04, que precisa de aceleração gráfica, rola sim. Esse método não faz milagres, mas ajuda bastante se você também tiver espaço limitado
Avisa se conseguir.
Abraços,
Vítor.
hoo rapaz obrigado pela ajuda, mas refiz as linhas e não deu certo. diz que ñ consegue montar, o teu comando sudo mount -a ñ funciona.
vou refazer tudo p ver se da certo. olha to usando o positivo mobo, aqle de via de 2 GB de hd. tu sabe onde ativar o drive de video dela ?
Oi Danilo,
Cara, eu não sei de que notebook você tá falando. Acho que não tenho muito como te ajudar, ao menos não só com o que você falou.
Abraços,
Vítor.
Leave a Comment