Tendo preparado todas as partições requeridas, é bastante fácil configurar o journaling. Nós precisaremos mudar para o modo de single user, então entre como root
e digite:
#
shutdown now
Pressione Enter para obter o shell padrão. Nós precisaremos desmontar as partições que serão registradas no diário, no nosso exemplo /usr
e /var
:
#
umount /usr /var
Carregue o módulo necessário para o journaling:
#
gjournal load
Agora, use suas anotações para determinar qual partição será usada para cada diário. Em nosso exemplo, /usr
é ad0s1f
e seu journal será ad0s1g
, enquanto /var
é ad0s1d
e será journaled para ad0s1h
. Os seguintes comandos são necessários:
#
gjournal label ad0s1f ad0s1g
GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.#
gjournal label ad0s1d ad0s1h
GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal.
Se o último setor de qualquer partição for usado, o gjournal
retornará um erro. Você terá que executar o comando usando o sinalizador -f
para forçar uma substituição, ou seja:
#
gjournal label -f ad0s1d ad0s1h
Como esta é uma nova instalação, é altamente improvável que qualquer coisa seja realmente sobrescrita.
Neste ponto, dois novos dispositivos são criados, a saber ad0s1d.journal
e ad0s1f.journal
. Os quais representam as partições /var
e /usr
que temos que montar. Antes de montar, devemos definir o flag de Journal e limpar o flag de Soft Updates:
#
tunefs -J enable -n disable ad0s1d.journal
tunefs: gjournal set tunefs: soft updates cleared#
tunefs -J enable -n disable ad0s1f.journal
tunefs: gjournal set tunefs: soft updates cleared
Agora, monte os novos dispositivos manualmente em seus respectivos locais (note que agora podemos usar a opção de montagem async
):
#
mount -o async /dev/ad0s1d.journal /var
#
mount -o async /dev/ad0s1f.journal /usr
Edite o /etc/fstab
e atualize as entradas para /usr
e /var
:
/dev/ad0s1f.journal /usr ufs rw,async 2 2 /dev/ad0s1d.journal /var ufs rw,async 2 2
Certifique-se de que as entradas acima estão corretas ou você terá problemas para inicializar normalmente após o reboot!
Finalmente, edite o /boot/loader.conf
e adicione a seguinte linha para que o módulo gjournal(8) seja carregado em cada boot:
geom_journal_load="YES"
Parabéns! Seu sistema está agora configurado para journaling. Você pode digitar exit
para retornar ao modo multiusuário ou reinicializar para testar sua configuração (recomendado). Durante a inicialização, você verá mensagens como as seguintes:
ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150 GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. GEOM_JOURNAL: Journal ad0s1d clean. GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal ad0s1f clean.
Após um encerramento não limpo, as mensagens variam ligeiramente, ou seja:
GEOM_JOURNAL: Journal ad0s1d consistent.
Isso geralmente significa que o gjournal(8) usou as informações no journal provider para retornar o sistema de arquivos a um estado consistente.
Embora o procedimento acima seja necessário para partições que fazem uso de journaling e que já contêm dados, o journaling de uma partição vazia é um pouco mais fácil, uma vez que os dados e o journal provider podem ser armazenados na mesma partição. Por exemplo, suponha que um novo disco tenha sido instalado e uma nova partição /dev/ad1s1d
tenha sido criada. Criar o journal seria tão simples quanto:
#
gjournal label ad1s1d
O tamanho do journal será 1 GB por padrão. Você pode ajustá-lo usando a opção -s
. O valor pode ser dado em bytes, ou acrescentado por K
, M
ou G
para indicar Kilobytes, Megabytes ou Gigabytes, respectivamente. Note que o comando gjournal
não permitirá que você crie journals de tamanhos pequenos e inadequados.
Por exemplo, para criar um journal de 2 GB, você poderia usar o seguinte comando:
#
gjournal label -s 2G ad1s1d
Você pode criar um sistema de arquivos em sua nova partição e ativar o journaling usando a opção -J
:
#
newfs -J /dev/ad1s1d.journal
Se você não deseja carregar o geom_journal
como um módulo, você pode construir suas funções diretamente em seu kernel. Edite seu arquivo de configuração do kernel personalizado e verifique se ele inclui estas duas linhas:
options UFS_GJOURNAL # Note: This is already in GENERIC options GEOM_JOURNAL # You will have to add this one
Recompile e reinstale seu kernel seguindo as instruções relevantes no Handbook do FreeBSD.
Não se esqueça de remover a entrada relevante “load” do /boot/loader.conf
se você a usou anteriormente.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.