just another ordinary, contentless weblog

/proc/partitions

pois é… quando eu disse que não estava bem ao fazer o último post, é porque eu não sabia como eu iria ficar depois…

bem, segunda passada é que eu não estava bem… tanto que fui capaz de fazer uma grande besteira.

não estou querendo dizer que o fato de eu não estar bem foi a causa do que aconteceu, mas que colaborou.

enfim, o que aconteceu foi:

há alguns meses o hd de meu notebook foi pro saco (eu tinha backup recente do meu homedir, ainda bem) e eu comprei outro e tal… daí segunda passada eu pus o hd antigo defeituoso num cabo usb-ide que tenho para verificar se conseguia ler alguns dos dados que acreditava ter perdido. e tharam! conseguia ler tudo… parecia que o hd nunca tinha apresentado algum problema (lembro bem que logo que troquei os hds, fiz o mesmo teste e ele não funcionou).

copiei imediatamente algum dos dados que queria e depois pensei: pô… tenho agora um disquetão de 40GB. prontamente deletei todas as partições que existiam e criei uma nova. só depois disto, percebi a besteira: eu estava excluindo as partições do /dev/hda e não do /dev/sda [1].

sim, eu havia ignorado o aviso que o fdisk dá quando você deleta uma partição que está montada.

ao perceber isto, pensei como eu poderia fazer para recuperar. de imediato, fiz um novo backup do meu homedir, por precaução. pensei, também, em deixar copiando todos os arquivos do disco para o meu novo disquetão de 40GB, mas a interface USB 1.1 é muito lenta, isso iria demorar MUITO tempo.

voltando a como recuperar, pensei: po, o fdisk só altera a tabela de partições do disco. não deve ter escrito nada na área de dados, sendo assim, as partições ainda existiam, mas as informações de onde elas começavam e terminavam é que havia sido sobreescritas.

as partições ainda estavam montadas, então um ‘df‘ me diria qual o tamanho exato de cada partição. engano. me diria o tamanho disponível em uma partição. não o tamanho dela, pois ao formatar a partição uma parte do espaço é usado pelo sistema de arquivos para indexa-los. comecei a procurar programas que faziam recuperação de tabela de partições para Linux, sem muito êxito.

foi aí que pensei no parted, que se não houvesse uma forma de recuperar a tabela de partições, poderia servir pelo menos para criá-las, uma vez que eu tivesse as informações precisas de como isso deveria ser feito.

ao consultar o help do parted, vi que havia um comando chamado ‘rescue’ e me interessei por ele:

(parted) rescue START END              rescue a lost partition near START and END

consultando a man page do parted, verifiquei que START e END são megabytes, então com comandos do tipo:

(parted) rescue 0 40000

e depois

(parted) rescue 300 40000

o parted foi encontrando, uma-a-uma, as primeiras partições.

os valores não são exatamente os que usei e ele pede alguma confirmação, depois de encontrar a partição, para escrever as informações na tabela de partições.

porém, o parted não se garantiu ao encontrar uma partição extendida. sugeriu que era uma partição primária, ignorando que haviam mais partições dentro da partição extendida.

em paralelo, eu estava tentando ver se conseguia criar partições, usando o fdisk, especificando o tamanho em bytes ou em blocos, mas tudo o que eu tinha era como criá-las por cilindro.

depois de mais um pouco de pesquisa e uma dica de Ulisses Montenegro, vi que daria para fazer isso por setores, que já é bem mais granularizado que cilindros. para isto, basta dar o comando ‘u’ no fdisk, que ele chaveia entre usando setores ou cilindros.

faltava apenas criar as 2 partições que existiam na partição extendida. a partição extendida, apesar de não ter sido detectada pelo parted, eu sabia que era de onde teria terminado a 3ª partição até o fim do disco e criei manualmente.

para fazer isso, eu precisaria saber exatamente quantos setores teria uma das partições que restava (a outra teria o restante).

aí que entrou o /proc/partitions

lá existia a informação que eu queria, mas ao invés de setores, estava em blocos, como é mostrado no fdisk -l.

pude confirmar que estavam corretos os tamanhos das partições criadas/recuperadas pelo parted.

e com ‘fdisk -l -u‘ são exibidos os tamanhos em blocos e quantos setores existem no disco, como se vê abaixo:

# fdisk -l -u

Disk /dev/hda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders, total 78140160 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
[...]

daí com uma regra de três simples, ficou fácil saber com quantos setores as partições que faltavam deviam ser criadas.

pense numa torada de aço. 😛

mas isso tudo não me fez esquecer o que me fazia estar mal… só me distraiu por um tempo, durante a hora do almoço, que eu nem queria sair pra comer.

no final das contas foi até bom, já que não houve nenhum prejuízo e ainda tenho um disquetão de 40GB.

[1] para quem não sabe, no Linux, /dev/hda refere-se ao primeiro disco da primeira controladora IDE. /dev/sda refere-se ao primeiro disco SCSI. e a interface ide-usb, simula uma interface SCSI, de forma que mesmo sendo um disco IDE, os discos plugados nesta controladora sao vistos como discos SCSI.

dreamhost

bem, como prometido, vou falar agora do hosting que estou usando.
de antemão advirto que não estou muito bem hoje, de forma que estou escrevendo para ocupar a minha mente. sendo assim, vou não vou escrever tom tanta preocupação com a dialética, ortografia e/ou gramática.

voltando ao assunto… na realidade eu não contratei o hosting… estou usando de arrego o que minha irmã contratou, já que é permitido usar vários domínios na mesma conta e eu já tinha o domínio registrado há algum tempo. como eu quem resolve qualquer pepino mais técnico que ela tem, eu tenho total acesso à conta dela.

também fui eu quem indicou o hosting, pois já tinha ótimas referências, e também tinha más intensões para poder arregar. 😉

o contrato que foi feito é o mais barato, sai por volta de 8 dólares/mês e os benefícios que temos:

* 4800MB de espaço em disco
* 120GB de banda (aparentemente o tráfego é contabilizado apenas por http)
* acho que posso usar 3 domínios na mesma conta
* email (POP3 e/ou IMAP — com SSL — 🙂 ) (vários)
* smtp com autenticação (sem SSL 🙁 )
* acesso a shell no servidor Debian (vários)
* servidor Jabber com o domínio desejado (aquele mesmo protocolo do Google Talk)
* estatísticas (Analog) de acesso de cada [sub]domínio (acesso privado com login e senha)
* registro de um domínio (ainda não usado, mas devo usar quando for renovar o domínio de Renata)
* painel de administração da conta muito bom, onde são exibidas várias informações, como contabilidade de uso da banda, uso estimado da banda até o final do mês, entre outras coisas…
* este sistema de blogging que estou usando (WordPress) é instalado muito facilmente. também existem outros sistemas “pré-instalados”, por exemplo: loja virtual em php. mas é possível instalar outros manualmente.
* servidor web (Apache) com suporte a CGI e PHP
* o pessoal do suporte, pelo menos aparentemente, sabe o que fala (não sei se foi porque no formulário do suporte eu selecionei a opção que dizia algo do tipo “sem querer ser pedante, mas provavelmente entendo disso mais que você”, quando perguntava o nível de conhecimento técnico)
* outras coisas que não estou com saco de escrever ou não me lembro

problemas que tive e foram resolvidos por mail ao suporte:
* demora para ativar os domínios (meu e de minha irmã), pois eram domínios que já existiam, e houve um pouco mais de burocracia para isso.
* contas de mails demoraram para ser ativadas (tive que mandar mail para isso). não sei qual foi a bronca, mas pelo que pude inferir, foram problemas de configuração do DNS (deles).

fora isso, tudo pôde ser resolvido no painel por mim mesmo.
no fim das contas, achei MUITO foda o serviço deles. ainda mais com o preço que estou pagando ($0) 😀

mas vale o preço que minha irmã está pagando tranquilamente.

e para quem quer saber as configurações de hardware do servidor:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1513       1456         56          0          8        777
-/+ buffers/cache:        671        841
Swap:         6165          0       6165
$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Xeon(TM) CPU 2.40GHz
stepping        : 9
cpu MHz         : 2400.147
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm pbe cid
bogomips        : 4784.12

OBS: só colei um dos processadores mas são 4 belezinhas dessas.

mais uma curiosidade sobre o servidor:
olha a caralhada de patches que devem ter aplicado no Kernel:

$ uname -a
Linux olympic 2.4.29-grsec+w+fhs6b+gr0501+nfs+a32+++p4+sata+c4+gr2b-v6.189 #1 
SMP Mon Feb 7 13:23:30 PST 2005 i686 GNU/Linux

por hoje é só… acho que já me sinto um pouco melhor. 😉

google talk

eu falei que escreveria sobre o meu hosting… mas como a febre hoje é o Google Talk (GT), resolvi mudar o tema. o hosting fica pra depois.

muitos rumores a respeito de um IM do Google já existiam, mas assim que eu soube que fora lançado de fato, a primeira questão que me veio à mente foi: “sim, mas roda em linux?”.

pouco depois, verifiquei que o GT usa o protocolo Jabber, ou seja, qualquer programa de IM que dê suporte a este protocolo pode ser usado. DUCARAY! posso continuar a usar o GAIM em meu Gentoo Linux. mas outras questões me vieram à mente:

quais seriam as vantagens de usar o GT?

* interface extremamente simples (marca registrada do Google)
* programa extremamente pequeno (900k o instalador, não cheguei a medir o consumo de memória, mas certamente é MUITO menor que o do MSN Messenger)
* integrado com o Google Desktop (não testei)
* integrado com o Google Earth (não testei)
* integrado com o Gmail (testado)
* dentre outras que estou sem saco de listar…

o que eu gostaria mesmo de destacar é a integração com o Gmail. mais especificamente das listas de contato.

ao adicionar um contato no GT, automaticamente este contato é adicionado à sua lista de contatos do Gmail. além disso, se você ‘renomeia’ um contato no seu GT (isso também funciona no GAIM), ele também é renomeado na sua lista de contatos com o Gmail.

sim, descobri isso por acaso.

como já utilizava Jabber, eu sabia que o ‘alias’ do contato é definido por ele, mas que eu poderia sobreescrevê-lo, de forma que se tenho dois ‘Ulisses’ na minha lista de contatos, posso renomear um para ‘Ulisses Moraes’ e o outro ‘Ulisses Montenegro’ de forma que consigo diferenciá-los de forma mais fácil.

sim, esses dois Ulisses existem.

acontece que muitos dos meus contatos estavam sem ‘alias’, então aparecia apenas seus emails, e alguns outros tinham. normalmente era seus nomes e sobrenomes. tentei saber porque isso acontecia.

em primeira instância, achei que os que não tinham alias, não estavam inserindo esta informação. mas consultando alguns deles, verifiquei que eu estava enganado.

sendo assim, abstraí. renomeei todos os contatos para nomes mais mnemônicos e voltei ao trabalho.

só depois de algum tempo, ajudando um outro amigo a configurar o seu GAIM para conectar no GT… verifiquei que ele ao conectar pela primeira vez, veio com um nome totalmente diferente do seu (seu nome é Rafael e apareceu João).

fiquei intrigado, mas ao mesmo tempo comecei a lembrar que eu quem fiz o convite para este amigo criar o Gmail, e que quando se faz o convite para o Gmail é necessário dizer o nome, sobrenome e o email que ele quer criar, porém todas as informações podem ser mudadas por quem recebe o convite.

o que aconteceu foi: eu havia enviado um convite para um amigo chamado João, que ficou pendente por um bom tempo, enquanto este meu amigo Rafael estava querendo um Gmail… então fui na minha caixa de saída, peguei o link para aceitar o convite que havia sido feito para João e enviei para Rafael, que alterou as informações que eu havia inserido (referentes a João) e criou seu Gmail com outras informações

só que, quando ele confirmou a criação do mail, o Gmail inseriu na minha lista de contatos o email de Rafael com o nome de João (pois eram os nomes que eu havia colocado).

boa confusão não é? mas pelo menos agora tudo faz sentido.

isso pode trazer alguns atrapalhos, para quem não faz as coisas da forma mais trivial (como foi o caso). mas, no geral, acredito que tem vários benefícios.

só tem uma coisa que acho ser chata… muita gente adora mudar os nicks no msn para poder mostrar seu humor, dar notícias, etc… no GT isso não é possível, já que não é você quem gerencia seu alias na lista de contato das pessoas.

outra coisa chata, que acontece no GAIM com o GT, é que quando alguem me adiciona a sua lista de contatos e eu vou adicionar esta pessoa também, eu escolho o grupo ao qual esta pessoa vai fazer parte e quando vejo, ela realmente está neste grupo e, também, em um grupo chamado ‘Buddies’ (que é o grupo padrão do Jabber, pelo menos no GAIM)… só que eu não uso este grupo, sempre deleto o contato dele e o grupo junto… e sempre ele aparece novamente.

será que devo fazer preencher um bug report no bugzilla do GAIM? eu acho um saco preencher aquilo.

bem, como o post ficou grande, acho que por enquanto é só. 😉
mas ainda tinha algumas coisas a adicionar…

kickstart

bem, não sei até onde eu vou conseguir levar este blog, mas se eu não tentar não vai sair do canto…

de antemão, aviso aos navegantes (que provavelmente nunca lerão este primeiro post) que o conteúdo deste ‘blog’ provavelmente será mais técnico. envolvendo jogos eletrônicos, computadores, linux, opensource, porém sem me limitar a estes tipos de temas podendo passar por tópicos pessoais também.

não conheço muito de sistemas de blogs, o WordPress foi escolhido porque já estava instalado no hosting que estou utilizando (o próximo post será falando dele)… porém, sugestões são sempre bem-vindas (alguem conhece algum sistema de blog tableless?)

* sim, sou geek/nerd. como preferirem.
* sim, não gosto de usar maiúsculas, exceto com nomes próprios.
* sim, eu gosto de usar termos em inglês, mas às vezes tento evitar.
* sim, também gosto de usar parênteses.
* sim, vou deixar o layout padrão do WordPress, achei ele bem elegante. pelo menos por enquanto.
* sim, costumo formular várias frases começando com “bem,”.