Blog do Éverton

17/12/08

Como retornar dos travamentos do Mail

Às vezes o Mail trava repetidamente por causa de alguma falha com a renderização HTML efetuada pelo Safari 4.
A solução é executar a seguinte linha no terminal:

defaults delete com.apple.mail ActiveViewers

Ela faz com que nenhuma mensagem seja selecionada quando o Mail for reiniciado, de forma que o Safari não vai tentar renderizar o conteúdo da mensagem e consequentemente travar.

13/04/08

Atalhos úteis

Para fixar:

Sleep do monitor: Ctrl-Shift-Eject
Sleep imediato: Cmd-Opt-Eject

Fonte: danrodney.com

11/04/08

OS X 10.5.2 + Time Machine + Samba

Finalmente encontrei um jeito do Time Machine (sim, OS X :) funcionar com um compartilhamento Samba.

Vamos ao passo a passo:

1. Disponibilize um compartilhamento BEM GRANDE.
FreeNAS status
Acho que 194 GB é suficiente pra esse teste :).

2. Execute o seguinte comando no terminal:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

3. Monte o compartilhamento no Finder, digitando Command + k e fornecendo o endereço do servidor:
Montando Compartilhamento

4. Entre na configuração do Time Machine, ative-o e selecione para o backup o disco que foi montado no Finder. Também confirme que o botão do TM aparece na Barra de Tarefas.


5. Através do ícone do TM na barra de tarefas ordene que um backup seja executado imediatamente.
Backup Now

6. Essa é importante: Enquanto o TM tenta fazer o backup, fique de olho na pasta compartilhada do servidor Samba para descobrir o nome de um arquivo com extensão ".sparsebundle" que é criado temporariamente.
O nome deve ser "<"nome da maquina_mac da interface en0">".
Abaixo está o resultado do comando "ls -lh" executado no diretório compartilhado do Freenas.
O endereço MAC do meu host foi parcialmente omitido por questões óbvias.
ls -lh

7. O backup vai dar errado porque não foi possível criar o arquivo citado acima (é assim mesmo...).

8. No Disk Utility, crie uma nova imagem do tipo "sparsebundle" do tamanho do espaço em disco disponível/reservado para backup no servidor Samba. As outras opções são "Mac OS Extended (Journaled)" e "No Partition Map".
Creating sparse

9. Salve esse arquivo com o nome daquele que foi criado temporariamente na pasta compartilhada. Mova essa imagem para o compartilhamento Samba.

10. No mesmo botão do Time Machine da barra de tarefas ordene que o backup seja feito novamente. Dessa vez deve funcionar corretamente, só precisa esperar o backup dos Zetabytes de dados...
Backup



Testei essa configuração com o Leopard 10.5.2 + security update 2008-002 e FreeNAS 0.686.3 com compartilhamento via Samba. Deve funcionar também com o compartilhamento AFP disponível no FreeNAS, já que o problema da criação do arquivo (ítem 7) era o mesmo.

TM Configuration
ps. O backup foi só de 17gb porque eu excluí da lista muitas pastas pessoais e de sistema que eu não queria copiar por enquanto, pois é só um teste.

ps2. Este backup é executado em uma máquina virtual rodando no próprio MacBook.

ps3. Eu sei que fazer backup no mesmo disco é totalmente inútil, mas isso é só um teste.

Referência: Flokru

31/10/07

Backup versionado no linux

Eu estava "extasiado" com o time machine do MAC OS X Leopard, e acabei encontrando essa postagem do blog do André Lopes através do BR-Linux, onde ele mostra um script dele que faz "praticamente" o mesmo tipo de backup do Leopard.

No review do arstechnica o procedimento de backup do Leopard é bem explicado. As diferenças são a existência de hardlinks para diretórios (não existentes no Linux) e o modo de verificar quais arquivos foram modificados(tratamento de eventos), além da interface gráfica, é claro...

Copiei, analisei e alterei o script do André pra ficar ainda mais "redondo". Vi os comentários sobre o rsnapshot, mas não olhei essa ferramenta ainda.

Agora dá pra excluir diretórios ou arquivos do backup, as pastas ficam organizadas exatamente no mesma estrutura do original e a nomenclatura das pastas raiz do backup fica mais simples (no meu ponto de vista :)

Agora é só usar o backup a sério!

#!/bin/bash

# Name : versioned-backup.sh
# Author : André Luís Lopes
# Description : A simple shell script which deploys a nice
# versioned backup solution based on rsync’s
# hardlinking capability
# Version : 0.0.1
# License : GPL (General Public License) version 2

# Modified by Éverton Foscarini
# email: foscarini |a| foscarini |.| biz
# Version : 0.0.2
#
# Added:
# support to maintain full path of archives
# Date format slightly changed to allow easy understanding
# Option to exclude subdirectories from backup

# Where’s the rsync binary
rsync="/usr/bin/rsync"
# The minimal rsync options we absolutely want
#-v verbose mode (use for debug)
#-z compress data during transfer, not on target (good for network transfers)
#-a maintain file permissions (good for backup)
rsyncminopts="-a"

# Our target directory, i.e, where we are going
# to dump everything
target="/mnt/backups/"
# A space separated list of directories we want to backup
sources="/home/ /etc/"

# file where excluded files/folders should be listed
# write 1 pattern per line, using wildcards ( like * ). Check the rsync man page
exclude_file="excluded.txt"
# the content of this file should be something like this (remove the hashes):

#*.thumbnails
#*.mozilla/firefox/*/Cache/

# Test if exclude file exists and add this option to the command line
if [ -f $exclude_file ]
then rsync_extra_opt="--exclude-from "$exclude_file;
fi

# The current point-in-time (pit), constructed in
# the YYYY-MM-DD-HH:MM:SS format
pit=`date +"%Y-%m-%d-%H-%M-%S"`

# The file which will store the point-in-time
# information about our last snapshot run
lastrunfile="/mnt/backups/lastrun"

# Ensure it works even when running for the very first
# time, as we create the target place where we are going
# to dump everything and the base directory to where we
# are going to hardlink further snapshots to
if [ ! -f $lastrunfile ]
then for source in $sources
do mkdir -p $target/$pit/$source
$rsync $rsyncminopts $rsync_extra_opt $source/ $target/$pit/$source/
done
echo $pit > $lastrunfile
exit 0
fi

# Create the snapshot of every source directory from the
# current point-in-time into our specific point-in-time
# directory and hardlink all the files and directories which
# where not modified since the last snapshot run
for source in $sources
do mkdir -p $target/$pit/$source
$rsync $rsyncminopts $rsync_extra_opt --link-dest=$target/$(cat $lastrunfile)/$source/ $source/ $target/$pit/$source/
done

# Store the identification of our last run into a non-volatile
# place so we can use it on further runs
# it's important run this after backup finish to be sure that this backup was successfully completed
echo $pit > $lastrunfile

23/09/07

"Banindo" o 3RL do Xbox 360

Diversão para um fim de semana.
Material necessário:
  • Xbox 360
  • Dremel
  • Coolers de 6 e 8 cm
  • "grelhas" para acabamento externo
Essa "indiada" é a segunda providência tomada para tentar diminuir a probabilidade do aparecimento das temidas 3RL, a primeira foi a troca da pasta térmica original por uma Arctic Silver 5.

O álbum com várias fotos do processo está aqui.

18/09/07

Boot do Ubuntu via HD USB

Foi utilizado o Ubuntu Feisty (7.04) e um HD externo USB.

A instalação do sistema foi feita ainda com o HD conectado ao computador na interface IDE. Após finalizada a instalação, foram necessárias 2 alterações para bootar pelo USB.

1. Substitui o Grub pelo Lilo.

[chute mode on] O Grub não tem os drivers para reconhecer uma controladora USB (ehci, uhci, etc) e muito menos um hd conectado na porta USB (usb-storage), por isso não tem como acessar as partições do disco e fazer boot, aparecendo só uma tela de erro ao ser carregado via USB.
O Lilo não precisa desses drivers, já que faz um "hard link" para o executável do kernel com um offset da localização no próprio disco para carregar o kernel e o ramdisk, passando a responsabilidade de "detectar o usb e o usb-storage" para eles.[chute mode off]

A instalação do Lilo foi feita normalmente, sem configurações especiais.

2. Alterei o script de inicialização no ramdisk, para que o boot esperasse alguns segundos, a fim de que os drivers USB reconhecessem a controladora de disco e as partições dentro do HD USB (informação obtida no forum do ubuntu).

Alterei o arquivo /usr/share/initramfs-tools/init (informação não obtida no fórum do ubuntu), acrescentando a ultima linha abaixo, depois da carga dos módulos:


maybe_break modules
log_begin_msg "Loading essential drivers..."
load_modules
log_end_msg
sleep 12

Rodei "update-initramfs -u" para atualizar o ramdisk existente.

Logo depois, desliguei e conectei o HD via USB. Se eu não esqueci de nada, isso é suficiente pra funcionar. Eu poderia ter editado diretamente o ramdisk atual, incluindo o comando de sleep, mas em uma futura atualização de kernel eu teria de fazer tudo novamente.

"Pinei" o pacote initramfs-tools, para não ter que tomar cuidado de não atualizar este pacote ao atualizar o sistema. Segue o conteúdo de /etc/apt/preferences
Package: initramfs-tools
Pin: version 0.85eubuntu5
Pin-Priority: 1001

Pelo que percebi, os kerneis atuais estão pedindo a versão 0.36 deste pacote, então não vou me incomodar muito cedo.

Quanto ao particionamento, ainda na instalação as partições são nomeadas de acordo com um hash, de forma que não precisei configurar o /etc/fstab e nem o Lilo.

24/05/07

A perda da importância

Me peguei pensando sobre o quanto certas coisas perdem a importância que já tiveram em nossa vida.
Me veio à cabeça a imagem de eu mesmo, montando pela primeira vez um computador. Era um Athlon 800, com 128mb de RAM. Não era uma máquina muito avançada pra época, mas era certamente muito adequada pra um estudante em meados de 2001.
Lembro de ter passado horas e horas ajeitando o gabinete, preparando as passagens de ar, fixando ventoinhas e acertando cada cabo de força pra que ficasse fixado fora do caminho por onde o ar ia passar. Me negava até mesmo a fazer overclocking, por medo de superaquecer o processador.
Hoje em dia, eu deixo o gabinete aberto, esqueço de passar pasta térmica no processador, até tirei uma das ventoinhas do cooler para fazer testes de barulho, entre outras barbaridades que aquele mesmo micro sofre.
Todas essas "barbaridades" eu ainda não tenho coragem de fazer com o meu PC novo (que hoje tem 8 meses), mas tenho certeza que um dia chegarei a esse ponto.

O meu notebook não teve mais sorte. Esse já foi quase totalmente desmontado, faltando apenas retirar a placa mãe e o processador. Infelizmente não fiz fotos, mas este site fez, e é o mesmo modelo.

Outro que não teve sorte foi o meu celular, um Nokia 6100, que depois de diversos anos de extensos cuidados (exceto por inúmeros tombos, mas quem nunca derrubou seu celular?), teve de ser desmontado para reparo de seu "chassi". O fundo do celular, que apesar de ser de um plástico bem resistente, não resistiu aos insistentes tombos, e foi comprometido, precisando então ser colado com Araldite.

E agora, saindo do aspecto geek da "perda da importância", o que mais nós deixamos de dar a devida importância depois de algum tempo?