# **`Documentação FOG PROJECT em LAN`**
*Documentação Técnica*
---
## **Identificação**
| **Autor** | `Felipe Antonio Lima Mota` |
|--------------------|---------------------|
| **Data** | `01/06/2025` |
| **Versão** | `1.0.0` |
| **Repositório** | [GitHub](https://github.com/flfelipelima) |
| **Créditos** | [FOGProject](https://github.com/FOGProject/fogproject) |
---
## **Sobre o Projeto**
📌 **Objetivo**:
Este projeto documenta a implementação completa do FOG Project em uma rede local (LAN) isolada. O FOG Project é uma solução gratuita e open source utilizada para clonagem, implantação e gerenciamento de sistemas operacionais via rede, ideal para ambientes com múltiplos computadores, como laboratórios, escolas e departamentos de TI. A configuração proposta neste guia visa otimizar desempenho, garantir padronização das máquinas e permitir a reinstalação rápida de sistemas, mesmo sem acesso à internet externa, utilizando Ubuntu 22.04 LTS e múltiplos discos para organização e armazenamento de imagens.
🔧 **Tecnologias**:
- FOG Project
- Ubuntu Server 22.04 LTS
- ISC DHCP Server
- NFS/TFTP
---
### **Como usar este documento**
- Seções numeradas para referência rápida.
- Imagens e tabelas ilustram configurações críticas.
- Problemas e soluções destacados em `▶️ Destaque`.
---
> ✒️ **Nota do Autor**:
> *"Documentação criada para fins de replicação e manutenção do ambiente. Contato: `mota.felipelima@gmail.com`"*
---
# 📑 Sumário
## 1. [FOG Project - Apresentação](#1-fog-project---apresentação)
- [1.1 O que é o FOG Project?](#11-o-que-é-o-fog-project)
- [1.2 Como funciona?](#12-como-funciona)
- [1.3 Ambiente e Premissas](#13-ambiente-e-premissas)
- [1.4 Servidor e Sistema Operacional](#14-servidor-e-sistema-operacional)
- [1.5 Interfaces de Rede](#15-interfaces-de-rede)
- [1.6 Estrutura da Rede Isolada](#16-estrutura-da-rede-isolada)
- [1.7 Interface de Administração Web](#17-interface-de-administração-web)
## 2. [Preparação](#2-preparação)
- [2.1 Criação do Pendrive Bootável](#21-criação-do-pendrive-bootável)
- [2.2 Instalação do Ubuntu](#22-instalação-do-ubuntu)
- [2.2.1 Pré-instalação](#221-pré-instalação)
- [2.2.2 Processo de Instalação](#222-processo-de-instalação)
- [Disco 1 – Sistema Operacional](#disco-1--sistema-operacional-devnvme0n1)
- [Disco 2 – Imagens](#disco-2--armazenamento-principal-de-imagens-devsda)
- [Disco 3 – Imagens adicionais](#disco-3--armazenamento-secundário-de-imagens-devsdb)
## 3. [Atualizar o Sistema Operacional](#3-atualizar-o-sistema-operacional)
## 4. [Instalação do FOG](#4-instalação-do-fog)
- [4.1 Início da Instalação](#41-início-da-instalação)
- [4.2 Tabela: Respostas](#42-tabela-respostas-à-instalação-do-fog-project-lan-isolada)
- [4.3 Continuação das Perguntas](#43-continuação-das-perguntas-da-instalação)
- [4.4 Observação – Permission Denied](#44-observação---permission-denied)
- [4.5 Pós-instalação do FOG](#45-pós-instalação-do-fog)
- [4.6 Configuração do Netplan](#46-configuração-do-netplan)
## 5. [Ajuste do Arquivo .fogsettings](#5-ajuste-do-arquivo-fogsettings)
- [5.1 Atualização dos IPs](#51-configuração-do-fogsettings)
- [5.2 Configuração do TFTP](#52-configuração-do-tftp)
- [5.3.1 O que é TFTP](#531-o-que-é-tftp)
- [5.3.2 Como funciona o TFTP?](#532-como-funciona-o-tftp)
- [5.3.3 Ajuste Manual no TFTP](#533-ajuste-manual-no-tftp)
## 6. [Configuração do ISC DHCP Server](#6-configuração-do-isc-dhcp-server)
- [6.1 O que é o ISC DHCP Server?](#61-o-que-é-o-isc-dhcp-server)
- [6.2 O que o DHCP faz?](#62-o-que-o-dhcp-faz)
- [6.3 Configuração do Serviço DHCP](#63-configuração-do-isc-dhcp-server)
## 7. [Reiniciar Serviços Essenciais](#7-reiniciar-serviços)
## 8. [Gerenciamento de Armazenamento](#8-gerenciamento-de-armazenamento-nodes-hds-e-disco-principal)
- [8.1 O que são Storage Nodes](#81-o-que-são-storage-nodes-no-fog)
- [8.2 Como adicionar HDs](#82-como-adicionar-hds-a-um-node)
- [8.3 Configuração do Node Principal](#83-configuração-do-node-principal-e-disco-2-no-fog)
- [8.4 Configuração do Disco 2](#84-configurar-o-disco-2-armazenamento-adicional)
## 9. [Problemas e Soluções no FOG Project](#9-problemas-e-soluções-do-fog-project)
- [9.1 Erro de Certificado HTTPS](#91-erro-de-certificado-https)
- [9.2 Erro “Permission Denied” – NFS](#92-erro-permission-denied-e-falha-de-montagem-no-fog)
- [9.2.1 Verificar /etc/exports](#921-verifique-o-arquivo-de-exportação-nfs)
- [9.2.2 Permissões da pasta](#922-verifique-as-permissões-da-pasta-images2)
- [9.2.3 Verificar o NFS](#923-verifique-se-o-nfs-está-rodando)
- [9.2.4 Teste o acesso NFS](#924-teste-o-acesso-nfs-de-outra-máquina)
- [9.2.5 Subpastas obrigatórias](#925-subpastas-obrigatórias-ausentes)
- [9.2.6 Configuração no painel](#926-configuração-incorreta-no-painel-do-fog)
- [9.2.7 Checklist Final](#927-checklist-final)
- [9.2.8 Reinicie os serviços](#928-reinicie-os-serviços)
- [9.3 Porta do Switch Limitada a 100 Mbps](#93-por-que-uma-porta-do-switch-fica-limitada-a-100-mbps)
- [9.3.1 Identificação do problema](#931-problema)
- [9.3.2 Causas comuns](#932-por-que-isso-acontece)
- [9.3.3 Cabos inadequados](#933-cabo-de-rede-inadequado-ou-danificado)
- [9.3.4 Dispositivos limitados](#934-dispositivo-conectado-limitado)
- [9.3.5 Problemas no conector RJ45](#935-problemas-nos-pinos-do-conector-rj45)
- [9.3.6 Configuração manual](#936-configuração-manual-no-switch-ou-host)
- [9.3.7 Como testar e corrigir](#937-como-testar-e-corrigir)
## 1. FOG Project - Apresentação
### 1.1 O que é o FOG Project?
O FOG Project é uma ferramenta gratuita e de código aberto usada para a **clonagem e gerenciamento de sistemas operacionais** em computadores via rede. Ele é amplamente utilizado em ambientes que possuem muitos computadores, como escolas, universidades, laboratórios de informática e empresas, onde é necessário instalar ou restaurar sistemas operacionais de forma rápida e padronizada.

***Fig. 1** Dashboard - Tela incial do Fog Project*
### 1.2 Como funciona?
O FOG opera com base em um modelo **cliente-servidor**. Em um cenário típico, você tem:
- Um servidor FOG instalado em uma máquina com Linux armazena as imagens de sistema operacional e controla o processo de clonagem.
- Vários computadores (clientes) irão receber as imagens.
- Um switch de rede conecta fisicamente todos os dispositivos na mesma rede local.

***Fig. 2** Fluxograma - Configuração de Rede com Servidor FOG*
Os computadores clientes são configurados para fazer boot via PXE (um recurso da BIOS/UEFI que permite iniciar o sistema pela rede). Quando esses clientes são ligados, eles se conectam ao servidor FOG, carregam um sistema leve via rede, e executam as tarefas designadas, como capturar uma imagem do disco ou restaurar uma imagem previamente criada.

***Fig. 3** Gráfico - Ciclo de Boot PXE*
**Vantagens**
* **Gratuito e open source:** sem custos de licença.
* **Economia de tempo:** ideal para restaurar dezenas ou centenas de PCs rapidamente.
* **Padronização:** garante que todos os computadores usem a mesma configuração.
* **Controle centralizado:** tudo é feito a partir de um painel acessível pelo navegador.
### 1.3. Ambiente e Premissas
Este documento tem por **objetivo** descrever a configuração de um servidor FOG Project operando em uma **rede local (LAN)** **isolada**, destinada à captura e implantação de imagens de sistemas operacionais em estações de trabalho. A solução é especialmente útil em ambientes sem acesso à internet, como laboratórios acadêmicos, oficinas de manutenção ou setores de TI com restrições de conectividade externa.
- **Servidor FOG**: Ubuntu Desktop 22.04 LTS
- **Interface de rede principal**: `enp0s`, IP fixo `192.168.0.100`
- **Interface Wi-Fi**: `wlp0s` (usada só durante instalação)
- **Rede isolada (LAN)**: Faixa `192.168.0.0/24`, sem gateway
- **Faixa DHCP**: `192.168.0.10 → 192.168.0.254`
- **WebUI**: http://192.168.0.100/fog/management
### 1.4 Servidor e Sistema Operacional
O servidor utilizado na implementação é o **Ubuntu Desktop 22.04 LTS**, o qual oferece estabilidade, suporte e compatibilidade. O ambiente gráfico foi mantido para facilitar operações administrativas locais, como testes de rede, monitoramento de discos e execução de tarefas via terminal.
### 1.5 Interfaces de Rede
A máquina em questão possui duas interfaces de rede, sendo elas:
**Interface cabeada principal:** `enp0s`, configurada com endereço **IP fixo** `192.168.0.100`. Esta interface é responsável pela comunicação com os dispositivos clientes na LAN isolada e deve ser **priorizada** na configuração dos serviços DHCP e TFTP.
**Interface sem fio (Wi-Fi):** `wlp0s`, utilizada exclusivamente durante a instalação inicial do sistema e do FOG Project, com o objetivo de baixar pacotes e atualizações. Após a conclusão da instalação, esta interface foi **desativada** para evitar conflitos de roteamento ou atribuição de IPs via DHCP externo.
### 1.6 Estrutura da Rede Isolada
A rede LAN foi projetada para operar de forma autônoma e sem dependência de conexão com a internet, seguindo a faixa de endereçamento `192.168.0.0/24`. O servidor FOG desempenha múltiplas funções, incluindo:
➡️ Servidor **DHCP** (atribuindo IPs na faixa de `192.168.0.100` a `192.168.0.254`);
➡️ Servidor **TFTP** (responsável pelo envio de arquivos PXE);
➡️ Servidor **NFS** (armazenamento e compartilhamento de imagens).
### 1.7 Interface de Administração Web
Após a instalação e inicialização dos serviços, o gerenciamento do FOG Server é realizado através da interface WebUI, acessível pelo seguinte endereço:
```ba=
http://192.168.0.100/fog/management
```
Essa interface permite o controle completo dos hosts cadastrados, imagens de sistema, tarefas de captura e implantação, além da configuração de usuários, grupos e plugins adicionais.
---
## **2 Preparação**
### 2.1 Criação do Pendrive
**Requisitos**
➡️ Um pendrive com mínimo 8 GB
➡️ Imagem ISO do Ubuntu 22.04.5 LTS: https://old-releases.ubuntu.com/releases/22.04.4/ubuntu-22.04.4-desktop-amd64.iso
➡️ Rufus: https://rufus.ie/pt_BR/
**Criação do Pendrive Bootável (usando o Rufus)**
1. Insira o pendrive.
1. Abra o Rufus
1. Em “Dispositivo”, selecione seu pendrive.
1. Em “Selecionar imagem”, escolha a ISO do Ubuntu 22.04.5.
1. Em “Esquema de partição”, escolha:
1. MBR para BIOS/Legacy.
1. GPT para UEFI.
1. Sistema de arquivos: FAT32 (padrão).
1. Clique em “Iniciar”.
1. Aceite a opção para gravar no modo ISO (se solicitado).
1. Aguarde a conclusão e ejete o pendrive com segurança.
### **2.2 Instalação do Ubuntu**
Neste projeto vamos instalar a versão do Ubuntu 22.04.5 LTS, utilizamos 2 HDs de 1TB (para as imagens) cada e 1 NVME de 512gb (para o sistema), o foco é configurar o particionamento dos discos de forma adequada para desempenho e organização, especialmente considerando que o FOG trabalha com imagens de disco e pode exigir bastante espaço.
### **2.2.1 Pré instalação do Ubuntu**
**Modo BIOS/UEFI:** defina no BIOS para UEFI.
**Boot pelo pendrive:** insira o pendrive com o Ubuntu 22.04.5 LTS e inicie a instalação.
### **2.2.2 Processo de Instalação do Ubuntu 22.04.4**
**Etapa 1 - Escolher idioma**
> Selecione **Português (Brasil)**.
> Clique em **Instalar o Ubuntu**.

**Etapa 2 - Layout do teclado**
> Selecione o seu layout (ex: **Português (Brasil - ABNT2)**).
> Clique em **Continuar**.

**Etapa 3 - Tipo de instalação**
Escolha uma das opções:
- **Instalação normal** (com navegador, apps de escritório, etc).
- **Instalação mínima** (mais leve, apenas o básico).
- Clique em **Continuar**.

**Etapa 4 - Particionamento**
- **Escolha a opção avançada**
- Clique em Continuar

**Etapa 5 - Confirmar alterações**
> Confirme a escrita no disco (partições, formatação).
> Clique em **Continuar**.
#### **Configuração do Disco 1 (`/dev/nvme0n1`) – Sistema Operacional**
Se o seu projeto contar com 2 TB de armazenamento adicional e um NVMe de 512 GB, utilize a tabela abaixo como referência de particionamento. Caso contrário, adapte os valores conforme a sua infraestrutura e necessidade.
Selecione o disco **NVMe de 512 GB** (identificado como `/dev/nvme0n1`). Ele será usado exclusivamente para o **sistema Ubuntu e o FOG Server**.
1. Clique em **“Nova Tabela de Partição”** (isso apagará todo o conteúdo do disco).
2. Com o espaço livre, crie as seguintes partições:

> 💡 *Esta tabela assume que o sistema está sendo instalado em modo UEFI. Caso utilize BIOS/Legacy, **não crie a partição EFI** e inicie direto com a raiz (`/`).*
| Tamanho | Tipo | Sistema | Ponto de Montagem | Observações |
|---------------|----------|---------|-------------------|--------------------------------------|
| 512 MB | Primária | FAT32 | *(sem ponto)* | Tipo EFI (`/boot/efi`) – obrigatório no UEFI |
| 50 GB | Lógica | ext4 | `/` | Raiz do sistema |
| 8 GB | Lógica | swap | *(sem ponto)* | Área de troca (Swap) |
| 100 GB | Lógica | ext4 | `/var` | Ideal para cache, logs e bancos de dados |
| Restante (~350 GB) | Lógica | ext4 | *(não atribuído)* | Reservado para expansão futura ou backups |
> ⚠️ **Atenção – Partição EFI ausente**
>
> Durante a instalação, pode surgir a seguinte mensagem:
>
> ```
> Go back to the menu and resume partitioning?
>
> No EFI System Partition was found.
> This system will likely not be able to boot successfully, and the installation process may fail.
>
> Please go back and add an EFI System Partition, or continue at your own risk.
> ```

>
> Isso indica que **não foi criada uma partição EFI**, essencial para sistemas que utilizam **UEFI** (como a maioria dos computadores atuais).
>
> ✅ **Solução rápida:**
> 1. Clique em **Voltar**.
> 2. Localize a partição de **512 MB FAT32** já criada.
> 3. Edite essa partição e altere o tipo para: `Sistema EFI`.
> 4. Confirme, salve e continue a instalação normalmente.
>
> 💡 *Sem essa configuração, o sistema pode não inicializar após a instalação.*
---
#### **Configuração do Disco 2 (`/dev/sda`) – Armazenamento Principal de Imagens**
Esse disco será utilizado como **node principal** do FOG (pasta `/images`).
1. Selecione o disco `/dev/sda`.
2. Crie uma nova tabela de partição.
3. Depois, crie a seguinte partição:
| Tamanho | Tipo | Sistema | Ponto de Montagem |
|----------|----------|---------|-------------------|
| 1000 GB | Primária | ext4 | `/images` |
---
#### **Configuração do Disco 3 (`/dev/sdb`) – Armazenamento Secundário de Imagens**
Esse disco funcionará como armazenamento adicional para o FOG, montado em `/images2`.
1. Selecione o disco `/dev/sdb`.
2. Crie uma nova tabela de partição.
3. Crie a partição abaixo:
| Tamanho | Tipo | Sistema | Ponto de Montagem |
|----------|----------|---------|-------------------|
| 1000 GB | Primária | ext4 | `/images2` |
---
### 🧠 Observações Finais
- O sistema foi estruturado de forma a **isolar o SO e os dados**, otimizando desempenho e segurança.
- Os pontos de montagem `/images` e `/images2` serão configurados posteriormente como **Storage Nodes** no painel do FOG.
- A separação da pasta `/var` previne que o sistema fique sem espaço por logs ou bancos de dados em uso contínuo.
**Etapa 6 - Fuso horário**

> Escolha sua cidade (ex: **São Paulo**).
> Clique em **Continuar**.
**Etapa 7 - Criar usuário**

> **Seu nome**
> **Nome do computador**
> **Nome de usuário**
> **Senha** (digite duas vezes)
Clique em **Continuar**.
**Etapa 8 - Aguardar instalação**

> O Ubuntu será instalado.
> Aguarde o processo (pode levar de **5 a 15 minutos**).
**Etapa 9 - Finalizar**
> Após a instalação, clique em **Reiniciar agora**.
> **Remova o pendrive** quando for solicitado.
## **3 Atualizar o Sistema Operacional**
É fundamental manter o SO atualizado para garantir a segurança, estabilidade e desempenho do servidor onde o FOG será instalado. Atualizações incluem correções de vulnerabilidades, melhorias de desempenho, suporte a novos hardwares e softwares, além de ajustes que evitam conflitos e falhas durante a execução de serviços críticos.
Para atualizar o sistema no Ubuntu, utilizamos o seguinte comando:
```bash
sudo apt update && sudo apt upgrade -y
```

***Fig. 4** Instalação das atualizações*
## 4. Instalação do FOG
### 4.1 Início da Instalação
Você estará pronto para instalar o FOG com:
**Etapa 1 - Instalação do GIT:**
```bash=
sudo apt install -y git
```
**Etapa 2 - Executar o instalador do FOG:**
```bash=
git clone https://github.com/FOGProject/fogproject.git # baixar o repositório
cd fogproject/bin # entrar no diretório
```
```bash=
sudo ./installfog.sh # instalação do fog
```
> Durante a instalação, ele detectará a pasta /images. Se quiser usar a outra unidade também, poderá configurar posteriormente.

***Fig. 5** Instalação - Tela inicial de instalação do FOG*

***Fig. 6** Instalação - Parte 1*

***Fig. 7** Instalação - Parte 2*

***Fig. 8** Instalação - Parte 3*

***Fig. 9** Instalação - Parte 4*

***Fig. 10** Instalação - Parte 5*
### 4.2 Tabela: Respostas à Instalação do FOG Project (LAN Isolada)
| Pergunta | Resposta | Observação Técnica |
|------------------------------------------------------------------------------------------|------------------------------------|----------------------------------------------------------------------|
| What type of installation would you like to do? | `2) Normal Server` | Instalação padrão para PXE + DHCP + TFTP |
| Would you like to change the default network interface? [Y/N] | `N` | Interface `enp0s31f6`* |
| Would you like to setup a router address for the DHCP server? [Y/N] | `Y` | Mesmo sem acesso externo, define-se o IP do próprio FOG como gateway |
| What is the IP address to be used for the router on the DHCP server? | `192.168.0.100` | IP fixo do servidor FOG |
| Would you like DHCP to handle DNS? [Y/N] | `Y` | Para ambientes isolados, o FOG atua também como DNS local (mock) |
| What DNS address should DHCP allow? | `192.168.0.100` | O próprio servidor como DNS |
| Would you like to enable HTTPS on your FOG server? [y/N] | recomendo`Y` | Não necessário em rede interna isolada |
| Are you sure you wish to continue? [Y/N] | `Y` | Confirmação final para iniciar a instalação |
### 4.3 Continuação das Perguntas da Instalação
| Pergunta | Resposta | Observação Técnica |
|------------------------------------------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------|
| Would you like to install the additional language packs? [Y/n] | N | Não necessário em ambientes restritos ou sem conexão com a internet |
| Would you like to enable secure HTTPS on your FOG server? [y/N] | Y | Ativação do suporte HTTPS. Exige configuração de certificado. |
| Which hostname would you like to use? Currently is: fog-Precision-3660 | - | Nome padrão do host (pode ser personalizado) |
| Would you like to change it? If you are not sure, select No. [y/N] | N | Mantido o hostname padrão durante a instalação |
| Are you ok with sending this information? [Y/n] | N | Recusado o envio de informações estatísticas (nome e versão do SO e versão do FOG) |
Observação sobre: **Would you like to enable HTTPS on your FOG server? [y/N] → N**
Ao optar por **"N" (não ativar HTTPS)** durante a instalação do FOG, o sistema é configurado para operar exclusivamente por meio do protocolo HTTP. Essa é uma prática aceitável em redes locais isoladas, onde o tráfego é restrito e não há exposição à internet. Contudo, é importante estar ciente de que **alguns navegadores podem exibir alertas de segurança**, e determinados recursos da interface Web podem ser limitados ou bloqueados.
Além disso, é comum ocorrerem **erros de inicialização PXE** quando o ambiente tenta utilizar **HTTPS sem o devido suporte no servidor**. Um dos erros mais recorrentes nesse contexto é:
### 4.4 Observação - Permission Denied
**Permission denied (0216ea8f) — iPXE**
Esse erro geralmente é causado quando o iPXE tenta carregar arquivos via `https://` em um servidor que **não possui SSL configurado corretamente**, ou está utilizando um **certificado inválido ou inexistente**.
Durante a primeira instalação do FOG, foi selecionada a opção de uso com **HTTP**. No entanto, foi necessário **reconfigurar manualmente** o servidor para assegurar que todos os serviços (Apache, TFTP, DHCP e iPXE) estivessem devidamente alinhados para trabalhar com HTTP, eliminando chamadas incorretas ao protocolo HTTPS e, consequentemente, **resolvendo erros de boot via rede**.
> 💡 **Solução completa e alternativa com HTTPS:**
> Consulte o tópico **6.1 – Ativando HTTPS Manualmente** ao final desta documentação, caso o uso de HTTPS se torne necessário futuramente.
## 4.5 Pós Instalação do FOG
### 4.6 Configuração do Netplan
### 4.6.1 O que é Netplan
O Netplan é o gerenciador de rede padrão em versões modernas do Ubuntu (17.10+). Ele substitui o `/etc/network/interfaces` e funciona em conjunto com o `systemd-networkd` ou `NetworkManager`.
`Netplan + systemd-networkd` → usado em servidores.
`Netplan + NetworkManager` → usado em desktops com interface gráfica.
### 4.6.2 Netplan - Atribuição de IP Fixo no Ubuntu
Atribuir um IP fixo no Ubuntu usando o Netplan é essencial para servidores como o FOG, onde é necessário que o endereço IP permaneça o mesmo após reinicializações, especialmente para DHCP, PXE e NFS funcionarem corretamente.
**Etapa 1 - Identificar nome da interface**
```bash=
# interface → Ex.: enp0s
ip addr show
```
**Etapa 2 - Arquivo de configuração .yaml**
```bash=
sudo nano /etc/netplan/01-network-manager-all.yaml
```
**Etapa 3 - Substitua o conteúdo e ajuste o nome da interface:**
```bash=
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s:
dhcp4: no
addresses:
- 192.168.0.100/24
routes:
- to: 0.0.0.0/0
via: 192.168.0.100
nameservers:
addresses: [192.168.0.100]
```
**Etapa 4 - Permissões do arquivo**
```bash=
# O Netplan exige que o YAML não seja legível por outros usuários
sudo chmod 600 /etc/netplan/01-network-manager-all.yaml
# Aplicar as mudanças
sudo netplan apply
# Desativar Wi-Fi (opcional, após instalação)
# Como a rede é isolada, desligue a interface wireless
nmcli radio wifi off
```
> Ao final desse passo, o servidor passou a ter IP fixo **192.168.0.100** na interface **enp0s31f6** e nenhuma outra rota externa (internet).
---
## 5. Ajuste do Arquivo .fogsettings
O arquivo `/opt/fog/.fogsettings` armazena as configurações básicas do
FOG (IPs, faixa de DHCP, caminho de imagens etc). É necessário atualizar
para refletir a nova rede 192.168.0.0/24:
### 5.1 Configuração do .fogsettings
```bash=
sudo nano /opt/fog/.fogsettings
```
### 5.2 Substuição de IPs anteriores (10.14.103.x) pelos novos (192.168.0.x)
```bash=
# Antes:
ipaddress='10.14.103.57' startrange='10.14.103.10'
endrange='10.14.103.254'
# Depois:
ipaddress='192.168.0.100'
startrange='192.168.0.10' endrange='192.168.0.254'
```
### 5.3 Configuração do TFTP
### 5.3.1 O que é TFTP
**TFTP (Trivial File Transfer Protocol)** é um protocolo de transferência de arquivos simples, leve e sem autenticação, geralmente usado para:
➡️ Boot pela rede (PXE boot)
➡️ Enviar/receber arquivos entre máquinas locais
➡️ Configurar dispositivos de rede (switches, roteadores etc.)
➡️ Clonagem de sistemas via FOG ou Clonezilla
### 5.3.2 Como funciona o TFTP?
➡️ Usa UDP na porta 69 (diferente do FTP que usa TCP).
➡️ Não tem login nem senha.
➡️ Só permite operações básicas de leitura e gravação.
➡️ Transferência direta, ideal para arquivos pequenos e rápidos (como bootloaders, kernels PXE).
### 5.3.3 Ajuste Manual no TFTP
Configuração do arquivo de boot do **iPXE**:
```bash=
sudo nano /tftpboot/default.ipxe
```
Certifique-se de que a linha que define o IP do FOG (set fog-ip) aponte para 192.168.0.100.
```bash=
# Exemplo:
ipxe #!ipxe set fog-ip 192.168.0.100
kernel http:// 192.168.0.100/fog/service/ipxe/boot.php boot
```
Se ainda houvesse algum resquício apontando para o IP antigo (10.14.103.57), substituímos manualmente por 192.168.0.100.
---
### 6 Configuração do ISC DHCP Server
### 6.1 O que é o ISC DHCP Server?
**ISC DHCP Server** é um servidor DHCP de código aberto, criado pela Internet Systems Consortium (ISC). Ele é responsável por:
➡️ Distribuir IPs automaticamente para dispositivos em uma rede (clientes).
➡️ Fornecer outras configurações de rede, como gateway, DNS e arquivos de boot PXE.
### 6.2 O que o DHCP faz?
Em uma rede de computadores, a comunicação eficiente entre dispositivos depende de uma configuração de rede correta, e um dos principais responsáveis por essa tarefa é o **DHCP**, sigla para Dynamic Host Configuration Protocol. Trata-se de um protocolo fundamental que automatiza a atribuição de parâmetros de rede, como endereços IP, máscaras de sub-rede, gateways e servidores DNS. Sem o DHCP, cada dispositivo precisaria ser configurado manualmente, o que seria inviável em ambientes maiores ou dinâmicos.
Quando um dispositivo, como um notebook ou PC, é conectado a uma rede local, ele ainda não possui um endereço IP definido. Nesse momento, ele emite um broadcast solicitando as informações necessárias para se comunicar com os demais dispositivos da rede. Essa solicitação é recebida por um servidor DHCP, cuja função é fornecer automaticamente os dados de configuração de rede.
O servidor, então, responde atribuindo ao cliente um endereço IP disponível dentro de uma faixa predefinida (conhecida como range), bem como a **máscara de sub-rede**, o **gateway padrão** (usado para comunicação externa) e os **servidores DNS**, que permitem resolver nomes de domínio em endereços IP.
Em redes que utilizam boot **via rede (PXE)**, o DHCP ainda tem um papel adicional: ele informa o nome do arquivo de inicialização PXE, que será baixado pelo cliente através de **TFTP (Trivial File Transfer Protocol)**. Essa funcionalidade é essencial em ambientes de clonagem de sistemas, como o que ocorre com o FOG Project, onde esta sequência automatizada permite iniciar um sistema operacional diretamente pela rede, sem depender de mídias físicas.
Portanto, o DHCP não apenas simplifica a administração da rede, como também viabiliza soluções de automação e manutenção em larga escala, provando-se indispensável em qualquer infraestrutura moderna.
### 6.3 Configuração do ISC DHCP Server
Definir a interface na qual o DHCP deve atuar
```bash=
sudo nano /etc/default/isc-dhcp-server
```
Altere a linha: `INTERFACESv4="enp0s31f6"`
Conferir o bloco de sub-rede em `/etc/dhcp/dhcpd.conf`
```bash=
subnet 192.168.0.0 netmask 255.255.255.0{
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.0.100 192.168.0.200;
default-lease-time 21600;
max-lease-time 43200;
option routers 192.168.0.100;
option domain-name-servers 192.168.0.100;
next-server 192.168.0.100;
}
```
---
## 7 Reiniciar serviços
> `sudo systemctl restart isc-dhcp-server`
> `sudo systemctl restart apache2`
> `sudo systemctl restart mysql`
> `sudo systemctl restart php8.*-fpm`
> `sudo systemctl restart tftpd-hpa`
```bash=
# Oneline
sudo systemctl restart isc-dhcp-server sudo systemctl
restart tftpd-hpa sudo systemctl restart apache2 sudo
systemctl restart mysql
```
---
## 8. Gerenciamento de Armazenamento: Nodes, HDs e Disco Principal
### **8.1 O que são Storage Nodes no FOG?**
No FOG Project, um Storage Node é qualquer máquina (geralmente um servidor ou computador na mesma rede) que pode armazenar imagens de sistemas operacionais capturadas ou distribuídas.
O node principal **(DefaultMember)** é aquele que centraliza a maioria das operações, como captura e deploy.
Nodes adicionais ajudam a balancear a carga de rede e armazenamento em ambientes maiores (por exemplo, laboratórios com muitas máquinas ou múltiplos blocos).
### **8.2 Como adicionar HDs a um Node**
Caso o seu servidor FOG tenha mais de um HD físico (ou partições extras), é possível usá-los para expandir a capacidade de armazenamento. Passo a passo de como configurar os HDs usando o GUI do Ubuntu (recomendo):
> **Configurações do Servidor:**
> 2 HDs de 1TB cada (imagens) (ex: /dev/sda e /dev/sdb);
> 1 Nvme de 512GB (sistema) (Ubuntu Desktop 22.04 LTS)
**Etapas de instalação:**
1. Inicie a instalação do Ubuntu normalmente
2. Escolha a opção de Instalação Avançada
3. Identifique os discos `/dev/sda `e `/dev/sdb`
### 8.3 Configuração do Node Principal e Disco 2 no FOG
Após o acesso à interface web do FOG, seguimos com a configuração inicial dos nós de armazenamento.
Na tela principal do FOG, é possível notar que o node principal ainda não está configurado. Precisamos realizar essa configuração para vinculá-lo corretamente ao nosso servidor de arquivos.
Em seguida, também será necessário configurar o segundo disco (Disco 2), geralmente disponível no mesmo menu onde definimos as opções do node principal. Esse segundo disco poderá ser utilizado como armazenamento adicional para imagens do sistema, otimizando a estrutura de repositório do FOG.
**Etapa 1 – Verificar o Node Principal**
Na tela principal do FOG, observe que o **node de armazenamento principal** ainda não está configurado corretamente.
> Isso significa que o FOG ainda **não reconhece o diretório padrão de armazenamento de imagens**.
Para configurar:
1. Acesse o menu: `FOG Configuration` → `Storage Management`
2. Selecione o node listado (geralmente com o nome do servidor).
4. Edite os campos principais:
- **Storage Node Name:** nome identificador do node
- **Storage Node IP:** IP do servidor FOG (ex: `192.168.0.100`)
- **Image Location:** `/images`
- **Interface:** `eth0` ou a interface de rede configurada
- Marque a opção: `Is Master Node`
4. Clique em **Update** para salvar.
### 8.4 Configurar o Disco 2 (armazenamento adicional)
Como o segundo disco já foi **particionado e montado** durante a instalação do sistema, não é necessário utilizar comandos no terminal.
Para integrá-lo ao FOG:
1. Acesse novamente o menu: `FOG Configuration` → `Storage Management`
2. Clique em **Add Storage Node** para adicionar um novo node.
4. Preencha as informações:
- **Name:** `images2` ou outro identificador
- **IP Address:** o IP do servidor
- **Image Location:** `/images2` (caminho usado durante a instalação)
- Desmarque a opção `Is Master Node` (se for apenas armazenamento adicional)
4. Clique em **Add Storage Node** para finalizar.
Com isso, o servidor FOG estará utilizando:
- O node principal (`/images`) para armazenar e gerenciar as imagens.
- Um segundo volume (`/images2`) como espaço extra de armazenamento.
---
## 9. Problemas e Soluções do FOG Project
### 9.1 Erro de Certificado HTTPS
Durante o boot via PXE, a seguinte mensagem de erro era exibida:
```bash=
Could not boot: Permission denied (https://ipxe.org/0216ea8f)
Chainloading failed
```
Esse é um problema causado pelo uso de HTTPS sem suporte adequado, a principal causa desse erro no FOG é tentar usar https:// em um ambiente onde: o servidor FOG não tem SSL configurado (certificado inválido ou inexistente).
> Na primeira instalação do FOG, selecionei a opção de uso com protocolo HTTP. No entanto, foi necessário reconfigurar o servidor para garantir que todos os serviços estivessem corretamente ajustados para operar com HTTP, evitando erros de boot relacionados ao uso indevido de HTTPS, como o erro Permission denied (0216ea8f) no iPXE.
### **Solução:** Reinstalação do FOG Project
Clone do repositório do FOG:
```bash=
git clone https://github.com/FOGProject/fogproject.git
```
Acesso ao diretório:
```bash=
cd fogproject/bin
```
Instalação com:
```bash=
sudo ./installfog.sh
```
### 9.2 Erro "Permission Denied" e Falha de Montagem no FOG
O cliente PXE (que está tentando baixar a imagem pelo FOG) não consegue montar o diretório NFS /images2 que está hospedado no servidor 192.168.0.100. O erro “Permission denied” indica que o servidor FOG não está permitindo a conexão NFS por algum motivo.
```text
Reason: mount: mounting 192.168.0.100:/images2 on /images failed: Permission denied
Could not mount mount point, check if /mnt/check exists (/bin/fog.download)
Error trying to send notification: Invalid MAC Address!
```
### 9.2.1. Verifique o arquivo de exportação NFS
Abra o arquivo:
```bash=
sudo nano /etc/exports
```
Procure por uma linha parecida com:
```bash=
/images2 *(rw,sync,no_wdelay,no_root_squash,insecure,no_subtree_check)
# Se não existir ou estiver incorreta, adicione ou corrija.
```

Salve e depois recarregue o serviço:
```bash=
sudo exportfs -r
```
### 9.2.2 Verifique as permissões da pasta `/images2`
O FOG precisa de permissões completas na pasta:
```bash
sudo chown -R fogproject:fogproject /images2
sudo chmod -R 777 /images2
```
Se necessário, descubra o usuário com:
```bash
ps aux | grep fog
```
### 9.2.3. Verifique se o NFS está rodando
Confirme com:
```bash
sudo systemctl status nfs-kernel-server
```
Se estiver inativo:
```bash
sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server
```
### 9.2.4. Teste o acesso NFS de outra máquina
Em um cliente Linux:
```bash
sudo mount 192.168.0.100:/images2 /mnt
```
Se falhar, o erro está no servidor.
### 9.2.5. Subpastas obrigatórias ausentes
O diretório `/images2` deve conter ao menos:
```bash
sudo mkdir -p /images2/dev /images2/postdownloadscripts
sudo chown -R fogproject:fogproject /images2
sudo chmod -R 777 /images2
```
### 9.2.6. Configuração incorreta no painel do FOG
Acesse via navegador:
```
FOG Configuration > Storage Management > DefaultMember
```
Atualize:
- **Image Location**: `/images2`
- **FTP Path**: `/images2`
- **IP Address**: `192.168.0.100`
- **Username**: `fog`
- **Password**: (preenchido)
---
### 9.2.7. ✅ Checklist Final
| Verificação | Status |
|-------------------------------------|--------|
| `/etc/exports` correto | ✅ |
| `exportfs -r` sem erros | ✅ |
| Permissões corretas em `/images2` | ✅ |
| Subpastas criadas (`dev`, etc.) | ✅ |
| FOG Storage Node atualizado | ✅ |
| MAC do cliente cadastrado | ✅ |
| Cliente PXE inicializa sem erro | ✅ |
### 9.2.8. Reinicie os serviços
```bash
sudo exportfs -r
sudo systemctl restart nfs-kernel-server
sudo systemctl restart apache2
```
---
### 9.3. Por que uma porta do switch fica limitada a 100 Mbps?
### 9.3.1. Problema
Você percebeu que:
- **Porta 1** do switch está limitada a **100 Mbps**
- **Porta 2** funciona normalmente com **1000 Mbps (1 Gbps)**
### 9.3.2. Por que isso acontece?
A limitação geralmente **não está no switch**, mas sim na **negociação de velocidade** entre o switch e o dispositivo conectado. Veja as causas mais comuns:
### 9.3.3. Cabo de rede inadequado ou danificado
- **Cabos CAT5 antigos** → só suportam até **100 Mbps**.
- Para **1 Gbps**, o mínimo recomendado é:
- **CAT5e**
- **CAT6**
- Cabos danificados ou com fios rompidos **negociam apenas 100 Mbps** como fallback.
### 9.3.4. Dispositivo conectado limitado
- O equipamento conectado à porta 1 pode **suportar apenas 100 Mbps**.
- Ou a **placa de rede** está configurada para forçar **100 Mbps**, ao invés de **Auto negociação**.
### 9.3.5. Problemas nos pinos do conector RJ45
- Conexão **Gigabit (1 Gbps)** usa **todos os 8 fios** do cabo.
- Conexão **100 Mbps** usa apenas **4 fios**.
- Fios mal conectados ou rompidos → apenas 100 Mbps negociado.
### 9.3.6. Configuração manual no switch ou host
- A porta 1 do switch pode estar **configurada manualmente** para 100 Mbps.
- Verifique no painel do switch se está como **"Auto" (negociação automática)**.
### 9.3.7. Como testar e corrigir
1. **Troque o cabo da porta 1** por um novo **CAT5e ou CAT6**.
2. **Teste o mesmo equipamento** conectado na porta 2 (1 Gbps) para ver se o problema persiste.
3. Acesse o **painel de gerenciamento do switch Dell** e verifique se a **porta 1 está em modo Auto negotiation**.
4. No **computador/dispositivo conectado**, vá até as **configurações da placa de rede** e:
- Verifique se a velocidade está configurada como **"Auto negociação"**.
- Ou force manualmente para **"1 Gbps Full Duplex"** (se disponível).
---
### Dica final
Se alterar o diretório de imagens (`/images` → `/images2`), **atualize no painel web do FOG e nas permissões do sistema**.
{"title":"Documentação FOG PROJECT em LAN","description":"Servidor FOG: Ubuntu Desktop 22.04 LTS","contributors":"[{\"id\":\"12f2be15-7f95-4f55-a648-80d140dbdd9e\",\"add\":56275,\"del\":16262,\"latestUpdatedAt\":1757021888098}]"}