mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-01 10:22:08 +00:00
133 lines
9.5 KiB
JSON
133 lines
9.5 KiB
JSON
{
|
||
"meta": {
|
||
"title": "Análise de bridges e reparação guiada | Documentação ProxMenux",
|
||
"description": "Deteta bridges vmbrX com portas físicas em falta ou inválidas, tipicamente após a reenumeração PCI. Apresenta-os com sugestões de comandos de shell e propõe uma reparação guiada em 5 passos com cópia de segurança obrigatória.",
|
||
"ogTitle": "Análise de bridges e reparação guiada | Documentação ProxMenux",
|
||
"ogDescription": "Verifique e repare portas de bridges Proxmox após alterações de hardware, com um procedimento guiado que permite reverter em segurança."
|
||
},
|
||
"header": {
|
||
"title": "Análise de ponte e reparo guiado",
|
||
"description": "Verifica cada bridge vmbrX declarado em /etc/network/interfaces e se as suas portas físicas existem. Caso faltem, propõe uma reparação passo a passo. A análise é só de leitura; a reparação exige confirmação, apresenta uma pré-visualização e cria uma cópia de segurança.",
|
||
"section": "Rede"
|
||
},
|
||
"intro": {
|
||
"title": "O que isto faz",
|
||
"body": "Lê cada ponte em <code>/etc/network/interfaces</code>, olha para sua linha <code>bridge-ports</code> e verifica se cada porta declarada (por exemplo. <code>enp3s0</code>) realmente existe na máquina. Se falta uma porta, propõe um substituto e – com consentimento explícito – aplica a alteração com um <strong>backup, visualização, aplicação, verificação</strong>."
|
||
},
|
||
"when": {
|
||
"heading": "Quando precisares disto",
|
||
"intro": "Linux atribui nomes de interface previsíveis de topologia PCI e ordem de fenda. Vários eventos os embaralham e deixam o <code>/etc/network/interfaces</code> referindo-se a nomes que já não existem:",
|
||
"items": [
|
||
"Adicionar ou remover uma placa PCIe (placa de rede, GPU, HBA ou adaptador NVMe).",
|
||
"Mudar uma placa existente para outro slot PCIe.",
|
||
"BIOS / UEFI atualiza que re-enumeram dispositivos PCI.",
|
||
"Migrando o disco de inicialização para hardware diferente."
|
||
],
|
||
"outro": "Após a próxima inicialização, a ponte tenta anexar a uma porta que já não existe, falha em aparecer, e o host perde sua rede. <link>Nomes de interface persistentes</link> impede que isso aconteça novamente — mas se você já estiver bloqueado, esta página é o caminho de recuperação."
|
||
},
|
||
"bigPicture": {
|
||
"heading": "O quadro geral",
|
||
"diagram1": {
|
||
"arrowLabel": "passo 1",
|
||
"nodes": {
|
||
"sourceLabel": "/etc/network/interfaces",
|
||
"sourceDetail": "auto vmbr0\niface vmbr0 inet static\n bridge-ports enp3s0",
|
||
"bridgeLabel": "Analisar (somente leitura)",
|
||
"bridgeDetail": "ip link show enp3s0\n→ não existe",
|
||
"targetLabel": "Relatório + sugestão",
|
||
"targetDetail": "❌ enp3s0: NÃO ENCONTRADA\nSubstituir por: eno1\n(ainda sem alterações)"
|
||
}
|
||
},
|
||
"diagram2": {
|
||
"arrowLabel": "aplicar com backup",
|
||
"nodes": {
|
||
"sourceLabel": "Reparação guiada",
|
||
"sourceDetail": "1. Cópia de Segurança\n2. Mostrar actual\n3. Antevisão das alterações\n4. Aplicar\n5. Verificar",
|
||
"targetLabel": "/etc/network/interfaces (novo)",
|
||
"targetDetail": "auto vmbr0\niface vmbr0 inet static\n bridge-ports eno1"
|
||
}
|
||
}
|
||
},
|
||
"step1": {
|
||
"heading": "Passo 1: análise (somente leitura)",
|
||
"intro": "Ao selecionar <strong>Analisar configuração de bridges</strong>, a ferramenta para imediatamente se o host não usar a pilha clássica Debian/Proxmox. Caso contrário, verifica cada bridge e apresenta:",
|
||
"items": [
|
||
"Nome do bridge, estado atual (UP / DOWN) e IP atribuído.",
|
||
"Cada porta declarada e se existe atualmente (<code>ip link show <port></code>).",
|
||
"Para cada porta inválida: uma substituição proposta (a primeira interface física disponível) mais o comando exato <code>sed</code> para aplicá-lo manualmente.",
|
||
"Bridges sem qualquer linha <code>bridge-ports</code> e entradas <code>auto</code> órfãs sem bloco <code>iface</code> correspondente."
|
||
],
|
||
"readonlyTitle": "Garantia apenas para leitura",
|
||
"readonlyBody": "Até este ponto o script não executou um único comando modificando. Você pode deixar a análise aberta, copiar os comandos <code>sed</code> sugeridos e aplicá-los manualmente se preferir — ou aceitar o próximo prompt para inserir o reparo guiado."
|
||
},
|
||
"step2": {
|
||
"heading": "Passo 2: reparação guiada (5 passos)",
|
||
"intro": "Só se inicia se aceitar a proposta no fim da análise. Cada passo mostra o que vai acontecer e pede confirmação antes de continuar.",
|
||
"steps": [
|
||
{
|
||
"title": "1. Cópia de segurança",
|
||
"body": "Copia <code>/etc/network/interfaces</code> para <code>/var/backups/proxmenux/interfaces_backup_<TIMESTAMP></code>. O caminho exato de backup é mostrado antes da cópia e novamente depois, com o comando rollback.",
|
||
"tone": "blue"
|
||
},
|
||
{
|
||
"title": "2. Rever a configuração actual",
|
||
"body": "Abre o <code>/etc/network/interfaces</code> ao vivo numa janela de rolagem para que possa ver exactamente o que está prestes a ser alterado.",
|
||
"tone": "blue"
|
||
},
|
||
{
|
||
"title": "3. Antever as alterações propostas",
|
||
"body": "Lista exatamente os bridges afetados e as substituições de portas previstas. Se já não for necessária reparação porque a porta reapareceu entre as verificações, o processo termina com <em>«Não são necessárias alterações.»</em>",
|
||
"tone": "blue"
|
||
},
|
||
{
|
||
"title": "4. Aplicar alterações",
|
||
"body": "Para cada ponte afetada, executa <code>sed -i \"/iface $bridge/,/bridge-ports/ s/bridge-ports.*/bridge-ports $new_ports/\"</code> contra <code>/etc/network/interfaces</code>. Se uma ponte não tiver nenhuma substituição válida disponível, a substituição é ignorada e relatada na etapa 5.",
|
||
"tone": "amber"
|
||
},
|
||
{
|
||
"title": "5. Verificação",
|
||
"body": "Lê novamente o ficheiro e confirma a existência da nova porta de cada bridge. Mostra o comando para reverter (<code>cp <backup> /etc/network/interfaces</code>). Por fim propõe <strong>Reiniciar a rede</strong> — aceite apenas se tiver acesso de reserva à consola.",
|
||
"tone": "emerald"
|
||
}
|
||
],
|
||
"restartTitle": "Reiniciar a rede ≠ anular sem risco",
|
||
"restartBody": "A reparação é gravada no disco mesmo que não reinicie o serviço. <code>systemctl restart networking</code> aplica a alteração <em>agora</em> e pode interromper a sessão SSH se a nova porta estiver errada. Se recusar, a alteração entra na mesma em vigor no próximo arranque — confirme primeiro a configuração ou reverta com o comando apresentado."
|
||
},
|
||
"edits": {
|
||
"heading": "O que é editado (exatamente)",
|
||
"body": "Apenas a linha <code>bridge-ports</code> de cada bridge afetado. As outras diretivas (<code>address</code>, <code>netmask</code>, <code>gateway</code>, <code>bridge-stp</code>, …) ficam intactas. Neste procedimento o script não cria nem remove blocos <code>iface</code> — isso cabe à <link>Análise de configuração & limpeza</link>."
|
||
},
|
||
"troubleshoot": {
|
||
"heading": "Resolução de Problemas",
|
||
"unsupportedTitle": "A análise para com «Pilha de rede não suportada»",
|
||
"unsupportedBody": "O host usa netplan, systemd-networkd ou NetworkManager. A ferramenta só suporta <code>/etc/network/interfaces</code>. Mude primeiro o host para a pilha clássica ou altere a configuração com as ferramentas nativas do gestor (por exemplo <code>netplan apply</code>).",
|
||
"noSuggestTitle": "Nenhuma sugestão é impressa para uma porta inválida",
|
||
"noSuggestBody": "O host tem zero interfaces físicas livres (tudo já está em outra ponte ou não existe). A análise remonta a sugerir <code>bridge-ports none</code> para que a ponte possa pelo menos subir sem um porto. Adicionar um NIC ou migrar portas entre pontes manualmente antes de repetir.",
|
||
"stillDownTitle": "O reparo completa, mas a ponte ainda está em baixo",
|
||
"stillDownBody": "<code>sed</code> atualizou o arquivo, mas <code>systemctl restart networking</code> foi recusado. Execute-o manualmente assim que a nova configuração for verificada, ou reinicie. Se o reinício foi aceito e a ponte ainda estiver baixa, execute <code>ip link show</code> para confirmar a nova porta existe, em seguida, verifique <code>journalctl -u networking</code> para o erro real (cabo desconectado, link não negociado, porto já um membro de outra ponte).",
|
||
"lostSshTitle": "Perdi o acesso SSH logo após reiniciar a rede",
|
||
"lostSshIntro": "Use console / IPMI / iKVM para chegar ao host. Restaurar o backup:",
|
||
"lostSshOutro": "Em seguida, re-execute a análise do console para descobrir por que a sugestão não funcionou (normalmente: a porta de substituição não está realmente conectada)."
|
||
},
|
||
"related": {
|
||
"heading": "Relacionado",
|
||
"items": [
|
||
{
|
||
"label": "Nomes de interface persistentes",
|
||
"href": "/docs/network/persistent-names",
|
||
"tail": " — atribuir nomes aos endereços MAC para que este cenário deixe de acontecer."
|
||
},
|
||
{
|
||
"label": "Análise de configuração e limpeza guiada",
|
||
"href": "/docs/network/config-analysis",
|
||
"tailRich": " — para os blocos <code>iface</code> órfãos (a outra metade do mesmo problema)."
|
||
},
|
||
{
|
||
"label": "Cópia de segurança e reinício das interfaces",
|
||
"href": "/docs/network/backup-restore",
|
||
"tail": " — instantâneos manuais e o navegador de restauração."
|
||
}
|
||
]
|
||
}
|
||
}
|