Combinando genes

Eu havia anunciado no Twitter quando descobri, mas é uma ótima oportunidade para ressucitar esse blog abandonado.

Eu vou ser pai. A Kátia será mãe. Descobrimos dia 29 de junho (que, notei agora, é o dia em que fez 1 ano que não escrevo nada neste blog).

Como eu não quero encher este blog de posts açucarados, com detalhes que ninguém quer saber exceto familiares e amigos próximos, criei um blog só para a criança: mq1000.raisama.net (meu filho tem um subdomínio só pra ele antes mesmo de nascer  8).

Por que mais um blog? Trecho do post inaugural:

Criei o blog para facilitar segmentação de conteúdo. Pai e mãe acham tudo lindo, mas nem todo mundo quer ler isso no meu blog pessoal, muito menos na valeta. Por outro lado, algumas pessoas (por exemplo, família e amigos próximos) podem querer ler sobre cada passo da jornada. Quem quiser, pode simplesmente seguir este blog. Quem não se interessar, não vai precisar aguentar post açucarado de futuros pais.

Coloquei lá o relato de quando descobri que ia ser pai, e uma explicação sobre o nome do blog.

Linux Kernel Newbies Brasil

Eu já havia anunciado em outros lugares antes, mas não havia feito o anúncio oficial aqui no blog: a comunidade Linux Kernel Newbies Brasil está de volta! Há várias maneiras de participar:

Se você tem dúvidas, envie para o forum do site ou para a lista de e-mail, ou pergunte no canal de IRC. Todas as dúvidas são bem vindas: das mais básicas às mais avançadas.

Se você tem experiência, participe do forum, da lista de e-mail e do canal de IRC. Ou, se gosta de escrever, você pode criar uma conta no site, e escrever ou traduzir material. Cada usuário registrado possui uma área pessoal no site, onde pode criar conteúdo que pode ser promovido para a página principal.

SMART and bad block reallocation fun

I’ve spent last night trying to find out how to handle some bad blocks reported by smartd, on the hard disk of a old laptop. The Bad block HOWTO for smartmoontools has lots of useful information, but too many calculations to be done by hand. To ease on the task, I’ve written a script to help on the task. The script simply does the calculations described on the HOWTO and shows you the result.

This is a sample run:

# ./lba2fs.py /dev/sda 11475078  # SMART says LBA 11475078 is bad
lba2fs, by Eduardo Habkost <ehabkost@raisama.net>
If you want to know what to do with the output of this program, check:

http://smartmontools.sourceforge.net/badblockhowto.html

[/dev/sda sector 11475078]
Press Return to automatically probe, or enter command:
cmd>
I think I've found: partition table
Checking the partition list...
/dev/sda2 sector 11073453
[/dev/sda2 sector 11073453]
Press Return to automatically probe, or enter command:
cmd>
I think I've found: LVM volume
Checking the PE where the block is located
pe_start: 384 sectors
PE: 168
Checking on which LV the PE is located
Found PE range on map (LV)
Checking maps of LV...
/dev/VolGroup00/LogVol00 sector 11073069
[/dev/VolGroup00/LogVol00 sector 11073069]
Press Return to automatically probe, or enter command:
cmd>
I think I've found: ext3 filesystem
Checking ext2 fs block...
Block size: 4096
Block: 1384133
debugfs 1.41.4 (27-Jan-2009)

GOOD: ext2fs block 1384133 at /dev/VolGroup00/LogVol00, not in use

You can zero the block running the following command, but:
1) Don't do that if the device is in use (e.g. filesystem mounted)
2) *You will lose data* that is stored on the block. It looks like
   It is safe to do that on this block, but be careful. Are your
   backups up to date?  8)

  dd if=/dev/zero of=/dev/VolGroup00/LogVol00 bs=4096 count=1 seek=1384133

I recommend doing a read-test on the block first, to see if an I/O error
is returned. Use the 'read' command for that.

[ext2fs block 1384133 at /dev/VolGroup00/LogVol00, not in use]
Press Return to automatically probe, or enter command:
cmd>

As you can see above, fortunately on my case the bad block was unused on the ext2 filesystem, and I could safely write to it to force the drive to reallocate the bad sector, and the I/O errors are gone.

The script just try to read from the devices, with no code to write to them, so it should be always safe to run it. However, be very careful when using the numbers calculated by it to write to a disk sector. Always keep your backups up to date.

O calculador de taxi cresceu

O que era hackzinho de final de semana agora cresceu e virou site “de verdade”. O calculador de tarifa de taxi agora tem domínio próprio: tarifadetaxi.com.

Além de Curitiba, agora a página sabe estimar a tarifa do taxi em mais 6 cidades: São Paulo, Belo Horizonte, Rio de Janeiro, Porto Alegre, Campinas e Recife.

Se alguém for andar de taxi em alguma dessas cidades, conte-me depois se o valor estimado bateu com a realidade. Serei eternamente grato.

Eu me esforcei um pouquinho mais para a página ficar usável no Internet Explorer. Agora não deve estar mais tão feia quanto antes, mas só testei no IE 6. Se ela estiver muito feia ou inutilizável em algum outro browser, me avisem.