FreeBSD: "chroot" num pool de armazenamento em ZFS
Recentemente um dos servidores FreeBSD aqui onde trabalho apresentou problemas devido a uma configuração incorreta e não conseguia finalizar o processo de boot, o que impossibilitava o acesso aos seus arquivos e consequentemente ao gerenciamento do mesmo.
Esta máquina está configurada com um pool de armazenamento em ZFS com 4 HD's de 3TB, e roda o Samba para compartilhamento de arquivos. Após algumas pesquisas na internet (muitas na verdade!), consegui fazer uma espécie de "chroot" no pool ZFS e reverter a configuração, devolvendo a "vida" :D a esse servidor. Deixando de enrolação, vamos ao passo-a-passo que foi realizado.
1 - Dê boot na máquina via o CD/DVD de instalação do FreeBSD
2 - Ao final do processo de boot, escolha a opção "Live CD"
3 - Descubra o nome do pool que será importado (geralmente é zroot, mas... :) ):
# zpool import
4 - Crie um diretório que servirá como ponto de montagem para o pool a ser importado:
# mkdir /tmp/pool
5 - Importe o pool para o diretório recém-criado:
# zpool import -fR /tmp/pool nome_do_pool
6 - Crie um diretório que servirá como ponto de montagem para a raiz do pool ZFS:
# mkdir /tmp/chroot
7 - Monte a partição raiz do pool importado:
# mount -t zfs nome_do_pool/ROOT/default /tmp/chroot
Feito o passo-a-passo acima corretamente, seus arquivos que antes estavam inacessíveis agora estarão acessíveis no diretório "/tmp/chroot".
Agora basta fazer as alterações necessárias nos arquivos que estão com erros.
Ah, não esqueça que ao finalizar toda e qualquer alteração, você deve exportar o pool modificado.
# zpool export nome_do_pool
Finalmente desmonte o ponto de montagem "/tmp/chroot":