Os artigos mais lidos

Quarta, Janeiro 30, 2013 Helio Loureiro Blog 18908
XGH é uma das coisas mais genias que surgiu nos últimos tempos, descrevendo a estupidez que se aplica em métodos ágeis, mas que reflete bem o ambiente corporativo. Infelizmente o site foi abandonado...
Sábado, Maio 03, 2008 Helio Loureiro FreeBSD 16012
This article is kindly linked by: http://tuxmobil.org/hp_compaq.html http://tuxmobil.org/mobile_bsd.html Barely finished my last article about FreeBSD (PRERELEASE at that time) on Compaq laptops,...
Quarta, Junho 11, 2014 Helio Loureiro Blog 15831
Nem só de discussões de licença, flamewares, releases de kernel e ativistas sapatênis vive o mundo do software livre. Às vezes é envolto de mistério também. Um dos enigmas recentes foi o sumiço da...
Sexta, Maio 20, 2005 Helio Loureiro Python 15531
Esse é o script usado para autenticar automaticamente no Speedy da Telefonica (região de São Paulo). Evita que usuários residenciais, como eu, precisem estar em frente à máquina, permitindo que a...
{mosimage} Finalmente resolvi bater um pouco a cabeça e tentar habilitar a função de journaling em FreeBSD (um pouco movido pela inveja de ver isso funcionado em Linux, um pouco porque essa foi uma das "top" features do FreeBSD-7.0). O grande desafio foi fazer isso em um sistema já ativo. Já havia deixada uma partição livre, /dev/ad4s1h, com 360 MB livres, mas descobri que precisava de uma relação de partição/partição para ter o journaling ativado.

Meu disco usava a seguinte separação de slices:

{mosimage}

  • ad4s1a em / (UFS2)
  • ad4s1b como swap
  • ad4s1c reservado para o disco todo (default)
  • ad4s1d em /tmp (UFS2 e soft-updates)
  • ad4s1e em /var (UFS2 e soft-updates)
  • ad4s1f em /home (UFS2 e soft-updates)
  • ad4s1g em /usr (UFS2 e soft-updates)
  • ad4s1h disponível com 360MB

Descobri que o sistema de label de slices do BSD ainda mantém a limitação de 8 slices por partição, o que restringe somente ao uso das letras a-h. Com isso esgotado, as alternativas de criar ad4s1i, ad4s1j e assim por diante, impossível.

Buscando na rede, descobri que a forma de fazer isso seria atribuindo o tamanho total de disco a ser alterado para ad4s1h e depois aplicando o disklabel sobre o mesmo, na forma "disklabel -e ad4s1h", onde novamente a letras de a-h estão disponíveis. Com isso, criei os labels ad4s1ha, ad4s1hb, ad4s1hc, ad4s1hd, ad4s1he, ad4s1hf e ad4s1hg, para cada um corresponder ao seu journal, com 50MB.

O passo seguinte foi criar e ativar o journal. Seguindo a man page, gjournal (8), segui os passos como abaixo (após o boot em single mode):
{CODE} gjournal load gjournal label -f ad4s1d ad4s1hd gjournal label -f ad4s1e ad4s1he gjournal label -f ad4s1f ad4s1hf gjournal label -f ad4s1g ad4s1hg tunefs -J enable -n disable ad4s1d.journal tunefs -J enable -n disable ad4s1e.journal tunefs -J enable -n disable ad4s1f.journal tunefs -J enable -n disable ad4s1g.journal {/CODE}
Fiz as alterações correspondentes no /etc/fstab:
{CODE} /dev/ad4s1b none swap sw 0 0 /dev/ad4s1a / ufs rw 1 1 /dev/ad4s1f.journal /home ufs async,rw 2 2 /dev/ad4s1d.journal /tmp ufs async,rw 2 2 /dev/ad4s1g.journal /usr ufs async,rw 2 2 /dev/ad4s1e.journal /var ufs async,rw 2 2 linprocfs /compat/linux/proc linprocfs rw 0 0 proc /proc procfs rw 0 0 {/CODE}
O primeiros boot falharam devido ao fato de que "gjournal load" não existe em nenhum ponto do rc.conf. Fiz uma alteração em "/etc/rc.d/fsck" para que isso funcionasse (linhas 30-32):
{mosimage} {CODE} 28 fsck_start() 29 { 30 # patch to force gjournal load 31 echo -n 'Load gjournal (as patch): ' 32 /sbin/gjournal load 33 34 if [ "$autoboot" = no ]; then 35 echo "Fast boot: skipping disk checks." {/CODE}

Ainda não descobri como ativar a partição raiz, "/", com journaling também, mas só o fato de ter feito isso com a demais já fez muita diferença: o sistema ficou muito mais rápido.