Stoa :: Oda :: Blog :: Linux

Outubro 02, 2009

default user icon
Postado por Oda

You can boot slackware from an USB stick using the images prepared by Alien BOB. But in this case you will need to keep Slackware tree in a NFS, local hard drive, HTTP, etc.

Fortunately you can also have the complete Slackware tree on your USB stick: http://connie.slackware.com/~alien/tools/usbinstall/13.0/

Ok, now why am I telling this? It seems that all these methods are based on images and you will probably lost all your data every time you need to update the stick (I may be wrong cause I didn't test any of them, sorry).

I like to stay current, so I decided to find an easy way to keep Slackware Installer and tree in my USB stick. I found and now I'm sharing ;)

Use fdisk or anything else to create the partitions. You will need a 2gb ext3 partition (or ext2 or ext4 or another decent file system type). Mount this partition and copy slackware-current or slackware64-current directory to there. You can have both.

Now create a directory in the USB stick root (mine is named boot ;) and copy this script to there (setup ) . Also, copy slack.bmp from your /boot to have a nice splash and then run the script.

It will create the lilo.conf file and it will run lilo. Now try to boot from the USB stick!

Palavras-chave: Linux, pendrive, Slackware, USB stick

Postado por Oda | 0 comentário

Julho 28, 2009

default user icon
Postado por Oda

What can I say? I'm a Linux addict ;) So when the Armedslack was adopted as an official port I decided to install it on my Palm Centro.

It was an easy task, thanks to hackndev guys.

The following instructions may work on all ARM devices, but you may need a kernel with a different config.

You will need a Palm Centro, a 2gb SD card (4Gb is recommended), Armedslack and Cocoboot.

1. Download Armedslack:
# cd /
# mkdir armedslack
# rsync \
  --exclude '*/source/*' \
  --delete -Pavv \
  ftp.armedslack.org::armedslack/armedslack-12.2 armedslack

2. Download Cocoboot (http://hackndev.com/trac/wiki/Cocoboot)
# cd /armedslack
# wget http://releases.hackndev.com/tools/cocoboot/cocoboot-0.5.3.prc

3. Download a kernel built for Palm Centro (http://hackndev.com/node/221):
# cd /armedslack
# wget http://releases.hackndev.com/kernels/zImage-centro-2.6.27-00066-gb7f

4. This kernel was compiled without nfs support, so we'll use http to install Slackware. Start Apache and create a link to Armedslack:
# chmod +x /etc/rc.d/rc.httpd
# /etc/rc.d/rc.httpd start
# cd /var/www/htdocs
# ln -s /armedslack/armedslack-12.2 slack

5. Preapre the SD card. You'll need a FAT32 partition that will be visible from Palm, a EXT3 partition to Slackware installer, another EXT3 where Slackware will be installed and an optional swap partition:
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1               1         947       31250+   b  W95 FAT32
/dev/mmcblk0p2             948        4051      102432   83  Linux
/dev/mmcblk0p3            4052      116000     3694317   83  Linux
/dev/mmcblk0p4          116001      117356       44748   82  Linux swap

# mkfs.msdos /dev/mmcblk0p1
# mkfs.ext3 /dev/mmcblk0p2
# mkfs.ext3 /dev/mmcblk0p3

6. Prepare the first partition, mmcblk0p1, copying the kernel and Cocoboot:
# mount /dev/mmcblk0p1 /mnt
# cd /mnt
# mkdir -p palm/launcher
# cp /armedslack/zImage-centro-2.6.27-00066-gb7ff8ec zImage
# cat > cocoboot.conf <<EOF
cmdline = root=/dev/mmcblk0p2 rw rootdelay=1
kernel = /zImage
openserial = 1
EOF
# cd /
# umount /mnt

7. Prepare the second partition, mmcblk0p2, with the Slackware installer:
# mount /dev/mmcblk0p2 /mnt
# cd mnt
# zcat /armedslack/armedslack-12.2/isolinux/initrd-versatile.img | cpio -id

8. Apply the patch so 'probe' will recognize your SD card and 'rc.inet1' will set you network properly  centro.patch  
# patch -p0 < centro.patch
# cd /
# umount /mnt

9. Insert the SD in the Palm and start Cocoboot. Active the USB connection: Tools->USB Console. It will take 10 seconds. Click "Boot" and wait until the boot finish (you'll have to select a keyboard, just press Enter).

10. Connect your Palm charger (otherwise your battery will die during the installation) and the data cable. From your station issue lsusb and check if you have the following line in the output:

Bus 007 Device 011: ID 049f:505a Compaq Computer Corp. Linux-USB "CDC Subset" Device, or Itsy (experimental)

If it's not, try to unplug and plug the USB cable...

11. On your workstation, configure the network:
# iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24
# sysctl -w net.ipv4.ip_forward=1
# ip addr add 192.168.0.200/24 dev usb0
# ifconfig usb0 up
If you got "Cannot find device" error, go back to step 10.

12. Ssh (without password) to Palm (the address was preconfigured by the patch) and start the setup:
# ssh root@192.168.0.202
# setup

13. Select http as your media installation, and configure it as http://192.168.0.200/slack/slackware. Go take a coffee... Actually, two coffees ...

14. Select the packages. I suggest you remove KDE, Tex, Emacs (does anybody use this crap?), FAQs, Kernel Source, X, XAP, etc... In your first try install the minimum. There is a good chance that the setup fails. Don't give up! Try again! You may select "menu" option, so you can remove packages like cups and others that you will not use. All the installation will take about 4 hours.

14. Restart the Palm (issue halt and remove the battery). Open Cocoboot and edit Command line (you can put this as default editing cocoboot.conf). Now you can finally boot your Slackware ;).
root=/dev/mmcblk0p3 rootdelay=1

REFERENCES
http://hackndev.com/node/212
http://hackndev.com/node/221

Palavras-chave: Armedslack, Centro, Linux, Palm, Slackware

Postado por Oda | 0 comentário

Julho 27, 2009

default user icon
Postado por Oda

Como todo bom nerd linux addict (ou deveria dizer Slackware addict?!?) nao resisti a instalar o Slackware no meu Palm assim que o port Armedslack virou oficial.

A coisa eh mais ou menos simples, gracas ao pessoal do hackndev.com. Basicamente basta usar o Cocoboot e um kernel devidamente compilado.

As instrucoes abaixo tb funcionam em outros dispositivos com processadores ARM, mas talvez vc precise de um kernel com outras configs.

Voce vai precisar de um Palm Centro, um SD card de 2Gb (recomendo 4Gb), Armedslack, Cocoboot,

1. Faca o download do Armedslack:
# cd /
# mkdir armedslack
# rsync \
  --exclude '*/source/*' \
  --delete -Pavv \
  ftp.armedslack.org::armedslack/armedslack-12.2 armedslack

2. Faca o download do Cocoboot (http://hackndev.com/trac/wiki/Cocoboot)
# cd /armedslack
# wget http://releases.hackndev.com/tools/cocoboot/cocoboot-0.5.3.prc

3. Faca o download do kernel ja preparaado para o Palm Centro (http://hackndev.com/node/221):
# cd /armedslack
# wget http://releases.hackndev.com/kernels/zImage-centro-2.6.27-00066-gb7f

4. O kernel acima nao tem suporte a NFS entao o jeito mais facil de instalar as coisas eh usar http. Inicie o Apache e crie um link para os pacotes do Armedslack:
# chmod +x /etc/rc.d/rc.httpd
# /etc/rc.d/rc.httpd start
# cd /var/www/htdocs
# ln -s /armedslack/armedslack-12.2 slack

5. Particione o SD. Voce precisa de uma particao FAT32 para o Palm, uma particao para colocar o instalador do Slackware, uma particao para o Slackware e uma particao para swap (acho que isso eh opcional):
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1               1         947       31250+   b  W95 FAT32
/dev/mmcblk0p2             948        4051      102432   83  Linux
/dev/mmcblk0p3            4052      116000     3694317   83  Linux
/dev/mmcblk0p4          116001      117356       44748   82  Linux swap

# mkfs.msdos /dev/mmcblk0p1
# mkfs.ext3 /dev/mmcblk0p2
# mkfs.ext3 /dev/mmcblk0p3

6. Preparamos a particao mmcblk0p1 (visivel do palm) copiando o Cocoboot e o Kernel:
# mount /dev/mmcblk0p1 /mnt
# cd /mnt
# mkdir -p palm/launcher
# cp /armedslack/zImage-centro-2.6.27-00066-gb7ff8ec zImage
# cat > cocoboot.conf <<EOF
cmdline = root=/dev/mmcblk0p2 rw rootdelay=1
kernel = /zImage
openserial = 1
EOF
# cd /
# umount /mnt

7. Preparamos a particao mmcblk0p2 com o instalador do Slackware:
# mount /dev/mmcblk0p2 /mnt
# cd mnt
# zcat /armedslack/armedslack-12.2/isolinux/initrd-versatile.img | cpio -id

8. Voce vai precisar editar dois arquivos do instalador. Um deles eh o 'probe' deve ser editado para reconhecer o cartao SD e o 'rc.inet1' para iniciar corretamente a rede. A maneira mais facil de fazer isso eh usar o patch  centro.patch  
# patch -p0 < centro.patch
# cd /
# umount /mnt

9. Insira o SD no palm e inicie o Cocoboot. Ative a conexao por USB: Tools->USB Console. Vai demorar uns 10seg. Clique em "Boot". Aguarde o boot terminar (vai ter que selecionar um teclado, apenas de um Enter).

10. Conecte o carregador no Palm (caso contrario vc vai ficar sem bateria dirante a instalacao) e o cabo de dados. Com o lsusb, verifique que a linha seguinte esta presente:

Bus 007 Device 011: ID 049f:505a Compaq Computer Corp. Linux-USB "CDC Subset" Device, or Itsy (experimental)

Se nao estiver, tente plugar e desplugar o cabo usb...

11. Na maquina, configure a rede:
# iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24
# sysctl -w net.ipv4.ip_forward=1
# ip addr add 192.168.0.200/24 dev usb0
# ifconfig usb0 up
Se der o erro "Cannot find device" eh pq o passo 10 deu problema.

12. Faca um ssh (nao tem senha) para o palm (endereco pre-configurado por causa do patch) e inicie o setup:
# ssh root@192.168.0.202
# setup

13. Selecione instalacao por http, fornece o endereco: http://192.168.0.200/slack/slackware. Aguarde uma vida... Ou duas...

14. Selecione os pacotes. Sugiro remover o KDE, Tex, Emacs (alguem ussa essa merda?), FAQs, Fonte do kernel, X, XAP, etc... Instale somente o necessario. A chance de erros eh grande. Nao desanime e tente novamente. Eu fiz uma instalacao bem magrinha, usando a opcao menu (nao a full) e selecionando os pacotes um a um.

14. Agora eh so reiniciar o Palm, abrir o Cocoboot e editr o Command line para (Voce pode colocar isso como default editando o cocoboot.conf):
root=/dev/mmcblk0p3 rootdelay=1

REFERENCIAS
http://hackndev.com/node/212
http://hackndev.com/node/221

Palavras-chave: Armedslack, Centro, Linux, Palm, Slackware

Postado por Oda | 0 comentário

Julho 17, 2009

default user icon
Postado por Oda

Mais um post da serie receitas de bolo!

Hoje me perguntaram se eh possivel fazer ssh para uma maquina e nao precisar fornecer senha. A resposta que dei foi: claro!

Eh uma coisa bem simples de se fazer, mas acho que pouca gente usa.

Mas pq raios alguem vai querer isso? Oras, se vc trabalha muito com maquinas remotas (para administra-las, para rodar programas em paralelo, etc) vai achar um saco ter que ficar digitando sua senha 364765294734 vezes.

Bom, vamos a receita de bolo:

Primeiro, da maquina da qual vc vai fazer o ssh (maquina local) crie um par de chaves:

$ ssh-keygen

Vai te solicitar uma senha que eh opcional. Ela eh usada para cifrar sua chave privada, mas nesse caso, cada vez que vc for usa-la vai precisar digitar a senha e vc nao quer isso, portanto deixe a senha em branco. Se vc nao se sente seguro em deixar sua chave privada em uma maquina sem que ela esteja protegida por senha, entao nao deixe sua chave la, mesmo que protegida por uma senha, isso nao eh obvio?

Agora copie a chave publica ($HOME/.ssh/id_rsa.pub) para a maquina remota usando scp, mandando por email, sem muita preocupacao, afinal, a chave publica eh publica!

Faca um ssh para a maquina remota e anexe o conteudo de id_rsa.pub ao final do arquivo $HOME/.ssh/authorized_keys:

$ cat id_rsa.pub >> ~/.ssh/authorized_keys

Pronto! Pode dar um logoff e fazer o ssh novamente, e dessa vez sem senha!

Deixe eu fazer algumas consideracoes importantes. Cuide muito bem da sua chave privada. Se alguem pega-la eh como saber sua senha. Por exemplo, se vc tem conta em uma rede e em uma das estacoes de trabalho vc faz o passo a passo acima para acessar uma outra maquina, a da sua casa, por exemplo,o administrador da rede podera acessar a maquina da sua casa. Fazer o contrario (gerar o par de chaves na maquina da sua casa) eh seguro, se vc confiar nas pessoas da sua casa, claro...

Eu, por exemplo, contrato um servico de hosting barato para eu brincar com algumas coisas, fazer o site de uns parentes e outras bobagens. Eu posso fazer ssh para o servidor onde estao os sites, mas nunca vou permitir ssh sem senha da rede do IME para o servidor e nem o contrario, entende?

Mas eu gerei um par de chaves no meu micro de casa e mandei a chave publica para a rede IME e para o servidor compartillhado, de modo que de casa acesso os dois lugares sem usar senha.

Vc pode tb colocar a chave privada no seu notebook, mas dai eh melhor usar discos criptografados.

Caso vc tenha conta em uma rede, cada hora usa uma estacao de trabalho diferente e precisa fazer ssh para outras estacoes/servidores que montam seu home por nfs ou similar, vc definitivamente pode usar o esquema descrito acima. E melhor, vc pode fazer numa mesma estacao ;)

 

Palavras-chave: Linux, ssh

Postado por Oda | 1 usuário votou. 1 voto | 2 comentários

Maio 23, 2009

default user icon
Postado por Oda

Estou assumindo que vc conhece o sistema de pacotes do Slackware, ok?

Eu fiz uma pequena alteracao no installpkg, assim quando vc executar

# installpkg --warn pacote.tgz

vai ver uma lista apenas dos arquivos que serao sobrescritos. Da para fazer o que eu to falando aqui sem fazer a tal alteracao, mas o --warn eh meio idiota de qq jeito, entao resolvi fazer ele funcionar melhor. O patch esta anexo.

Para aplica-lo, faca um backup do installpkg original:

# cp /sbin/installpkg /sbin/installpkg.original

Baixe o patch (installpkg-improvement.patch ) e execute:

#  patch -p0 < installpkg-improvement.patch

Depois de aplicar o patch, vc pode fazer o backup com o comando:

#  tar czf backup.tgz `installpkg --warn pacote.tgz | tr '\n' ' '`

Isso eh util quando vc vai instalar pacotes que substituem coisas importantes.

Palavras-chave: backup, installpkg, Linux, Slackware

Postado por Oda | 1 comentário

Maio 22, 2009

default user icon
Postado por Oda

A essa altura ja nao eh novidade que saiu o port para 64 bits oficial do Slackware. Tb nao eh novidade que eu gosto dessa distro. Tao pouco eh novidade que os caras la nao sao de dar muita satisfacao dos planos deles. Mas fiquei meio decepcionado com o tratamento que foi dado aos ports nao oficiais, como o Slamd64, mas isso eh outro papo.

To aqui para falar que, demorou mas instalei o Slackware64 no meu laptop (Dell Latitude 5500).

O processo de instalacao eh o mesmo. Ta dando umas piscadas bizarras durante o setup, mas nada que atrapalhe... To usando LVM sem crise e com EXT4, que agora eh indicado como padrao.

Fiz o initrd como de costume e bootei. A tela la do lilo mudou um nadinha... Agora, abaixo de Slackware, ao invez de "Linux" esta escrito "01 00 00 00", sei la pq. O kernel eh o 2.6.29.2, entao ao invez de Tux vc Tuz (diabo da tasmania com mascara de pinguim) durante o boot.

Uma grande novidade eh que (ja tem umas semanas) o KDE4 ja substituiu de vez o 3.5, snif... Mas tudo bem, a gente se acostuma. Talvez isso seja um incentivo para eu voltar para o window maker ;)

Outra coisa interessante eh que agora o MPlayer eh instalado por padrao, mas sem todos os codecs. Certamente da para colocar outros codecs, mas ainda nao fui atras. 

Minhas placas de rede wireless, video e som funcionaram out-of-the-box. Ja era de se esperar pois ja era assim no 32bits.

Agora preciso ver como migrar os SlackBuilds para instalar:

  • Flash
  • djview
  • Openoffice
  • eclipse

Bom, por enquanto eh so. Deixa eu comecar a brincar para ver como vai. Enquanto isso, ai vai o nano-FAQ.

 

nano-FAQ:

Eh 64 bits puro?

Nao, eh multilib, meio no esquema do Slamd64 ate onde vi.

Cade o kernel com smp?

Deixa de ser idiota... Usa o generic que ta tudo certo...

O KDE4 ja ta 100%?

Nao, mas que ta bonito, isso ta.

O Akonadi enche o seu saco?

Sim, muito.

O flash 64 bits funciona?

Sim, use o slackbuild do slamd64.

O java funciona?

Sim, de cara.

LVM e RAID?

Tudo ok.

Mas da para colocar a raiz num lvm sobre raid?

Sim, mas acho que nao da para colocar o /boot num RAID nao linear, entao se for usar algo como RAID10, crie um RAID 1 so para o /boot. Se for usar so LVM, entao nao precisa mudar nada.

O menu do KDE4 ta vazio!

Vc esta usando nv? Entao muda para vesa (nao testei com nvidia) e executa:

# kbuildsycoca4 --noincremental

 

Palavras-chave: 64bits, Linux, Slackware, slamd64

Postado por Oda | 2 comentários

Abril 24, 2009

default user icon
Postado por Oda

Ok, lvm eh uma maravilha, mas tem horas em que vc ta fazendo algo arriscado e eh melhor saber o que esta acontecendo.

Eh o caso de reduzir uma particao. Tive que fazer isso aqui no meu laptop para eu criar um espaco para brincar de instalar Arch e Slamd64, entao deixo a minha receita de bolo junto de algumas dicas de como as coisas funcionam (desculpe a formatacao coco, mas eh que to sem tempo de acertar meu css...).

Primeira coisa eh saber que o tamanho do lvm eh exatamente igual ao tamanho da particao. Para verificar isso, desmonte o volume e passe um fsck nele:

root@thor:~# umount /dev/slackware/home
root@thor:~# fsck.ext3 -f /dev/slackware/home
e2fsck 1.41.3 (12-Oct-2008)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/slackware/home: 93897/5046272 files (3.0% non-contiguous), 12098954/20168704 blocks 

 

Nota na ultima linha:  "20168704 blocks". Isso quer dizer que a particao tem 20168704 blocks (em geral de 4k). Agora vc pode ver o tamanho do lvm que contem essa particao com:

root@thor:~# lvs --units 4k /dev/slackware/home
  LV   VG        Attr   LSize        Origin Snap%  Move Log Copy%  Convert
  home slackware -wi-a- 20168704.00U
 

Notou o--units 4k? Isso eh pq os meus blocos sao desse tamanho. Bom, mas o importante eh que a gente obteve exatamente o mesmo tamanho que o fsck.

Ok, entendidos ate aqui, vamos botar a mao na massa. Eu quero reduzir meu volume home para 66G, entao faco o seguinte:

  1. Desmonto o volume
  2. Rodo um fsck no volume
  3. Mudo o tamanho da particao como  resize2fs
  4. Mudo o tamanho do lv com o lvreduce
  5. Roda de novo um fsck
  6. Monta o volume
  7. Paga uma cerveja para o Oda

 Facil, certo?

Aos detalhes...

1. Esse vc se vira rsrs

2. Roda o fsck e nao esqueca de verificar o tamanho do volume so para saber que tudo esta indo bem... 

root@thor:~# fsck.ext3 -f /dev/slackware/home
e2fsck 1.41.3 (12-Oct-2008)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/slackware/home: 93897/5046272 files (3.0% non-contiguous), 12098954/2016870   4 blocks

3.Agora vem uma parte delicada. Vc deve dizer o tamanho que vc quer que a particao fique. Deve ser algo estritamente maior que o quanto esta ocupado no momento (12098954 blocks no caso). Para saber isso em gigas, vc pode pegar os blocks e multiplicar por 4/1024^2. No meu caso: 12098954*4/1024^2 < 47 < 66G, ok? Entao posso mudar a minha particao para 66G como comando:

root@thor:~# resize2fs /dev/slackware/home 66G
resize2fs 1.41.3 (12-Oct-2008)
Resizing the filesystem on /dev/slackware/home to 17301504 (4k) blocks.
The filesystem on /dev/slackware/home is now 17301504 blocks long.

 Nota uma coisa legal: 17301504*4/1024^2 = 66, como esperado, certo?

 4. Ok malandro, agora vem a parte que o pessoal se enrola e acaba desperdicando disco. Como a gente viu la no comeco do post, o lvm pode ficar exatamente com o mesmo tamanho da particao. Entao vc pode usar simplesmente:

root@thor:~# lvreduce -L66G /dev/slackware/home
  WARNING: Reducing active logical volume to 66.00 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce home? [y/n]: y
  Reducing logical volume home to 66.00 GB
  Logical volume home successfully resized

Valeu? Quer ver que ficou tudo redondo? Executa:

 root@thor:~# lvs --units 4k /dev/slackware/home
  LV   VG        Attr   LSize        Origin Snap%  Move Log Copy%  Convert
  home slackware -wi-ao 17301504.00U

Nota o 17301504. Perfeito, hein? Agora temos uma particao de exatamente 66G, que bonito...

5.Agora vale um fsck de novo, obtendo a saida:

root@thor:~# fsck.ext3 -f /dev/slackware/home
e2fsck 1.41.3 (12-Oct-2008)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/slackware/home: 93897/4325376 files (3.0% non-contiguous), 12053722/17301504 blocks

6. Monta o volume ai, meu!

7. Deixa um comentario ai para a gente marcar a cerveja! Abraco!

Palavras-chave: Linux, lvm, reduce, resize

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Oda | 0 comentário

Abril 23, 2009

default user icon
Postado por Oda

Depois de meses brigando para criar uma rede usando Gentoo posso finalmente me posicionar sobre esta distro.

O Gentoo eh uma m...

Dada as necessidades que temos aqui na rede nao da para viver do stable e o unstable é _realmente_ unstable.

Passadas duas semanas sem conseguir concluir 1 update com sucesso, vou partir para uma atitude mais drastica: usar o bom e velho Slackware.

Mas para dizer que eu nao sou arrojado (e pq realmente precisamos de 64bits) vou usar o port nao oficial do Slackware, o Slamd64.

De quebra, acrescento:

  • o kde4 ainda ta longe de ficar decente (apesar de ser realmente bonito)
  • o akonadi usa uma instacia de mysql, eh sinistro... come 100mb de cara por causa das coisas de innodb. E o pior: ele coloca o mysql.socket no home, de modo que vc nao pode usar o home num AFS!! E o mais impressionante, nao da para mudar isso via config files!!! Ai meu deus!!!

Bom, ainda estou meio inseguro com o Slamd64, mas na atual situacao, eh o que me resta. Vou montar uma estacao e ver se eh razoavel. Se der tempo vou colocando as infos aqui.

Se tb nao der certo com ele, ai lascou, vou ser obrigado a usar Debian...

Palavras-chave: gentoo, Linux, slackware, slamd64

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Oda | 2 usuários votaram. 2 votos | 23 comentários

Junho 15, 2008

default user icon
Postado por Oda

Intro

Opa! Acabei o mestrado e deu tempo de brincar um pouco, hehe, entao hoje eu instalei o Slackware 12.1 numa maquina nova. Fiz tudo sobre RAID e LVM e a ideia agora eh colocar o Xen para rodar.

Foi tudo bem simples, vou deixar os passos registrados aqui e com o tempo vou melhorando o texto. Comentarios, duvidas e sugestoes sao muitissimo bem vindas!

 

Hardware

O processador eh um Intel Core 2 Duo E6750, 2.66GH, 4Mb L2 Cache, 1333MHz. Escolhi esse danado pq ele suporta instrucoes de virtualizacao (Intel VT). Veja aqui uma lista dos processadores da Intel que suportam isso. A AMD tb tem um esquema parecido chamado Pacifica. Bom, mas falo mais disso quando estiver falando de virtualizacao (possivel proximo post).

A placa mae eh uma Asus P5VD2-VM SE. Ela suporta 2 SATA's (Raid 0 e 1 e JBOD) e 2 IDE's (no mesmo cabo) com chipset VIA VT8237S.

Estou com 2Gb de ram e 2 SATA's de 250 GB em Raid 1.

 

Planejamento

A ideia eh montar uma maquina para brincar, entao eh fundamental poder ter snapshots do sistema todo, com entao a saida eh colocar a raiz num volume logico. Entao vou fazer uma particao de 50Gb para ter 3 volumes: um de 15Gb para a raiz, um de 15Gb para snapshots da raiz e um home modesto de 5Gb. O resto deixa por ai.

Bom, eu ainda sou um pouco conservador entao vou colocar o swap numa particao so para ele, sem LVM mesmo. E vou deixar uns 50Gb para emergencias. O que sobrar vou deixar para brincar com o Xen.

Uma coisa que li [2] e que me pareceu razoavel eh que eh bom deixar uns 100Mb sem uso no final do disco para evitar frustracoes com discos ligeiramente diferentes.

 

Instalando

Como de costume, dei o boot pelo CD do Slackware, loguei como root e ai comecou a brincadeira.

Primeiro me certifiquei que os discos estavam sendo reconhecidos:

# fdisk -l

Dai com o fdisk criei as particoes no /dev/sda, tomando o cuidado de trocar o tipo de particao para "Linux raid autodetect" (tipo fd):

# fdisk /dev/sda

No final ficou assim:

# fdisk -l /dev/sda

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x7a3c7a3c

Device Boot Start End Blocks Id System
/dev/sda1 * 1 6226 50010313+ fd Linux raid autodetect
/dev/sda2 6227 12452 50010345 fd Linux raid autodetect
/dev/sda3 12453 13075 5004247+ fd Linux raid autodetect
/dev/sda4 13076 30387 139058640 5 Extended
/dev/sda5 13076 30387 139058608+ fd Linux raid autodetect
root@pub00:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/slackware-root
15G 4.1G 10G 30% /
/dev/mapper/slackware-home
5.0G 139M 4.6G 3% /home
tmpfs 950M 0 950M 0% /dev/shm

Depois eu copiei a tabela de particoes para o sdb:

# sfdisk -d /dev/sda | sfdisk /dev/sdb

E criei os RAID arrays:

# mdadm -C /dev/md0 -l 1 -n 2 /dev/sd[ab]1
# mdadm -C /dev/md1 -l 1 -n 2 /dev/sd[ab]2
# mdadm -C /dev/md2 -l 1 -n 2 /dev/sd[ab]3
# mdadm -C /dev/md3 -l 1 -n 2 /dev/sd[ab]5

Explicando os parametros:

  • -C: diz para criar um novo array
  • -l: eh o nivel do RAID, no caso um RAID 1
  • -n: numero de devices no array

Voce pode conferir como ficou com o comando:

# mdadm -D /dev/md[0-3]

Bom, depois criei os VG, PV e LV (vou colocar so um de exemplo):

# pvcreate /dev/md0
# vgcreate slackware /dev/md0
# lvcreate -L15G -nroot slackware
# lvcreate -L5G -nhome slackware
# vgchange -a y slackware

Acertei o swap:

# mkswap /dev/md2

E finalmente comecei o setup do Slackware:

# setup

Fiz tudo como normalmente, apenas indicando como device da raiz como /dev/slackware/root e montei o /dev/slackware/home em /home.

Acabando o setup, fui acertar o kernel e o initrid. Comecei com o famoso chroot:

# chroot /mnt

Depois fiz o initrd. Demorei um bocado para encontrar essa opcao -R pq nao tava no man do Slackware 12... Dependendo de o quanto azarado vc eh, vc vai precisar usar um -m ext3:algumparamentromaluco para carregar o modulo do seu RAID. E se vc for fazer snapshot da raiz (que eh o meu caso), entao vai precisar de um -m ext3:dm_snapshot

# mkinitrd -c -k 2.6.24.5-smp -m ext3:dm_snapshot -f ext3 -r /dev/slackware/root -L -R

Bom, dai eu editei o lilo.conf colocando o seguinte la para o final:

raid-extra-boot = mbr-only
image = /boot/vmlinuz-generic-smp-2.6.24.5-smp
initrd = /boot/initrd.gz
root = /dev/slackware/root
label = Linux
read-only
image = /boot/vmlinuz
root = /dev/slackware/root
label = Huge
read-only

Por fim rodei o lilo e fim :P

 

TODO

Ainda precisa configurar o mdadm para monitorar o RAID... Mas nao eh dificil nao.

Alem disso, preciso testar para ver se esta tudo funcionando, se consigo dar boot pelos 2 disco etc.

 

Conclusoes

Acabei agora a pouco, entao ainda nao da para dizer muito. Ate agora a performance parece boa e tudo mais.

Ainda nao sei bem as implicacoes de se ter a raiz num LVM, mas tem muita gente por ai fazendo terrorismo. Por outro lado, a documentacao do Slackware [1] ignora essas coisas, entao eu diria que eh seguro.

Bom, mas viu? Foi facil, muito facil!! Chegou ate a ser sem graca nao eh? Com alguma sorte o Xen da mais trabalho rsrsrs

 

Referencias

[1] http://slackware.osuosl.org/slackware-12.1/README_LVM.TXT

[2] http://slackware.osuosl.org/slackware-12.1/README_RAID.TXT

[3] http://www.tldp.org/HOWTO/LVM-HOWTO/

[4] http://pumpump.blogspot.com/2007/07/installing-slackware-12-on-linu

[5] http://www.userlocal.com/articles/raid1-slackware-12.php

 

Palavras-chave: instalacao, Linux, LVM, RAID, Slackware

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Oda | 9 comentários

Maio 10, 2008

default user icon
Postado por Oda

Estava lendo o post Cinco razões para NÃO usar Linux e percebi que muitas vezes o uso do linux eh justificado pelo fato do windows ser pago. Ai me ocorreu a seguinte pergunta: se o windows, com todos os seus defeitos, fosse gratuito (para uso nao comercial pelo menos, sem ser opensource ou free software) vcs usaria ele?

A minha resposta para essa pergunta eh: "Slackware na veia". Nao vou argumentar a favor dela agora pq to sem saco... De todo modo acharia um grande contra-senso os adeptos de ubuntu (argh) ainda quisessem usar essa porcaria marrom...

Bom, devaneios de sabado a tarde... Mas gostaria de ouvir alguns comentarios :)

Palavras-chave: Linux, windows gratis

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Oda | 23 comentários

Outubro 16, 2007

default user icon
Postado por Oda

Quem nunca passou pela situacao de estar em casa e precisar de um paper mas o desgracado so eh acessivel de uma maquina da USP (tipo IEEE ou coisa parecida) pelos convenios das bibliotecas?

Nesse caso, vc pode fazer seu computador da sua casa passar a ser um computador da rede local da USP usando uma VPN. Sendo bem ingenuo, podemos descrever uma VPN como um tunel virtual criado por criptografia dentro da rede publica para vc transmitir dados.

Bom, procura ai no google que vc vai aprender mais. O intuito aqui eh so mostrar como fazer uma VPN bem simples usando o ssh como proxy.

Uma das maneiras de fazer uma VPN eh utilizando o servico de VPN do CCE: http://www.vpn.usp.br/, mas ele usa um protocolo da microsoft. Isso quer dizer que, alem de ruim, seu funcionamento num linux exige algum esforco (no windows eh trivial, parece que no ubuntu tb).

Se vc nao quer utilizar o servico do CCE e tem uma conta em alguma rede linux ou unix pela usp que vc possa acessar por ssh, abra um terminal e digite:

$ ssh user@host -ND 8888 sleep 99999

Nao seja estupido e troque o user e o host antes de perguntar: pq isso nao funciona???

O -N inibe a execucao de comandos remotos e o -D port inicia o proxy. A porta 8888 pode ser trocada por qq outra porta alta (espero que vc nao faca isso como root...).

Bom, executando esse comando, abra o firefox e va em Edit->Preferences->Advanced->Network->Settings

Selecione a opcao "Manual proxy configuration". Deixe tudo em branco, exceto SOCKS Host, qe deve ser configurado como localhost porta 8888.

De um ok em tudo e fim de papo.

Acesse um site tipo www.showip.com e vc vai ver que agora vc tem um IP que comeca com 143. um IP da USP.

Palavras-chave: linux, ssh, vpn

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Oda | 5 comentários

default user icon
Postado por Oda

Essa vem atrasada, mas tudo bem, fica a posteridade.

Todo ano o horario de verao no Brasil muda a data de inicio e fim. Em sistemas windows, nao tem jeito, vc vai ter que rebolar, mas tem um tal de tzedit que vem no resource kit que quase fuciona.

No linux as coisa sao mais faceis e tem um monte de informacao disponivel na internet. Em particular 2 artigos quebram um galho:

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1557

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1653

Tudo isso ai funciona no Slackware, mas resolvi escrever esse artigo para comentar umas particularidades.

O arquivo /etc/localtime indica qual o timezone vc vai utilizar. Este arquivo eh uma copia de um dos arquivos de zoneinfo do diretorio /usr/share/zoneinfo/.

Bom, mas ai fica a duvida: de qual arquivo o localtime eh copia? Para isso existe o /etc/localtime-copied-from, que eh um link simbolico para o arquivo de zone info de origem.

Esses 2 arquivos sao criados pelo script de configuracao timeconfig. Entao, tudo o que vc precisa fazer eh criar um arquivo com o coteudo (tem um ja preparadinho: Sao_Paulo.zic ):

# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule BrazilSP 2007 only - Oct 14 0:00 1:00 S
Rule BrazilSP 2008 only - Feb 17 0:00 0 -
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Zone America/Sao_Paulo -3:00 BrazilSP BR%sT

Alterando apenas a ultima linha para o seu timezone. Salve com um nome decente, tipo nomedotimezone.zic, e execute como root o comando:

# zic Sao_Paulo.zic

Isso ira substituir o arquivo de timezone de /usr/share/zoneinfo/ (/usr/share/zoneinfo/America/Sao_Paulo no exemplo). Se vc eh um tonto e executou isso e nao fez um backup do arquivo antigo, eu coloquei um aqui (Sao_Paulo.s12 ) caso vc queira desfazer tudo. (a extensao s12 eh para eu me lembrar que isso eh original do slackware 12).

Agora tudo o que vc precisa fazer eh contar para SO que ele precisa atualizar os arquivos la do /etc. Faca isso executando o timeconfig (pode ser via pkgtool):

# timeconfig

e escolhe o timezone correto (America/Sao_Paulo, no exemplo)

Isso coloca e tira vc do horario de verao automaticamente. Entao vc so precisa se preocupar com isso de novo ano que vem, as vesperas da mudanca. Dai basta repetir o processo com um arquivo .zic novo!

Ok, isso eh um saco, entao to pensando em fazer um pacote que tem uma versao nova todo ano e faz todo esse trabalho sujo. Se uma hora eu tiver saco, faco ele e posto por aqui.

Por ultimo, vale dizer que testei essas coisas num slack12, mas deve funcionar bem em outras versoes. 

Ah! E nao esqueca de usar o ntp!! Bota ele no cron!

Palavras-chave: daylight saving time, dst, horario de verao, linux, slackware

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Oda | 2 comentários