Dockerfile em dois estágios (compila guara-cli e copia o binário para debian-slim com smartmontools). Serve para hospedeiros Linux, servidores sem desktop e arquivos de imagem forense. A interface gráfica fica de fora de propósito: o guara ui só aceita 127.0.0.1. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RRZm8uTVN3WLTwcbrDQAUM
2.5 KiB
2.5 KiB
Usando o Guará com Docker
English · Português
A imagem traz o terminal guara e o smartctl. Ela serve em três casos:
- Servidor ou NAS Linux sem desktop, com o disco danificado conectado.
- Arquivos de imagem forense (
.img, E01, AFF4) em qualquer sistema com Docker, porque não precisa acessar dispositivo. - Ambiente reproduzível para scripts e CI.
Não é o caminho recomendado para a maioria das pessoas. No desktop, use os pacotes de Releases.
Limites
- Dispositivos brutos só funcionam em hospedeiros Linux. No Windows e no macOS o Docker roda dentro de uma máquina virtual e não repassa discos físicos. Use um arquivo de imagem.
- A interface gráfica não é servida pelo container. O
guara uiescuta só em127.0.0.1e só aceita esseHost, de propósito; abrir isso para fora enfraqueceria a proteção, então não faz parte da imagem. - Arquivos gravados numa pasta montada pertencem ao root, a menos que você passe
--user(possível ao trabalhar com arquivos de imagem).
Construir
docker build -t guara .
Arquivos de imagem (qualquer sistema)
Monte a pasta da imagem somente para leitura e outra pasta para os resultados:
docker run --rm \
-v "$PWD/imagens:/imagens:ro" \
-v "$PWD/saida:/saida" \
--user "$(id -u):$(id -g)" \
guara scan /imagens/disco.img --session /saida/s.json --list
docker run --rm \
-v "$PWD/imagens:/imagens:ro" -v "$PWD/saida:/saida" \
--user "$(id -u):$(id -g)" \
guara recover /saida/s.json /saida/recuperados
Disco físico (hospedeiro Linux)
Passe o dispositivo somente para leitura com a opção :r. O Docker passa a bloquear escritas nele no nível do kernel, além de o Guará nunca gravar na origem:
docker run --rm \
--device=/dev/sdb:/dev/sdb:r \
-v /mnt/outro-disco/saida:/saida \
guara scan /dev/sdb --session /saida/s.json --list
- O destino precisa estar em outro disco que não seja o
/dev/sdb. - Ler dispositivo bruto exige root dentro do container, então não use
--useraqui. - Para ler o SMART, em alguns sistemas
--devicenão basta; o complemento usual é--cap-add=SYS_RAWIO. - Evite
--privileged: ele dá ao container acesso a todos os dispositivos.
Outros comandos
Tudo da referência do terminal funciona do mesmo jeito, por exemplo:
docker run --rm --device=/dev/sdb:/dev/sdb:r guara devices
docker run --rm --device=/dev/sdb:/dev/sdb:r guara health /dev/sdb