segunda-feira, 26 de outubro de 2009

Gentoo Linux Visão Geral e instalação

O Gentoo Linux pode ser considerado uma metadistribuição, já que através de seu arquivo de configuração make.conf com suas USE_FLAGS podemos criar um sistema personalizado que atenda necessidade individuais, por exemplo, se preciso de um desktop com gnome pra que instalar Apache, Bind, Bancos de dados e outras aplicações inerentes a diversas distribuições Linux se nunca utilizaremos? Se meu desktop será Gnome pra que instalar todas as bibliotecas QT (linguagem de desenvolvimento do KDE)? Instalar esse sistema é realmente uma experiência satisfatória, através dela nós vamos escolhendo exatamente o direcionamento que daremos ao nosso sistema, estamos criando nosso próprio sistema...


Um ponto importante desse sistema é que ele é totalmente compilado para o Hardware alvo, isso também é feito através de algumas variáveis no make.conf, isso faz com que todos os programas instalados tenham um código mais enxuto e com um desempenho superior aos binários genéricos de outras distros, portanto ele é um sistema Linux mais veloz que os demais, isso é sensível.


Instalação

Atualmente tenho utilizado o Funtoo como base para minhas instalações do Gentoo, não conheço muito bem a história, mas parece que o fundador do Gentoo saiu da fundação e criou um sistema semelhante com algumas melhorias que ele batizou de Funtoo.

Lembre que o sistema é totalmente baixado da internet, não existe um sistema de instalação pré-configurado e não é simples fazê-lo, temos que dispor de tempo para instalar e manter o sistema, uma conexão a internet de banda larga é fundamental, instalar via linha discada deve ser um tremendo sofrimento, hardware com idade avançada também pode tornar a experiência sofrível pelo tempo que se gasta com as compilações, mas no final podemos ter um sistema totalmente otimizado para esse hardware, que o tornará mais rápido do que se usarmos outra distro (faca de dois gumes).


Baixe e dê boot com system rescue cd, isso é só uma sugestão, você pode usar qualquer live CD para a instalação http://www.sysresccd.org.


Observe as opções que temos no boot, você pode escolher um sistema de 32 ou 64 bits, essa opção deve ser a mesma do sistema que pretende instalar. Aqui explico como instalar usando a tecnologia LVM (Logical Volume Manager), que não vou explicar o que é, mas garanto que é fantástico.


Vamos lá, dê o boot com o Cd com a opção de 32 ou 64 bits que decidiu instalar o sistema;


Após o boot teremos um prompt, podemos escolher entre deixar em modo texto ou abrirmos uma sessão gráfica do servidor X, nesse caso é só digitar

     startx

Através da interface gráfica a experiência pode ser mais agradável, pois você pode navegar na internet e tirar as dúvidas durante a instalação,  mas no modo texto vai ser mais emocionante.



através do prompt do modo texto ou do terminal da sessão gráfica:

# fdisk /dev/sda

Criando a partição de boot

n

p

1

Pressione Enter para que ela comece no começo do disco.

+50M (esse tamanho é suficiente para acomodarmos alguns kerneis e o grub)

Partiçao Root

n

p

2

Pressione Enter para que ela seja contigua a partição de boot.

+150M (é tamanho suficiente para acomodar todos arquivos de configuração do sistema).

n

p

3

Pressione Enter duas vezes e todas as demais partições irão compartilhar todo o restante do disco, caso queira determinar um tamanho específico faça como nas outras partições.

T (vamos aqui determinar o volume físico do LVM)

3 ( número da partição escolhida para acomodar nosso sistema LVM)

8e ( tipo de partição LVM)

w (vamos escrever as mudanças no disco e gravar essa tabela de partições).


O disco já está particionado;-)


Criar os sistemas de arquivos das partições:

Eu uso ext2 para boot e JFS para todo o resto, considero o JFS o sistema de arquivos mais rápido que existe e ele trabalha muito bem com o lvm, permitindo o redimensionamento de partições "on the fly", mas só pra incremento de tamanho, não dá suporte para redução de tamanho.


    # mkfs.ext2 /dev/sda1

     # mkfs.jfs /dev/sda2 (esse sistema pede confirmação antes de formatar, diga yes)

 agora o LVM

mais informações http://www.gentoo.org/doc/en/lvm2.xml

pvcreate /dev/sda3 (criar o volume físico que o lvm irá utilizar)


vgcreate vg /dev/sda3 (onde o vg é o nome do grupo de volumes, você pode escolher outro nome).

Agora vamos criar as partições para /usr /opt /var /tmp /home e swap, os valores que eu apresento são para minha necessidade, quem segue esse artigo deve especificar suas próprias dimensões, lembrando que você poderá sempre aumentá-las e nunca diminuí-las usando o JFS, com outros sistemas de arquivos isso é possível, mas eu busquei desempenho com essas configurações.



lvcreate -L 2G -n usr vg (criando um volume lógico com tamanho de 2G, novo, denominado usr no grupo de volumes vg ;-)

lvcreate -L 500M -n home vg

lvcreate -L 200M -n opt vg

lvcreate -L 500M -n var vg

lvcreate -L 500M -n tmp vg

lvcreate -L 300M -n swp vg (swap)


Formatar os volumes lógicos:


# mkfs.jfs /dev/vg/usr

# mkfs.jfs /dev/vg/home

# mkfs.jfs /dev/vg/opt

# mkfs.jfs /dev/vg/tmp

# mkfs.jfs /dev/vg/var

# mkswap /dev/vg/swp (swap)


# swapon /dev/vg/swp


Criar os diretórios e montar as respectivas partições:


Se estiver utilizando o system rescue ele já tem o diretório /mnt/gentoo, caso esteja usando outra distro crie esse diretório:


# mkdir /mnt/gentoo

# mount /dev/sda2 /mnt/gentoo

# mkdir /mnt/gentoo/boot

# mkdir /mnt/gentoo/usr

# mkdir /mnt/gentoo/home

# mkdir /mnt/gentoo/opt

# mkdir /mnt/gentoo/tmp

# mkdir /mnt/gentoo/var

# mount /dev/sda1 /mnt/gentoo/boot

# mount /dev/vg/usr /mnt/gentoo/usr

# mount /dev/vg/home /mnt/gentoo/home

# mount /dev/vg/opt /mnt/gentoo/opt

# mount /dev/vg/tmp /mnt/gentoo/tmp

# mount /dev/vg/var /mnt/gentoo/var



Pronto, a máquina está preparada para começarmos a instalar o sistema

Vá até www.funtoo.org e baixe o stage3 de acordo com seu processador, podemos escolher entre a versão estável e a de testes, esta vem denominada ~funtoo.


vou usar o stage para ~x86


Vamos começar a fazer tudo dentro do diretório /mnt/gentoo que será a raiz do nosso sistema:
# cd /mnt/gentoo

Se estiver utilizando o system rescue precisamos ativar a interface de rede:
# net-setup eth0 (o programa irá fazer algumas perguntas, responda).

# wget http://dev.funtoo.org/linux/~funtoo/x86/stage3-x86-current.tar.bz2 (lembrando que o "~" determina que utilizaremos o sistema unstable, com softwares que podem ter bugs, em contra-partida são os mais recentes, como quero performance uso os mais novos, não os mais estáveis).


# tar xvjpf stage3-x86-current.tar.bz2

# cd usr/

# wget http://dev.funtoo.org/linux/~funtoo/snapshots/portage-current.tar.bz2 (snapshot do portage)

# tar xvjpf portage-current.tar.bz2

Agora é o momento de entrarmos no nosso sistema......


Vamos copiar nossas configurações de DNS para o novo sistema:


# cp /etc/resolv.conf /mnt/gentoo/etc

montar proc e dev

#  mount -t proc none /mnt/gentoo/proc

# mount -o bind /dev /mnt/gentoo/dev

# chroot /mnt/gentoo /bin/bash

Agora já estamos dentro do sistema que estamos instalando

# cd /usr/portage

# git checkout funtoo.org

# emerge --sync

Agora vamos trabalhar o make.conf para que ele atenda nossas necessidades.


Abaixo segue o meu arquivo, você pode digitar man make.conf e ler o manual, ver as USE_FLAGS em http://www.gentoo.org/dyn/use-index.xml e comece a montar seu sistema.


# These settings were set by the catalyst build script that automatically built this stage
# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-Os -march=prescott -mtune=prescott -mssse3 -mmmx -msse -msse2 -msse3 -mcx16 -msahf -mfpmath=sse -fomit-frame-pointer -pipe -ftracer -funroll-loops -maccumulate-outgoing-args -ftracer"
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
CHOST="i686-pc-linux-gnu"

USE_CPU="smp mmx mmxext sse sse2 sse3 ssse3"
USE_SYS="alsa cvs branding hal dbus acpi apm usb subversion git jfs ubuntu-patches nls symlink zlib vim-syntax"
USE_XORG="X xorg xcomposite xscreensaver xulrunner dri opengl cdparanoia dvd dvdr ffmpeg gif gphoto java6 jpeg jpeg2k mime mp3 mpeg gnome mplayer msn nsplugin pdf png xml truetype tiff xpm gtk"
USE_NO="-kde -mysql -debug -doc -emacs -cups -kerberos -qt -qt3 -qt4 -odbc -postgres -sqlite -sqlite3 -msql -mssql -oracle -pcmcia -doc -info -ipv6 -oss -xemacs"
USE="${USE_CPU} ${USE_SYS} ${USE_XORG} ${USE_NO}"

SYNC="rsync://rsync.samerica.gentoo.org/gentoo-portage"
#SYNC="rsync://rsync.gentoo.org/gentoo-portage"
ACCEPT_KEYWORDS="~x86"

LINGUAS="pt_BR"
MAKEOPTS="-j3 -s"
PORTAGE_NICENESS="8"
FEATURES="parallel-fetch collision-protect"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/skel"
INPUT_DEVICES="keyboard mouse evdev"
VIDEO_CARDS="vmware"
ALSA_CARDS="hda-intel"
PORTAGE_ELOG_CLASSES="warn info log"
PORTAGE_ELOG_SYSTEM="save"
#source /usr/local/portage/layman/make.conf
GENTOO_MIRRORS="http://www.las.ic.unicamp.br/pub/gentoo/ ftp://ftp.las.ic.unicamp.br/pub/gentoo/ ftp://mirrors.localhost.net.ar/pub/mirrors/gentoo http://gentoo.localhost.net.ar"

sexta-feira, 23 de outubro de 2009

Linux no Pendrive

Há cerca de dois anos (2007) encanei de colocar uma distribuição Linux dentro de um pendrive, mas não era simplesmente para dar o boot e fazer manutenção em micros, minha idéia era ter minha própria distro, personalizada e com possibilidade de salvar minhas configurações, alterações e preferências para recuperá-las posteriormente, até então só tinha visto que isso era possível escolhendo o pendrive USB como disco alternativo para instalação, ou seja dessa forma ficaria amarrado a utilizar minha distro num único PC, não era isso que eu queria, queria uma que permitisse ter meu próprio SO em qualquer micro, com meus favoritos, icônes e tudo que se espera de um micro próprio, opção muito segura para ser utilizada em LAN houses, por exemplo.

Uma alternativa que me pareceu interessante foi o Sidux, distro baseada no Debian versão unstable, o Sid, mas após pesquisar e fazer algumas experiências cheguei a conclusão que ele não salvaria as alterações feitas a cada sessão e não salvaria meus documentos, portanto o Sidux não servia.

O kurumin live CD tinha a possibilidade de criar um arquivo no seu disco com todas as alterações que fossem realizadas na sessão, opa, cheguei a conclusão que deveria seguir por aqui.

Mas o kurumin era baseado na tecnologia desenvolvida no Knoppix, então, só por uma questão de romantismo resolvi partir para o original, o Knoppix.

Baseando-me no artigo do site "Guia do Hardware" do C. Morimoto http://www.guiadohardware.net/tutoriais/instalar-kurumin-pendrive/
comecei a criar meu prórprio SO, nesse artigo ele ensina passo-a-passo como realizar isso.

Quebrei a cabeça legal para conseguir meu objetivo, mas em minhas pesquisas, pedidos de ajuda em foruns achei a distro brasileira Epidemic, também em versão live CD/DVD e fiz um questionamento no forum deles e me falaram que não tinha a opção de salvar alterações feitas durante a sessão, mas que estudariam essa feature para a próxima versão, foi quando parti para minha aventura com o Knoppix, mas meses depois não é que os caras (agradecimentos ao James Benedito, principal desenvolvedor dessa Distro Nacional) colocaram essa opção na versao atual do Epidemic Linux http://www.epidemiclinux.org.

Com o Epidemic não é nenhuma aventura instalar um Linux no pendrive, é só clicar nas opções do menu que ele instala, e você pode escolher entre salvar ou não as alterações de cada sessão. Os caras dessa distro acabaram com a graça do meu esquema, ficou muito fácil, qualquer um pode ter um linux num pendrive e usar sua própria distro em Lan Houses ou em qualquer micro público preservando sua privacidade e com toda segurança inerente ao linux.