mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 19:02:31 +00:00
Merge pull request #490 from jcastro/docs/review-storage-share
docs: review storage sharing documentation in all seven translations
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Máquina: Adicionar iSCSI alvo como armazenamento Proxmox ProxMenux Documentação",
|
||||
"description": "Registe um alvo iSCSI como armazenamento Proxmox com o ProxMenux. A ferramenta instala open-iscsi, descobre o portal através de sendtargets, permite escolher o alvo e executa pvesm add iscsi. Fornece dispositivos de blocos raw para as imagens de disco das VM.",
|
||||
"ogTitle": "Máquina: Adicionar iSCSI alvo como armazenamento Proxmox ProxMenux Documentação",
|
||||
"ogDescription": "Registe um alvo iSCSI como armazenamento Proxmox com descoberta guiada. Usa pvesm add iscsi e fornece dispositivos de blocos raw para os discos das VM."
|
||||
},
|
||||
"header": {
|
||||
"title": "Máquina: Adicionar iSCSI alvo como armazenamento Proxmox",
|
||||
"description": "Registre um alvo iSCSI (de um SAN, TrueNAS / FreeNAS, Synology, um alvo Windows Server, qualquer array que fala iSCSI) como armazenamento Proxmox. Os LUNs exportados aparecem como dispositivos de bloco e podem hospedar imagens de disco VM em desempenho quase local através da rede.",
|
||||
"section": "Armazenamento e Compartilhamento · Máquina"
|
||||
},
|
||||
"intro": {
|
||||
"title": "O que isto faz",
|
||||
"body": "ProxMenux envolve <code>pvesm add iscsi</code> com um fluxo guiado: instala <code>open-iscsi</code> se necessário, pede o portal iSCSI (IP:port), executa <code>iscsiadm --mode discovery --type sendtargets</code> contra ele, permite escolher um IQN alvo e registra o armazenamento iSCSI no Proxmox. O serviço <code>iscsid</code>, em seguida, mantém a sessão iSCSI vivo através de reinicialização."
|
||||
},
|
||||
"vocab": {
|
||||
"heading": "vocabulário iSCSI (referência rápida)",
|
||||
"headerTerm": "Termo",
|
||||
"headerMeaning": "Significado",
|
||||
"rows": [
|
||||
{
|
||||
"term": "Portal",
|
||||
"meaningRich": "O endpoint de serviço iSCSI no servidor alvo — um IP (ou hostname) mais uma porta TCP. O porto padrão é <code>3260</code>; ProxMenux assume-o se você não especificar um."
|
||||
},
|
||||
{
|
||||
"term": "Alvo",
|
||||
"meaningRich": "Um único servidor exportado dentro do portal, identificado pelo seu IQN (<em>iSCSI Qualified Name</em>). Um portal pode hospedar muitos alvos."
|
||||
},
|
||||
{
|
||||
"term": "IQN",
|
||||
"meaningRich": "A forma canônica é <code>iqn.YYYY-MM.reverse.domain:identifier</code>, por exemplo <code>iqn.2024-08.com.truenas:proxmox-pool</code>. Tanto o alvo como o iniciador têm o seu próprio IQN."
|
||||
},
|
||||
{
|
||||
"term": "LUN",
|
||||
"meaningRich": "Um dispositivo de bloco dentro de um alvo (Número de Unidade Lógica). Um único alvo pode expor vários LUNs; cada LUN aparece como seu próprio disco em Proxmox e pode se tornar um disco VM."
|
||||
},
|
||||
{
|
||||
"term": "Iniciador",
|
||||
"meaningRich": "O cliente que se conecta a um alvo — neste caso, seu host Proxmox. O iniciador tem seu próprio IQN armazenado em <code>/etc/iscsi/initiatorname.iscsi</code>. Os alvos geralmente só aceitam sessões de IQNs de iniciadores pré-autorizados."
|
||||
}
|
||||
]
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "Do menu principal do ProxMenux, abra o <strong>Storage & Share Manager → Adicione iSCSI Target como Proxmox Storage</strong>. Você verá este sub-menu com quatro opções:",
|
||||
"imageAlt": "Menu do gestor de máquinas iSCSI — Adicionar / Ver / Remover / Teste de conectividade"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado (Adicionar fluxo)",
|
||||
"body": "O fluxo tem duas fases com separação clara entre \"ajustar o iniciador, descobrir alvos\" e \"realmente registrar armazenamento em Proxmox\". Ao contrário do NFS / Samba, não há nenhuma descoberta automática na sub-rede — você deve saber o endereço do portal (iSCSI não é amigável à transmissão)."
|
||||
},
|
||||
"add": {
|
||||
"heading": "Adicionar o alvo iSCSI como armazenamento Proxmox",
|
||||
"items": [
|
||||
"<strong>Entrada portal</strong> — digite o IP ou hostname do servidor alvo iSCSI. Porta <code>3260</code> é assumido a menos que você digite <code>host:port</code>.",
|
||||
"<strong>Descoberta do alvo</strong> — ProxMenux chama <code>iscsiadm --mode discovery --type sendtargets --portal <ip:port></code>. O servidor responde com cada IQN que permite que este iniciador veja. Se a descoberta falhar, o script mostra o erro exato de <code>iscsiadm</code> e lista causas comuns (IP errado, firewall, IQN iniciador não autorizado).",
|
||||
"<strong>Seleção do alvo</strong> — um único alvo é selecionado automaticamente; vários alvos mostram um menu.",
|
||||
"<strong>Storage ID</strong> — padrão é <code>iscsi-<last IQN segment, 20 chars max></code>. Apenas letras, dígitos, <code>-</code> e <code>_</code>.",
|
||||
"<strong>Tipo de conteúdo</strong> — ao contrário do NFS / Samba, o conteúdo de iSCSI é <strong>fixo ao <code>images</code></strong>. iSCSI expõe dispositivos de bloco brutos, não um sistema de arquivos, então o Proxmox só permite hospedar discos VM nele."
|
||||
],
|
||||
"authTitle": "Autorizar o iniciador Proxmox no alvo",
|
||||
"authBody1": "Antes do fluxo Adicionar funcionar de ponta a ponta, o alvo iSCSI precisa conhecer seu host Proxmox. Obter o seu IQN iniciador:",
|
||||
"authBody2": "Adicione esse IQN à lista de acesso do alvo (TrueNAS: <em>Sharing → Block → Initiators Groups</em>; Synology: <em>SAN Manager → iSCSI → Target → Edit → Initiators</em>; etc.). Se o iniciador não estiver autorizado, a descoberta com <code>iscsiadm</code> retorna uma lista vazia ou um erro de autenticação."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"body": "O fluxo completo corresponde a estes comandos:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver os armazenamentos iSCSI configurados",
|
||||
"body": "Lista todas as entradas iSCSI no Proxmox (<code>pvesm status | awk ''$2 == \"iscsi\"''</code>) com portal, IQN do alvo, tipo de conteúdo e estado atual."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Remover o armazenamento de iSCSI",
|
||||
"body": "Executa <code>pvesm remove <storage-id></code> após confirmar portal, alvo e conteúdo. Somente o registro Proxmox é removido — <strong>o alvo iSCSI em si não é tocado</strong> e as sessões existentes no lado do kernel podem durar até o próximo reinício.",
|
||||
"warnTitle": "Verifique primeiro os discos de VM existentes neste iSCSI",
|
||||
"warnBody": "Removendo um armazenamento iSCSI enquanto as VMs ainda têm discos nele deixa aquelas VMs apontando para uma loja desaparecida. O Proxmox assinalará o erro, mas os dados LUN não são tocados no alvo — você pode registrar novamente o armazenamento mais tarde para recuperar os discos. Ainda assim, mova ou faça backup das VMs primeiro para ser seguro."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Teste de conectividade iSCSI",
|
||||
"body": "Executa um passe diagnóstico: verifica se o <code>iscsiadm</code> está instalado, imprime o seu IQN iniciador, confirma que o <code>iscsid</code> está em execução, pings cada portal registrado, sonda sua porta, e relata o <code>pvesm status</code> mais se uma sessão iSCSI está atualmente ativa (<code>iscsiadm --mode session</code>). Sessão ativa mais portal acessível, mas \"inativo\" no Proxmox geralmente significa um estado obsoleto — tente <code>pvesm set <id> --disable 0</code>."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"portalTitle": "\"Não é possível alcançar o portal\", mas o IP do servidor responde em outro lugar",
|
||||
"portalBody": "O ping ao endereço do portal falhou. Verifique se está alcançando a interface da <em>rede de armazenamento</em> (iSCSI costuma usar uma VLAN ou sub-rede separada da rede de gerenciamento). Confira também o DNS se informou um nome de host.",
|
||||
"discoverTitle": "\"A descoberta do iSCSI falhou\" do iscsiadm",
|
||||
"discoverIntro": "O script mostra o erro exato. Causas mais comuns:",
|
||||
"discoverItems": [
|
||||
"Portal IP / porta errada (dupla verificação, padrão é 3260).",
|
||||
"O serviço iSCSI não está em execução no servidor alvo.",
|
||||
"Firewall bloqueia 3260 entre Proxmox e o alvo.",
|
||||
"<strong>Iniciador IQN não está autorizado no alvo.</strong> Causa mais frequente em matrizes empresariais. Adicione o seu Proxmox IQN ao ACL inicial do alvo primeiro."
|
||||
],
|
||||
"noTargetTitle": "Nenhum alvo encontrado, mas a descoberta foi bem- sucedida",
|
||||
"noTargetBody": "O servidor aceitou o seu iniciador, mas não expõe nenhum alvo a ele. Revise os controles de autenticação/acesso do alvo — alguns arrays permitem a descoberta de todas as IQNs, mas filtram os alvos que cada IQN pode ver.",
|
||||
"noLunTitle": "LUNs não aparecem em /dev/disk/by-path após o registro",
|
||||
"noLunBody": "<code>pvesm add iscsi</code> teve sucesso, mas o kernel não está vendo dispositivos de bloco. Verifique <code>iscsiadm --mode session</code> — se nenhuma sessão estiver ativa, inicie uma manualmente com <code>iscsiadm --mode node --login</code>. Se uma sessão existir, mas não aparecerem LUNs, force uma nova varredura: <code>iscsiadm --mode session --rescan</code>. Se ainda nada, o alvo provavelmente não tem LUNs atribuídos a este IQN ainda (configurar mapeamento LUN no alvo).",
|
||||
"chapTitle": "Autenticação CHAP",
|
||||
"chapBody": "O ProxMenux não oferece campos de usuário e senha CHAP no fluxo interativo. Se a descoberta falhar, o script para antes de <code>pvesm add</code>; o armazenamento não é registrado apesar da falha. Configure separadamente os requisitos CHAP do alvo em <code>open-iscsi</code>, incluindo a autenticação da descoberta quando necessária, e tente novamente. Confira a configuração com <code>iscsiadm</code> e verifique sessões ativas com <code>iscsiadm --mode session</code>."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "Compartilhamento NFS como armazenamento Proxmox",
|
||||
"tail": " — alternativas ao nível dos ficheiros. Mais simples de configurar, mais flexível (backup / ISO / tmpl / imagens), ligeiramente mais lento para discos VM ao vivo."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"label": "Samba / CIFS como armazenamento Proxmox",
|
||||
"tail": " — outra opção de nível de arquivo; evite para discos VM ao vivo devido à semântica de bloqueio."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-disk",
|
||||
"label": "Adicionar o disco local como armazenamento Proxmox",
|
||||
"tail": " — quando o disco é local para a máquina Proxmox, não em outra caixa na rede."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Máquina: Adicionar o disco local como armazenamento Proxmox ProxMenux Documentação",
|
||||
"description": "Formate um disco SATA, SAS ou NVMe local num host Proxmox e registe-o como armazenamento de tipo diretório ou pool ZFS. Inclui seleção segura do disco, confirmação das operações destrutivas, fstab por UUID, criação do pool ZFS e utilização de pvesm add dir / zfspool.",
|
||||
"ogTitle": "Máquina: Adicionar o disco local como armazenamento Proxmox ProxMenux Documentação",
|
||||
"ogDescription": "Formate um disco local e registre-o como armazenamento de diretório ou pool ZFS no Proxmox com um fluxo guiado e filtros de segurança."
|
||||
},
|
||||
"header": {
|
||||
"title": "Máquina: Adicionar disco local como armazenamento Proxmox",
|
||||
"description": "Pegue um disco físico na máquina Proxmox, opcionalmente formate-o (ext4 / xfs / btrfs / zfs) e registre-o como armazenamento Proxmox — quer como diretório (pvesm add dir) quer como um pool ZFS (pvesm add zfspool). ProxMenux filtra a lista de discos para que você não possa escolher o disco raiz ou qualquer coisa em uso, e torna cada passo destrutivo explícito antes de executá-lo.",
|
||||
"section": "Armazenamento e Compartilhamento · Máquina"
|
||||
},
|
||||
"intro": {
|
||||
"title": "O que isto faz",
|
||||
"body": "Outras ferramentas <em>Host</em> nesta seção lidam com armazenamento de <strong>rede</strong> (NFS / Samba / iSCSI). Este lida com discos <strong>locais</strong> — unidades de reposição fisicamente conectadas ao seu host Proxmox que você deseja usar para discos VM, backups, ISOs ou modelos. ProxMenux prepara o disco (partição + formato + montagem) e registra-o em Proxmox para que a UI possa colocar conteúdo lá."
|
||||
},
|
||||
"destructive": {
|
||||
"title": "Ferramenta destrutiva para o caminho do 'formato'",
|
||||
"body": "A opção <em>Formatar</em> <strong>destrói as partições e os dados existentes no disco selecionado</strong>. O ProxMenux mostra um aviso, filtra discos em uso e exige confirmação antes de executar <code>wipefs</code> / <code>sgdisk</code> / <code>mkfs</code>. Isso não é uma sobrescrita segura de cada byte. Confira duas vezes o caminho do dispositivo antes de confirmar."
|
||||
},
|
||||
"compare": {
|
||||
"heading": "Directório vs ZFS pool — qual escolher",
|
||||
"headerDir": "Pasta (ext4 / xfs / btrfs)",
|
||||
"headerZfs": "Conjunto ZFS",
|
||||
"rows": [
|
||||
{
|
||||
"label": "Tipo de armazenamento Proxmox",
|
||||
"dirRich": "<code>dir</code>",
|
||||
"zfsRich": "<code>zfspool</code>"
|
||||
},
|
||||
{
|
||||
"label": "Formato de disco VM",
|
||||
"dir": "Arquivo qcow2 / raw em um sistema de arquivos",
|
||||
"zfs": "Conjunto de dados nativo ZFS (zvol) por disco"
|
||||
},
|
||||
{
|
||||
"label": "Instantâneos",
|
||||
"dir": "qcow2 instantâneos; btrfs instantâneos se fs=btrfs",
|
||||
"zfs": "Nativo, instantâneo, copy-on-write"
|
||||
},
|
||||
{
|
||||
"label": "Aprovisionamento dinâmico",
|
||||
"dir": "Sim (qcow2 por omissão)",
|
||||
"zfs": "Sim (ZFS por omissão)"
|
||||
},
|
||||
{
|
||||
"label": "Necessidades de RAM",
|
||||
"dir": "Baixo",
|
||||
"zfs": "Altas — o ZFS usa a RAM livre como cache ARC"
|
||||
},
|
||||
{
|
||||
"label": "Suporta tipos de conteúdo",
|
||||
"dir": "images, backup, iso, vztmpl, snippets, rootdir",
|
||||
"zfs": "apenas images e rootdir (armazenamento em blocos)"
|
||||
},
|
||||
{
|
||||
"label": "Melhor para",
|
||||
"dir": "Disco de uso geral: mistura de discos VM, backups, ISOs",
|
||||
"zfs": "Puro disco de dados VM / LXC com instantâneo + necessidades de integridade"
|
||||
}
|
||||
]
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "Do menu principal do ProxMenux, abra o <strong>Storage & Share Manager → Adicione disco local como armazenamento Proxmox</strong>. Você verá este sub-menu com quatro opções:",
|
||||
"imageAlt": "Menu de gerenciamento de disco local — Adicionar / Ver / Remover / Listar discos disponíveis"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado (Adicionar fluxo)",
|
||||
"body": "O fluxo tem duas fases com um filtro de segurança com três verificações. Fase 1 descobre discos seguros, decide o que fazer com o escolhido e coleta parâmetros de armazenamento; Fase 2 faz o trabalho destrutivo. Até a confirmação final o disco está intocado."
|
||||
},
|
||||
"format": {
|
||||
"heading": "Formatar um disco em branco",
|
||||
"intro": "O caminho para um disco fresco ou um cujo conteúdo você não se importa.",
|
||||
"items": [
|
||||
"Escolha o disco (sistema / discos em uso estão escondidos).",
|
||||
"Escolha \"Format disk (ERASE todos os dados)\".",
|
||||
"Escolha o sistema de arquivos — veja a tabela acima para trade-offs.",
|
||||
"ID de armazenamento (padrão <code>disk-<device></code>), caminho de montagem, tipo de conteúdo predefinido.",
|
||||
"Confirme no diálogo <strong>CONFIRMAÇÃO FINAL — OS DADOS SERÃO APAGADOS</strong>.",
|
||||
"O ProxMenux limpa a tabela de partições e cria uma partição que ocupa o disco. Executa <code>mkfs.<fs></code> ou <code>zpool create</code> e monta o resultado. Sistemas de arquivos comuns recebem uma entrada UUID em <code>/etc/fstab</code> com <code>defaults,nofail</code>; o ZFS usa a configuração de montagem do pool. Se <em>Como armazenamento Proxmox</em> estiver marcado (sempre no caso do ZFS), ele é registrado com <code>pvesm add dir</code> ou <code>pvesm add zfspool</code>; caso contrário, fica apenas como montagem do host."
|
||||
],
|
||||
"tipTitle": "Porquê UUID + nofail em /etc/fstab",
|
||||
"tipBody": "O script escreve <code>UUID=… /mnt/<id> <fs> defaults,nofail 0 2</code>. O UUID sobrevive à reordenação do dispositivo através de reinicialização (então o <code>/dev/sdc</code> tornando-se o <code>/dev/sdd</code> não quebra a inicialização). <code>nofail</code> significa que se o disco desaparecer (falha de Hardware, desconectado), o Proxmox ainda inicia — o armazenamento só será mostrado como inativo até que o disco volte."
|
||||
},
|
||||
"reuse": {
|
||||
"heading": "Reutilizar um sistema de ficheiros existente",
|
||||
"intro": "O caminho para um disco que você deseja manter os dados em — talvez você tenha movido de outro host Proxmox, ou o disco já tem backups / ISOs que você deseja manter acessível.",
|
||||
"items": [
|
||||
"Escolhe o disco.",
|
||||
"Escolha \"Usar o sistema de arquivos existente\".",
|
||||
"ID de armazenamento, local de montagem, predefinição do tipo de conteúdo.",
|
||||
"ProxMenux <strong>não</strong> toca nos dados: ele cria o ponto de montagem, monta o disco, adiciona uma entrada UUID a <code>/etc/fstab</code> e a registra como um armazenamento Proxmox <code>dir</code>."
|
||||
],
|
||||
"warnTitle": "O caminho de reutilização não lida com ZFS pools",
|
||||
"warnBody": "Se o disco já contém um pool ZFS, o caminho <em>reuse</em> aqui apenas tenta montá-lo como um sistema de arquivos regular – que falha. Para importar um pool ZFS existente use <code>zpool import <name></code> na linha de comando e registre-o manualmente com <code>pvesm add zfspool</code>."
|
||||
},
|
||||
"presets": {
|
||||
"heading": "Predefinições do tipo de conteúdo",
|
||||
"intro": "O ProxMenux oferece três predefinições e uma opção personalizada. A lista de conteúdo escolhida é passada para <code>pvesm add … --content <csv></code>:",
|
||||
"headerPreset": "Predefinição",
|
||||
"headerContent": "Texto do conteúdo",
|
||||
"headerUse": "Caso de uso",
|
||||
"rows": [
|
||||
{
|
||||
"preset": "Armazenamento VM",
|
||||
"content": "images,backup",
|
||||
"use": "Um armazenamento dedicado aos discos de VMs que também mantém os backups dessas VMs por perto."
|
||||
},
|
||||
{
|
||||
"preset": "NAS padrão",
|
||||
"content": "backup,iso,vztmpl",
|
||||
"use": "Um arquivo / disco de mídia — backups, ISOs e modelos LXC. Nenhum disco VM vivo aqui."
|
||||
},
|
||||
{
|
||||
"preset": "Todos os tipos",
|
||||
"content": "images,backup,iso,vztmpl,snippets",
|
||||
"use": "Esta predefinição ampla habilita imagens, backups, ISOs, modelos LXC e snippets. Adicione outros tipos compatíveis, como rootdir, pela opção Personalizado se necessário."
|
||||
},
|
||||
{
|
||||
"preset": "Personalizado",
|
||||
"content": "(input livre)",
|
||||
"useRich": "Digite o CSV exato, por exemplo. <code>images</code> sozinho, ou <code>rootdir,images</code>."
|
||||
}
|
||||
],
|
||||
"zfsTitle": "ZFS pool conteúdo é mais estreito",
|
||||
"zfsBody": "Com <strong>zfs</strong>, um <code>zfspool</code> aceita apenas <code>images</code> e <code>rootdir</code>, não arquivos ISO ou backups. Informe uma lista compatível em Personalizado. O script a encaminha sem alterações; tipos incompatíveis podem fazer o registro falhar. Verifique <code>pvesm status</code> depois."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"extIntro": "Formato + registrar um disco como armazenamento de diretório ext4:",
|
||||
"zfsIntro": "Ou como um ZFS pool:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver os armazenamentos de discos",
|
||||
"body": "Lista cada armazenamento Proxmox apoiado em disco (ambos <code>dir</code> e <code>zfspool</code> que são criados pelo usuário – pools de sistema como <code>rpool</code> estão escondidos). Mostra o caminho de montagem / nome do pool, tipos de conteúdo e estado ao vivo."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Remover o armazenamento do disco",
|
||||
"body": "Remove o registro do armazenamento no Proxmox (<code>pvesm remove</code>) e oferece limpar a entrada correspondente em <code>/etc/fstab</code>. O script <strong>não</strong> destrói pools ZFS automaticamente; isso exige executar separadamente <code>zpool destroy <name></code> quando tiver certeza.",
|
||||
"warnTitle": "Dados e dependências VM existentes",
|
||||
"warnBody": "A remoção do armazenamento não toca no sistema de arquivos nem no pool — os dados permanecem no disco. Mas VMs / CTs que referenciam este armazenamento por ID não vai começar após a remoção. Mova esses discos VM para outro armazenamento (ou faça um backup) antes de remover."
|
||||
},
|
||||
"list": {
|
||||
"heading": "Listar os discos disponíveis",
|
||||
"body": "Uma visão diagnóstica somente de leitura: imprime a saída de <code>lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL</code> seguida pelo <code>dir</code> / <code>zfspool</code> armazenamentos já conhecidos pelo Proxmox. Boa primeira parada quando você abrir a ferramenta e quiser ver \"o que está neste host?\" antes de adicionar qualquer coisa."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"noDisksTitle": "\"Nenhum disco disponível encontrado\"",
|
||||
"noDisksIntro": "O filtro de segurança escondeu todos os discos. Razões comuns:",
|
||||
"noDisksItems": [
|
||||
"Apenas o disco raiz está presente.",
|
||||
"Cada outro disco é parte de uma matriz ativa ZFS / LVM / RAID.",
|
||||
"Cada outro disco é referenciado por uma configuração VM ou LXC (passthrough).",
|
||||
"O disco está em modo somente leitura (falha de hardware ou bloqueio de gravação)."
|
||||
],
|
||||
"noDisksOutro": "Use <em>Lista de discos disponíveis</em> do menu para ver a saída <code>lsblk</code> bruta e entender o que está acontecendo.",
|
||||
"mountedTitle": "O formato falha com \"o dispositivo está montado\"",
|
||||
"mountedBody": "Algo montou automaticamente o disco (udisksd, um gerenciador de desktop, uma unidade de systemd). Desmontá-lo: <code>umount /dev/sdX?*</code> ou <code>systemctl stop <whatever-mounts-it></code>, então tente novamente. O filtro de segurança do script deve ter discos montados ocultos, então se você alcançou este erro a montagem aconteceu entre o menu mostrando e você confirmando.",
|
||||
"zpoolTitle": "zpool create falha com «invalid vdev specification»",
|
||||
"zpoolBody": "Normalmente significa que o disco ainda tem GPT / LVM / ZFS assinaturas que <code>zpool</code> se recusa a substituir sem força. O script executa <code>wipefs</code> e <code>sgdisk --zap-all</code> antes do formato, mas um disco muito teimoso ainda pode ter uma etiqueta antiga. Forçar uma limpeza limpa manualmente: <code>zpool labelclear -f /dev/sdX</code> ou <code>dd if=/dev/zero of=/dev/sdX bs=1M count=10</code> e tentar novamente.",
|
||||
"inactiveTitle": "O armazenamento mostra como inativo após reiniciar",
|
||||
"inactiveBody": "Verifique <code>findmnt <mount-path></code> — se a montagem está faltando, algo em <code>/etc/fstab</code> falhou. <code>dmesg | tail</code> geralmente aponta para a razão (incompatibilidade UUID, corrupção do sistema de arquivos, <code>nofail</code> deixou cair a repetição). Um <code>mount -a</code> geralmente reativa o armazenamento uma vez que a causa é fixa."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/disk-manager/format-disk",
|
||||
"label": "Gerenciador de disco: Formato / Limpar disco físico",
|
||||
"tail": " — alternativa de baixo nível quando você só quer preparar um disco sem registá-lo como armazenamento Proxmox."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-iscsi",
|
||||
"label": "Adicionar o alvo iSCSI como armazenamento Proxmox",
|
||||
"tail": " — equivalente de rede quando o dispositivo de blocos está em outra máquina."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-shared",
|
||||
"label": "Adicionar a Pasta Partilhada na Máquina",
|
||||
"tail": " — preparar um directório na máquina para as montagens de ligação LXC (não regista um armazenamento Proxmox)."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Máquina: Adicionar diretório compartilhado no Host ProxMenux Documentação",
|
||||
"description": "Crie um diretório no host pronto para bind mounts LXC, com permissões para contêineres com e sem privilégios. Sticky bit, rwx para todos e ACLs padrão para herança.",
|
||||
"ogTitle": "Máquina: Adicionar diretório compartilhado no Host ProxMenux Documentação",
|
||||
"ogDescription": "Prepare um diretório host para bind mounts LXC com permissões compatíveis com CTs privilegiadas e sem privilégios."
|
||||
},
|
||||
"header": {
|
||||
"title": "Máquina: Adicionar diretório compartilhado na Máquina",
|
||||
"description": "Crie um diretório no host para bind mounts em um ou mais contêineres LXC. O ProxMenux aplica permissões para CTs com e sem privilégios, sem precisar alinhar UIDs deslocados ou executar chown para cada contêiner, e registra o diretório para uso posterior pelo LXC Mount Manager.",
|
||||
"section": "Armazenamento e Compartilhamento · Máquina"
|
||||
},
|
||||
"intro": {
|
||||
"title": "O que é isto (e NÃO é)",
|
||||
"body": "Esta ferramenta <strong>não</strong> registra nada no Proxmox (nenhum <code>pvesm add</code> aqui). Ele apenas prepara um diretório no host — <code>/mnt/shared</code>, por padrão — com permissões que qualquer contêiner LXC pode ler e gravar, independentemente de o CT ser privilegiado ou não. A próxima etapa normal é montá-lo em cada CT com o <mountLink>LXC Mount Manager</mountLink>."
|
||||
},
|
||||
"why": {
|
||||
"heading": "Por que uma ferramenta dedicada para isso",
|
||||
"intro": "Quando você vincula uma pasta de host em um container LXC, as permissões dependem de:",
|
||||
"items": [
|
||||
"Se o CT tem <strong>privilégios</strong> (UID 0 no CT = UID 0 no host) ou <strong>não tem privilégios</strong> (UID 0 no CT = UID 100000 no host, com deslocamento de +100000).",
|
||||
"O proprietário do diretório do host (um arquivo do UID 1000 no host usa as permissões de “outros” para um CT sem privilégios, pois nenhum usuário do CT corresponde a esse UID do host).",
|
||||
"Se vários CTs compartilham o mesmo diretório (CTs diferentes podem ter diferentes intervalos UID)."
|
||||
],
|
||||
"outro": "O truque pragmático que ProxMenux usa aqui é para <strong>dar a todos acesso</strong> no nível do sistema de arquivos: world-rwx mais o sticky bit, além de ACLs para que os novos arquivos herdem as mesmas permissões. Qualquer UID mapeado pode ler e escrever; nenhum alinhamento UID / GID é necessário."
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado",
|
||||
"body": "O script não tem menu principal — ele executa uma única ação, <strong>Crie diretório compartilhado</strong>. Fase 1 coleta o caminho-alvo; Fase 2 cria o diretório e aplica permissões."
|
||||
},
|
||||
"bits": {
|
||||
"heading": "O que cada bits de permissão faz",
|
||||
"intro": "O número <strong>1777</strong> não é arbitrário — é o mesmo modo que o Linux usa para <code>/tmp</code>. Três propriedades combinadas:",
|
||||
"headerBit": "Bit",
|
||||
"headerEffect": "Efeito",
|
||||
"headerWhy": "Porque é que isto importa aqui?",
|
||||
"rows": [
|
||||
{
|
||||
"bit": "1 (sticky bit)",
|
||||
"effect": "Somente o proprietário do arquivo, o proprietário do diretório ou um processo com privilégios suficientes pode excluir ou renomear o arquivo.",
|
||||
"why": "Ajuda a impedir que usuários com UIDs mapeados diferentes apaguem arquivos uns dos outros. Não isola CTs com o mesmo UID mapeado ou acesso root privilegiado."
|
||||
},
|
||||
{
|
||||
"bit": "777 (rwx-rwx-rwx)",
|
||||
"effect": "Todos podem ler, gravar e atravessar o diretório.",
|
||||
"why": "Os UIDs CT não privilegiados (100000+) aparecem como \"outros\" do host, então o world-rwx lhes dá acesso."
|
||||
},
|
||||
{
|
||||
"bit": "ACL (predefinidas)",
|
||||
"effect": "Herdado em cada arquivo / subdir recém-criado.",
|
||||
"why": "O novo conteúdo herda as ACLs padrão sem executar o script novamente. Os aplicativos ainda podem solicitar modos restritivos ou alterar as permissões depois."
|
||||
}
|
||||
],
|
||||
"privTitle": "Os CTs com privilégios veem o mesmo resultado, sem o deslocamento de UIDs",
|
||||
"privBody": "Para um CT privilegiado, o UID 0 no CT é o UID 0 no host, então o <code>root</code> dentro do CT pode ler / escrever o diretório do host diretamente. <code>1777</code> ainda está bem — isso significa que usuários não root dentro do CT também podem usar o diretório. As mesmas permissões cobrem ambos os casos."
|
||||
},
|
||||
"where": {
|
||||
"heading": "Onde colocar o diretório compartilhado",
|
||||
"intro": "O selecionador de localização oferece quatro opções:",
|
||||
"opt1Title": "1. Criar uma nova pasta no /mnt",
|
||||
"opt1Body": "A escolha habitual. ProxMenux auto-sugere o primeiro nome livre (<code>shared</code>, <code>shared2</code>, <code>shared3</code>, ...). Basta confirmar ou escrever um nome diferente.",
|
||||
"opt2Title": "2. Digite o caminho personalizado",
|
||||
"opt2Body": "Para pastas fora de <code>/mnt</code>. Qualquer caminho absoluto funciona (por exemplo, <code>/srv/media</code>, <code>/data/family</code>). O script aplica as mesmas permissões.",
|
||||
"opt3Title": "3. Ver as pastas existentes no /mnt",
|
||||
"opt3Body": "Diagnóstico somente leitura: lista todos os diretórios sob <code>/mnt</code> com suas permissões, proprietário e espaço disponível. Útil antes de criar um novo para evitar colisões de nomes.",
|
||||
"opt4Title": "4. Cancelar",
|
||||
"opt4Body": "Sai sem criar nada. O mesmo que pressionar <kbd>Esc</kbd>.",
|
||||
"tipTitle": "Onde vive o /mnt?",
|
||||
"tipBody": "Por padrão, o <code>/mnt</code> fica no sistema de arquivos raiz do Proxmox. Se você quiser o diretório compartilhado em um disco diferente (um disco de dados, um pool ZFS), monte esse disco em <code>/mnt/<name></code> primeiro (disco Manager ou <diskLink>Adicionar disco local como armazenamento Proxmox</diskLink>), e então crie o diretório compartilhado como uma subpasta dentro dele — ou escolha \"Digite o caminho personalizado\" aqui e aponte para o disco montado."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"body": "Todo o fluxo pode ser reproduzido à mão:"
|
||||
},
|
||||
"next": {
|
||||
"heading": "Próxima etapa: bind mount nos contêineres",
|
||||
"body": "Criar o diretório apenas o prepara – nenhum contêiner o vê ainda. Para torná-lo visível dentro de um ou mais LXCs, use o <mountLink>LXC Mount Manager</mountLink> para vincular a montagem <code>/mnt/<name></code> nos CTs. Como as permissões já estão abertas, o Mount Manager <strong>não</strong> se oferecerá para alterá-las — o diretório está pronto para ser usado como está."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"mkdirTitle": "\"Failed to create directory\"",
|
||||
"mkdirBody": "Normalmente um problema do sistema de arquivos: <code>/mnt</code> está em um sistema de arquivos somente leitura, o caminho contém um componente que não é um diretório (por exemplo, você digitou <code>/etc/passwd/sub</code>), ou o disco está cheio. Verifique com <code>df -h /mnt</code> e <code>mount | grep /mnt</code>.",
|
||||
"writeTitle": "O recipiente não pode escrever apesar das permissões abertas",
|
||||
"writeBody": "Verifique novamente se o CT está realmente usando a montagem de ligação (<code>pct config <ctid> | grep ^mp</code>). Dentro do CT, execute <code>touch /mnt/data/test-$(date +%s)</code> — se isso falhar com a permissão negada, a montagem pode estar em um sistema de arquivos host que não honra ACLs (algumas montagens mais antigas de <code>ext3</code> ou <code>vfat</code>). Mova o diretório compartilhado para um ext4 / xfs / btrfs / zfs de suporte.",
|
||||
"aclTitle": "Comandos ACL silenciosamente indisponíveis",
|
||||
"aclBody": "Em uma instalação Proxmox mínima <code>setfacl</code> / <code>getfacl</code> podem não estar instalados. O script cai de volta graciosamente (<code>command -v setfacl</code> check) e aplica apenas permissões POSIX — que é muitas vezes suficiente, mas novos arquivos não herdarão automaticamente o perfil permissivo. Instale <code>acl</code> com <code>apt-get install -y acl</code> e execute novamente o script no diretório."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "Gerenciador de montagem LXC",
|
||||
"tail": " — a etapa natural seguinte: ligar esta pasta num ou mais recipientes."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-disk",
|
||||
"label": "Adicionar o disco local como armazenamento Proxmox",
|
||||
"tailRich": " — se você quiser o diretório compartilhado em um disco dedicado, prepare o disco primeiro, monte-o em <code>/mnt</code>, em seguida, crie a subpasta compartilhada aqui."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Host: montar compartilhamento NFS | Documentação ProxMenux",
|
||||
"description": "Monte uma exportação NFS externa no host Proxmox como armazenamento Proxmox com pvesm add nfs, como montagem fstab independente que não aparece em Datacenter > Storage ou das duas formas. O método fstab é adequado para partilhar o caminho com contentores LXC por bind mount sem o registar como armazenamento Proxmox.",
|
||||
"ogTitle": "Host: montar compartilhamento NFS | Documentação ProxMenux",
|
||||
"ogDescription": "Monte uma exportação NFS externa no host Proxmox via pvesm, fstab ou ambos. A opção fstab é ideal para bind mounts LXC."
|
||||
},
|
||||
"header": {
|
||||
"title": "Host: montar compartilhamento NFS no host",
|
||||
"description": "Montar uma exportação NFS externa (de um NAS, outro servidor, uma partilha homelab...) na máquina Proxmox. Escolha um ou ambos os métodos: registre-o como armazenamento Proxmox (visível no Datacenter > Armazenamento) e/ou adicione uma montagem /etc/fstab simples em um caminho que você escolher (útil para montar o compartilhamento em recipientes LXC sem expô-lo como armazenamento Proxmox).",
|
||||
"section": "Armazenamento e Compartilhamento · Máquina"
|
||||
},
|
||||
"intro": {
|
||||
"title": "O que isto faz",
|
||||
"body": "ProxMenux oferece dois métodos de montagem para qualquer exportação de NFS: <strong>(1) Armazenamento Proxmox</strong> via <code>pvesm add nfs</code> — o compartilhamento aparece no Datacenter > Armazenamento e Proxmox gerencia a montagem em <code>/mnt/pve/<id></code>; <strong>(2) Montagem fstab no host</strong> em um caminho que você escolhe — persistente via <code>/etc/fstab</code>, NÃO visível como armazenamento Proxmox, ideal para montagem em contêineres LXC (Proxmox UI permanece limpo). Você pode executar um método, o outro, ou ambos."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "Do menu principal do ProxMenux, abra o <strong>Storage & Share Manager → Monte NFS Share on Host</strong>. Você verá este sub-menu com quatro opções:",
|
||||
"imageAlt": "Menu do gestor de máquinas NFS — Montar / Ver / Remover / Teste de conectividade"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado",
|
||||
"body": "O fluxo tem duas fases com separação clara entre \"descobrir, validar e escolher\" e \"na verdade montagem / gravação config\". Depois de seleccionar uma exportação, escolha os métodos de montagem através de uma lista de verificação; o resto das janelas só pede parâmetros para os métodos que seleccionou. Até à confirmação final, nem <code>/etc/pve/storage.cfg</code> nem <code>/etc/fstab</code> são tocados."
|
||||
},
|
||||
"modes": {
|
||||
"heading": "Selector de métodos de montagem (duas opções, marca uma ou ambas)",
|
||||
"intro": "Após selecionar e validar a exportação, o ProxMenux mostra uma lista de verificação com os dois métodos de montagem. Pode marcar um ou ambos. Se carregar em OK sem marcar nada, a janela reaparece até escolher pelo menos uma opção ou carregar em Cancelar para sair do fluxo.",
|
||||
"imageAlt": "Lista de verificação do método de montagem com opções pvesm e fstab",
|
||||
"headerMethod": "Método",
|
||||
"headerMount": "Caminho de montagem",
|
||||
"headerUi": "Visível no Datacenter > Armazenamento",
|
||||
"headerUseCase": "Caso de uso típico",
|
||||
"rows": [
|
||||
{
|
||||
"method": "<strong>Como armazenamento Proxmox (pvesm)</strong>",
|
||||
"mountRich": "<code>/mnt/pve/<storage-id></code> (gerido pela Proxmox)",
|
||||
"ui": "Sim",
|
||||
"useCase": "Imagens de disco VM, backups, ISOs, modelos LXC — qualquer coisa que precise aparecer na interface Proxmox."
|
||||
},
|
||||
{
|
||||
"method": "<strong>Host somente fstab</strong>",
|
||||
"mountRich": "<code>/mnt/<path></code> (você escolhe o caminho)",
|
||||
"ui": "Não",
|
||||
"useCaseRich": "Compartilhe o caminho com um ou mais LXCs por bind mount <em>sem</em> registrá-lo como armazenamento Proxmox. Mantém a interface Datacenter organizada."
|
||||
},
|
||||
{
|
||||
"method": "<strong>Ambos</strong>",
|
||||
"mount": "Ambos os caminhos acima (dois pontos de montagem da mesma exportação NFS)",
|
||||
"ui": "Sim",
|
||||
"useCase": "Integração com a interface e um caminho estável separado no host com permissões abertas para bind mounts LXC."
|
||||
}
|
||||
],
|
||||
"bothTitle": "\"Ambos\" cria duas montagens independentes NFS",
|
||||
"bothBody": "Os métodos são executados separadamente: pvesm monta em <code>/mnt/pve/<id></code> e fstab em <code>/mnt/<path></code>. Isso oferece uma montagem gerenciada pelo Proxmox com opções padrão e outra no host para bind mounts LXC. Dois pontos de montagem não garantem duas conexões TCP; o cliente NFS pode reutilizar conexões de transporte."
|
||||
},
|
||||
"pvesmBranch": {
|
||||
"heading": "Método A — Armazenagem Proxmox (pvesm)",
|
||||
"intro": "Se o <em>Como armazenamento Proxmox</em> estiver marcado, o ProxMenux roda o fluxo original do pvesm:",
|
||||
"items": [
|
||||
"<strong>Storage ID</strong> — o que o Proxmox chamará de armazenamento. O padrão é <code>nfs-<server-ip-with-dashes></code>. Apenas são aceites letras, dígitos, <code>-</code> e <code>_</code>.",
|
||||
"<strong>Tipos de conteúdo</strong> — Proxmox liga as categorias de conteúdo aos volumes de armazenamento; escolha o que este NFS pode conter:"
|
||||
],
|
||||
"headerType": "Tipo de conteúdo",
|
||||
"headerAllows": "O que permite",
|
||||
"rows": [
|
||||
{
|
||||
"type": "import",
|
||||
"allowsRich": "Importação de imagens de disco (selecionada por padrão). Necessário para <em>Importar imagem de disco para VM</em>."
|
||||
},
|
||||
{
|
||||
"type": "backup",
|
||||
"allowsRich": "Arquivos de backup VM e CT (<code>vzdump</code>)."
|
||||
},
|
||||
{
|
||||
"type": "iso",
|
||||
"allows": "Instalação de imagens ISO."
|
||||
},
|
||||
{
|
||||
"type": "vztmpl",
|
||||
"allows": "Modelos LXC."
|
||||
},
|
||||
{
|
||||
"type": "images",
|
||||
"allows": "Imagens de disco das VMs em uso: transforma o NFS em um armazenamento de discos de VMs."
|
||||
},
|
||||
{
|
||||
"type": "rootdir",
|
||||
"allows": "LXC sistemas de arquivos raiz (raro para NFS — leia a nota abaixo)."
|
||||
},
|
||||
{
|
||||
"type": "snippets",
|
||||
"allows": "Scripts de hook e snippets cloud-init."
|
||||
}
|
||||
],
|
||||
"warnTitle": "images e rootdir em NFS",
|
||||
"warnBody": "Selecionar <code>images</code> permite armazenar discos de VMs no NFS. O desempenho depende da rede, do servidor e da carga; uma falha pode bloquear a E/S que dependa da montagem. <code>rootdir</code> armazena sistemas de arquivos raiz LXC no NFS, onde contêineres sem privilégios podem encontrar limitações de mapeamento de UID, overlay e propriedade. Avalie isso antes de colocar <code>images</code> / <code>rootdir</code> ali; NFS também é útil para <code>backup</code> / <code>iso</code> / <code>vztmpl</code>.",
|
||||
"result": "O resultado é <code>pvesm add nfs <id> --server <srv> --export <path> --content <csv></code> e Proxmox auto-montagens em <code>/mnt/pve/<id></code>."
|
||||
},
|
||||
"fstabBranch": {
|
||||
"heading": "Método B — Montagem fstab da máquina",
|
||||
"intro": "Se <em>Somente montagem fstab no host</em> está marcada, ProxMenux pede um caminho de montagem do host e opções persistentes, então monta e escreve a entrada para <code>/etc/fstab</code>:",
|
||||
"items": [
|
||||
"<strong>Caminho de montagem no host</strong> — padrão <code>/mnt/<export-basename></code>. Deve ser um caminho absoluto. Se algo já estiver montado lá, ou se existir uma entrada fstab para o mesmo caminho, o ProxMenux avisa-o e oferece-lhe para o substituir.",
|
||||
"<strong>Opções de montagem</strong> — <em>Leitura/gravação</em> (padrão: <code>rw,hard,nofail,_netdev,rsize=131072,wsize=131072,timeo=600,retrans=2</code>), <em>Somente leitura</em>, <em>Personalizado</em> (informe suas opções)."
|
||||
],
|
||||
"appliesIntro": "Uma vez confirmado, o script:",
|
||||
"applies": [
|
||||
"<code>mkdir -p</code> o caminho de montagem.",
|
||||
"<code>mount -t nfs -o <opts> <srv>:<export> <path></code>.",
|
||||
"Escreve uma entrada de uma linha para <code>/etc/fstab</code>: <code><srv>:<export> <path> nfs <opts> 0 0</code>.",
|
||||
"Executa o <code>systemctl daemon-reload</code> para que o systemd apanhe a nova entrada do fstab.",
|
||||
"Tenta <code>chmod 1777</code> e <code>setfacl o::rwx</code> no ponto de montagem, ignorando falhas. Só funciona se o servidor NFS permitir; muitas exportações NAS já permitem gravação a todos os usuários."
|
||||
],
|
||||
"lxcTitle": "Usando a montagem fstab de um LXC",
|
||||
"lxcBody": "O script mostra um comando <code>pct set</code> para bind mount, como <code>pct set <ctid> -mp0 /mnt/<path>,mp=/mnt/<ct-path>,shared=1,backup=0</code>. Ou use o <mountLink>LXC Mount Manager</mountLink>, que detecta montagens fstab. <strong>Nada é alterado dentro do contêiner</strong>. O acesso de um CT sem privilégios depende das permissões do servidor para seus UIDs/GIDs mapeados. O script apenas tenta ajustar permissões pelo host; não garante exportações graváveis nem padrões de fabricantes. Consulte Solução de problemas se o acesso falhar.",
|
||||
"noUiTitle": "A montagem do fstab NÃO é um armazenamento Proxmox",
|
||||
"noUiBody": "A montagem de fstab do hospedeiro é invisível para a interface web Proxmox — por design. Ele não aparece no <em>Datacenter > Storage</em>, você não pode selecioná-lo no criador do VM / CT, e as tarefas de backup do Proxmox não podem segmentá-lo. É puramente um caminho do sistema de arquivos host. Se você também quiser integração com UI, marque os métodos <em>ambos</em> no coletor."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"pvesmIntro": "O método A (pvesm) mapeia para:",
|
||||
"fstabIntro": "Método B (fstab) mapas para:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver os armazenamentos NFS configurados",
|
||||
"body": "Lista todas as entradas NFS no Proxmox (<code>pvesm status | awk ''$2 == \"nfs\"''</code>) com servidor, exportação, tipos de conteúdo, caminho de montagem e status ao vivo. <strong>Nota:</strong> esta vista só mostra armazenamentos registrados em pvesm- — as montagens somente para fstab não estão listadas aqui. Verifique aqueles com <code>findmnt -t nfs</code> ou <code>grep nfs /etc/fstab</code>."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Remover o armazenamento de NFS",
|
||||
"body": "Executa <code>pvesm remove <storage-id></code> após uma confirmação que mostra o servidor / exportar / conteúdo. Apenas o registro do lado Proxmox é removido — <strong>o servidor remoto NFS em si nunca é tocado</strong>, nenhum arquivo é excluído. Para remover uma montagem fstab-only, edite <code>/etc/fstab</code> à mão e execute <code>umount <path></code>.",
|
||||
"warnTitle": "Fazer backup das dependências primeiro",
|
||||
"warnBody": "Se VMs, CTs ou tarefas de backup ainda referenciam este armazenamento (por ID), removendo-o deixa-os apontando para um armazenamento que não existe mais. O Proxmox irá marcar o erro, mas não irá limpar. Mover ou soltar essas referências primeiro, em seguida, remover o armazenamento."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Teste de conectividade NFS",
|
||||
"body": "Executa um passe diagnóstico sobre cada armazenamento NFS registrado no Proxmox: verifica se o <code>showmount</code> está disponível, que o <code>rpcbind</code> está em execução, pings cada servidor, sondas porta 2049, chama <code>showmount -e</code>, e finalmente relata a própria visão do Proxmox (<code>pvesm status</code>). Boa primeira parada quando um armazenamento aparece como <em>inativo</em> na interface Proxmox."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"noServersTitle": "\"Nenhum servidor NFS encontrado na rede\"",
|
||||
"noServersBody": "Auto-descoberta usa <code>nmap -p 2049 --open <subnet>/24</code>. O servidor pode não responder se: estiver em um VLAN / subnet diferente, seu firewall bloqueia nmap sondas (muitos do) ou porta 2049 é intencionalmente fechado nessa interface. Use a opção <em>Manual</em> com o IP ou nome do host do servidor.",
|
||||
"portTitle": "«A porta NFS (2049) não está acessível»",
|
||||
"portBody": "O Ping teve sucesso, mas o <code>nc -z -w 3 <server> 2049</code> falhou. Verifique se o serviço NFS está em execução no servidor (<code>systemctl status nfs-server</code> em Linux, Painel de controle → Serviços de arquivos em Synology, plugin NFS em OMV / TrueNAS), e que o firewall permite 2049 do host Proxmox.",
|
||||
"showmountTitle": "\"Falhou em conectar\" do showmount",
|
||||
"showmountBody": "O servidor recusou a consulta da lista de exportação. Causas comuns: o servidor obriga ACLs cliente restrito (seu IP Proxmox não está na lista permitida), <code>rpcbind</code> não está em execução no servidor, ou o servidor expõe apenas NFSv4 com <code>showmount</code> desabilitado. O caminho de exportação ainda pode ser adicionado manualmente se você souber.",
|
||||
"inactiveTitle": "O armazenamento mostra como inativo na UI Proxmox",
|
||||
"inactiveBody": "Execute primeiro <em>Testar conectividade NFS</em>: ele verifica se o servidor responde ao ping, se a porta 2049 está aberta e se a lista de exportações (<code>showmount -e</code>) está disponível. Se a conexão funcionar mas o armazenamento continuar inativo, consulte <code>journalctl -u pvestatd</code> e a configuração do servidor/exportação. Corrija primeiro a conexão ou os privilégios. <code>pvesm set <id> --disable 0</code> habilita um armazenamento desabilitado; não é um reparo geral de NFS.",
|
||||
"lxcNoWriteTitle": "A montagem fstab funciona mas o LXC sem privilégios não consegue gravar por bind mount",
|
||||
"lxcNoWriteBody": "O acesso NFS depende de proprietários, ACLs e squash no servidor. Opções CIFS como <code>uid=</code> e <code>file_mode=</code> <strong>não</strong> se aplicam a NFS. Com o mapeamento LXC padrão, root no CT vira UID 100000 no host, não UID remoto 0. Configure o acesso para o UID/GID mapeado real ou a identidade anônima do servidor. <code>no_root_squash</code> afeta apenas o UID remoto 0 e não resolve todos os casos de UID 100000. O script tenta <code>chmod 1777</code>, mas não ignora permissões do servidor.",
|
||||
"fstabBootTitle": "A montagem do fstab não aparece após reiniciar",
|
||||
"fstabBootBody": "O script adiciona <code>nofail,_netdev</code> para que um compartilhamento faltando no boot não bloqueie a inicialização. Se a montagem nunca aparecer: confirme que a rede está acessível (<code>ping <server></code>), verifique <code>journalctl -u remote-fs.target</code>, e verifique se a entrada é válida com <code>mount -fav | grep nfs</code>. <code>mount -a</code> após a inicialização monta tudo o que está faltando atualmente."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"label": "Samba / CIFS como armazenamento Proxmox",
|
||||
"tail": " — mesmo padrão de fluxo (método A pvesm + método B fstab) para compartilhamentos SMB/CIFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "Gerenciador de montagem LXC",
|
||||
"tailRich": " — montar a via apenas para fstab <code>/mnt/<path></code> num ou mais contentores."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"label": "Cliente NFS em LXC",
|
||||
"tail": " — alternativa: montagem NFS directamente a partir de dentro de um contentor privilegiado (sem passar pelo host)."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Host: montar compartilhamento Samba | Documentação ProxMenux",
|
||||
"description": "Monte uma partilha Samba ou CIFS externa no host Proxmox como armazenamento Proxmox com pvesm add cifs, como montagem fstab com opções uid/gid/file_mode abertas, invisível em Datacenter > Storage, ou das duas formas. O método fstab permite que um LXC sem privilégios leia e escreva por bind mount sem alterações dentro do contentor.",
|
||||
"ogTitle": "Host: montar compartilhamento Samba | Documentação ProxMenux",
|
||||
"ogDescription": "Montar um compartilhamento externo de Samba / CIFS no host Proxmox via pvesm, fstab com perms abertos (ideal para LXC binding-mounts), ou ambos."
|
||||
},
|
||||
"header": {
|
||||
"title": "Host: montar compartilhamento Samba no host",
|
||||
"description": "Montar um compartilhamento externo de Samba (SMB / CIFS) — de um NAS, uma caixa Windows, uma exportação TrueNAS SMB — no host Proxmox. Escolha um ou ambos os métodos: registre-o como armazenamento Proxmox (visível no Datacenter > Armazenamento) e/ou adicione uma montagem /etc/fstab simples em um caminho que você escolher, com uid/gid/file_mode aberto para que os LXCs não privilegiados possam vincular-montar e escrever sem quaisquer alterações dentro do recipiente.",
|
||||
"section": "Armazenamento e Compartilhamento · Máquina"
|
||||
},
|
||||
"intro": {
|
||||
"title": "O que isto faz",
|
||||
"body": "O ProxMenux oferece dois métodos para uma partilha Samba: <strong>(1) Armazenamento Proxmox</strong> através de <code>pvesm add cifs</code>, visível em Datacenter > Storage e montado em <code>/mnt/pve/<id></code>. A palavra-passe é guardada em texto simples em <code>/etc/pve/priv/storage/<id>.pw</code>, protegida pelo diretório privado acessível apenas a root: é controlo de acesso, não encriptação. <strong>(2) Montagem fstab do host</strong> num caminho escolhido, persistente através de <code>/etc/fstab</code> e montada com <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> para permitir a escrita através de bind mounts de LXC sem privilégios. As credenciais ficam num ficheiro exclusivo de root em <code>/etc/samba/credentials/</code>, nunca diretamente em <code>fstab</code>. Pode utilizar um método ou ambos."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "Do menu principal do ProxMenux, abra o <strong>Storage & Share Manager → Monte Samba Share on Host</strong>. Você verá este sub-menu com quatro opções:",
|
||||
"imageAlt": "Menu do gestor de máquinas Samba — Montar / Ver / Remover / Teste de conectividade"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado",
|
||||
"body": "O fluxo tem duas fases. Fase 1: descubra servidor, valide credenciais, escolha o compartilhamento e, em seguida, escolha os métodos de montagem através de uma lista de verificação. Fase 2: apenas os métodos marcados são executados. As credenciais são necessárias antecipadamente porque o <code>smbclient</code> precisa delas para listar compartilhamentos. Até a confirmação final, nem <code>/etc/pve/storage.cfg</code> nem <code>/etc/fstab</code> são tocados."
|
||||
},
|
||||
"modes": {
|
||||
"heading": "Selector de métodos de montagem (duas opções, marca uma ou ambas)",
|
||||
"intro": "Após selecionar o compartilhamento e validar credenciais, o ProxMenux mostra uma lista de verificação com os dois métodos de montagem. Pode marcar um ou ambos. Se carregar em OK sem marcar nada, a janela reaparece até escolher pelo menos uma opção ou carregar em Cancelar para sair do fluxo.",
|
||||
"headerMethod": "Método",
|
||||
"headerMount": "Caminho de montagem",
|
||||
"headerUi": "Visível no Datacenter > Armazenamento",
|
||||
"headerUseCase": "Caso de uso típico",
|
||||
"rows": [
|
||||
{
|
||||
"method": "<strong>Como armazenamento Proxmox (pvesm)</strong>",
|
||||
"mountRich": "<code>/mnt/pve/<storage-id></code> (gerido pela Proxmox)",
|
||||
"ui": "Sim",
|
||||
"useCase": "Backups, ISOs, modelos LXC — qualquer coisa que precise aparecer na interface de usuário Proxmox. Discos de VM ao vivo são tecnicamente suportados, mas desencorajados em CIFS (bloqueio semântico)."
|
||||
},
|
||||
{
|
||||
"method": "<strong>Host somente fstab</strong>",
|
||||
"mountRich": "<code>/mnt/<path></code> com uid/gid/file_mode aberto",
|
||||
"ui": "Não",
|
||||
"useCaseRich": "Disponibilize o compartilhamento aos LXCs por bind mount <em>sem</em> registrar armazenamento Proxmox. Permissões locais abertas facilitam o acesso dos CTs sem privilégios, mas o servidor SMB ainda precisa autorizar a gravação pelo usuário autenticado."
|
||||
},
|
||||
{
|
||||
"method": "<strong>Ambos</strong>",
|
||||
"mount": "Ambos os caminhos acima (dois pontos de montagem da mesma exportação CIFS)",
|
||||
"ui": "Sim",
|
||||
"useCase": "Você quer a integração de UI E um caminho de host-side estável com permissões abertas para LXC binding-mounts. A montagem pvesm usa padrões Proxmox; a montagem fstab aplica o uid/gid/file_mode aberto separadamente."
|
||||
}
|
||||
],
|
||||
"bothTitle": "«Ambos» cria dois pontos de montagem CIFS",
|
||||
"bothBody": "pvesm monta em <code>/mnt/pve/<id></code> com as opções padrão do Proxmox. fstab monta em <code>/mnt/<path></code> com <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> para acesso local por bind mounts LXC. O servidor SMB ainda impõe os privilégios do usuário da montagem. Dois pontos de montagem não garantem duas conexões TCP separadas."
|
||||
},
|
||||
"pvesmBranch": {
|
||||
"heading": "Método A — Armazenagem Proxmox (pvesm)",
|
||||
"intro": "Se o <em>Como armazenamento Proxmox</em> estiver marcado, o ProxMenux roda o fluxo original do pvesm:",
|
||||
"items": [
|
||||
"<strong>Storage ID</strong> — <code>cifs-<server-ip-with-dashes></code> por omissão. Apenas letras, dígitos, <code>-</code> e <code>_</code>.",
|
||||
"<strong>Tipos de conteúdo</strong> — esta lista ProxMenux oferece <strong>6</strong> opções. Omite <code>rootdir</code> em relação ao NFS; é uma escolha do script, não uma proibição de sistemas de arquivos raiz LXC em todas as versões do backend CIFS Proxmox:"
|
||||
],
|
||||
"headerType": "Tipo de conteúdo",
|
||||
"headerAllows": "O que permite",
|
||||
"rows": [
|
||||
{
|
||||
"type": "import",
|
||||
"allows": "Importação de imagens de disco (selecionada por padrão)."
|
||||
},
|
||||
{
|
||||
"type": "backup",
|
||||
"allowsRich": "Arquivos de backup VM e CT (<code>vzdump</code>)."
|
||||
},
|
||||
{
|
||||
"type": "iso",
|
||||
"allows": "Instalação de imagens ISO."
|
||||
},
|
||||
{
|
||||
"type": "vztmpl",
|
||||
"allows": "Modelos LXC."
|
||||
},
|
||||
{
|
||||
"type": "images",
|
||||
"allowsRich": "Imagens de disco das VMs em uso — <strong>aviso no diálogo</strong>, veja abaixo."
|
||||
},
|
||||
{
|
||||
"type": "snippets",
|
||||
"allows": "Scripts de hook e snippets cloud-init."
|
||||
}
|
||||
],
|
||||
"warnTitle": "Discos de VM vivos em CIFS",
|
||||
"warnBody": "Selecionar <code>images</code> mostra um aviso ProxMenux: CIFS/SMB pode causar problemas de bloqueio em operações com discos de VMs. O script recomenda NFS, mas permite continuar. Backups e ISOs são usos comuns de CIFS. Avalie bloqueios, snapshots, migração e carga antes de usar CIFS para <code>images</code>.",
|
||||
"credsTitle": "Onde o pvesm armazena credenciais",
|
||||
"credsBody": "A senha não é gravada em <code>/etc/pve/storage.cfg</code>. O Proxmox salva credenciais em texto simples em <code>/etc/pve/priv/storage/<storage-id>.pw</code>, na área privada do sistema de arquivos do cluster, legível apenas por <code>root</code> (modo <code>0600</code>); elas são protegidas por permissões de acesso, não por criptografia. Após mudar a senha no servidor, use <code>pvesm set <id> --password <new></code> ou remova e adicione o armazenamento pelo ProxMenux."
|
||||
},
|
||||
"fstabBranch": {
|
||||
"heading": "Método B — Montagem fstab da máquina",
|
||||
"intro": "Se <em>Somente montagem fstab no host</em> estiver selecionado, o ProxMenux pede o caminho e as opções persistentes, cria um arquivo de credenciais exclusivo de root no modo usuário, monta o compartilhamento e grava a entrada em <code>/etc/fstab</code>:",
|
||||
"items": [
|
||||
"<strong>Caminho de montagem no host</strong> — padrão <code>/mnt/<share-name></code>. Deve ser um caminho absoluto. Se algo já está montado lá, ou existe uma entrada fstab, ProxMenux oferece para substituí-lo.",
|
||||
"<strong>Opções de montagem</strong> — <em>Leitura/gravação</em> (padrão: <code>rw,uid=0,gid=0,file_mode=0777,dir_mode=0777,iocharset=utf8,nofail,_netdev</code>), <em>Somente leitura</em> (<code>file_mode=0555,dir_mode=0555</code>), <em>Personalizado</em> (informe suas opções). O script recomenda uid/gid/file_mode abertos para gravação por bind mounts LXC."
|
||||
],
|
||||
"credsTitle": "Arquivo de credenciais (modo de usuário)",
|
||||
"credsBody": "No modo usuário, o ProxMenux cria um arquivo de credenciais exclusivo de root em <code>/etc/samba/credentials/<server>_<share>.cred</code> (modo <code>0600</code>) com linhas <code>username=</code> e <code>password=</code>. A entrada fstab o referencia pela opção <code>credentials=</code>; a senha em texto simples não aparece em <code>/etc/fstab</code>. No modo convidado, adiciona <code>guest</code> e não cria arquivo de credenciais.",
|
||||
"appliesIntro": "Uma vez confirmado, o script:",
|
||||
"applies": [
|
||||
"<code>mkdir -p</code> o caminho de montagem.",
|
||||
"<code>mount -t cifs -o <opts>,credentials=<file></code> (ou <code>guest</code>) <code>//<srv>/<share> <path></code>.",
|
||||
"Escreve uma entrada de uma linha para <code>/etc/fstab</code>: <code>//<srv>/<share> <path> cifs <opts> 0 0</code>.",
|
||||
"Executa o <code>systemctl daemon-reload</code> para que o systemd apanhe a nova entrada do fstab."
|
||||
],
|
||||
"lxcTitle": "Usando a montagem fstab de um LXC sem privilégios",
|
||||
"lxcBody": "As opções CIFS <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> abrem as verificações locais de permissões para bind mounts LXC. ACLs do servidor e a semântica Unix/POSIX negociada ainda podem afetar o acesso. <strong>Nada é alterado no contêiner</strong>: nenhum <code>chown</code> no CT, grupos ou edições de <code>/etc/lxc</code>. A linha <code>mp</code> é gerenciada na configuração Proxmox do CT. Use o comando <code>pct set</code> exibido ou o <mountLink>LXC Mount Manager</mountLink>.",
|
||||
"noUiTitle": "A montagem do fstab NÃO é um armazenamento Proxmox",
|
||||
"noUiBody": "A montagem de fstab do hospedeiro é invisível para a interface web Proxmox — por design. Ele não aparece no <em>Datacenter > Storage</em>, você não pode selecioná-lo no criador do VM / CT, e as tarefas de backup do Proxmox não podem segmentá-lo. É puramente um caminho do sistema de arquivos host. Se você também quiser integração com UI, marque os métodos <em>ambos</em> no coletor."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"pvesmIntro": "O método A (pvesm) mapeia para:",
|
||||
"fstabUserIntro": "Método B (fstab, user auth) — arquivo de credenciais + montagem:",
|
||||
"fstabGuestIntro": "Método B (fstab, guest auth) — nenhum arquivo de credenciais:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver armazenamentos CIFS e montagens do host",
|
||||
"body": "Mostra armazenamentos CIFS registrados (<code>pvesm status | awk ''$2 == \"cifs\"''</code>) com servidor, compartilhamento, conteúdo, usuário ou <em>Convidado</em>, caminho e estado. As senhas <strong>nunca são exibidas</strong>. <strong>Nota:</strong> outra seção lista montagens fstab do host, opções, caminho do arquivo de credenciais e estado ativo/inativo. Para verificar manualmente, use <code>findmnt -t cifs</code> ou <code>grep cifs /etc/fstab</code>."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Remover armazenamento CIFS ou montagem do host",
|
||||
"body": "O seletor oferece armazenamentos pvesm e montagens fstab do host. Para pvesm executa <code>pvesm remove <storage-id></code> e o Proxmox remove as credenciais associadas. Para fstab tenta <code>umount <path></code>, remove a entrada de <code>/etc/fstab</code> e as credenciais em <code>/etc/samba/credentials/</code>, depois o diretório vazio se possível. Se a desmontagem falhar, é preciso desmontar manualmente ou reiniciar. <strong>O servidor Samba remoto e seus arquivos não são alterados</strong>.",
|
||||
"warnTitle": "Fazer backup das dependências primeiro",
|
||||
"warnBody": "VMs, CTs ou tarefas de backup que referenciam este armazenamento por ID irá falhar após a remoção. Mover / soltar essas referências antes de remover o armazenamento."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Teste a conectividade do Samba",
|
||||
"body": "Executa um passe diagnóstico sobre cada armazenamento CIFS registrado no Proxmox: verifica se o <code>smbclient</code> está disponível, pings cada servidor, sonda portas 445 e 139, tenta uma lista de convidados, e relata a própria visão do Proxmox (<code>pvesm status</code>). \"Requer autenticação\" na lista de convidados significa que seu servidor só expõe compartilhamentos a usuários autenticados — normal para a maioria das configurações do NAS."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"noServersTitle": "\"Nenhum servidor Samba encontrado na rede\"",
|
||||
"noServersBody": "Auto-descoberta usa <code>nmap -p 139,445</code>. O servidor pode estar em uma subrede diferente, firewalled, ou somente acessível pelo hostname (mDNS / WINS). Use a opção <em>Manual</em> com o IP ou hostname.",
|
||||
"noSharesTitle": "\"Nenhuma partilha acessível encontrada\"",
|
||||
"noSharesBody": "<code>smbclient -L</code> não devolveu nada para estas credenciais. Causas: o usuário não tem permissão para listar compartilhamentos (tentar com credenciais de administrador uma vez, ou digitar o nome do compartilhamento manualmente), o servidor tem visibilidade de compartilhamento desabilitada, ou as credenciais estão erradas. O script permite digitar o nome do compartilhamento manualmente neste caso.",
|
||||
"denyTitle": "A montagem do Proxmox falhou com o NT_STATUS_ACCESS_DENIED",
|
||||
"denyBody": "As credenciais pvesm armazenadas estão fora de sincronia com o servidor Samba (senha alterada, conta desativada, domínio / grupo de trabalho descompasso). Reentrar credenciais com <code>pvesm set <id> --username <u> --password <p></code> ou remover e re-adicionar de ProxMenux. Se o servidor estiver em um domínio AD, adicione <code>--domain <DOMAIN></code> à chamada <code>pvesm set</code>.",
|
||||
"sleepTitle": "\"host está em baixo\" ou o estado de armazenamento fica inativo à noite",
|
||||
"sleepBody": "Alguns aparelhos NAS colocam SMB para dormir agressivamente. <code>pvestatd</code> então vê o armazenamento como inativo até que o primeiro acesso acorde o NAS. Se isto é cosmético, nada está partido. Se isso causar falhas de backup, desativar a desconexão ociosa do SMB no NAS ou agendar backups fora da janela de sono.",
|
||||
"lxcNoWriteTitle": "LXC desprivilegiado não pode escrever no caminho do fstab",
|
||||
"lxcNoWriteBody": "Confira as opções pretendidas em <code>findmnt /mnt/<path></code>, como <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code>. A falta de privilégios locais de gravação pode bloquear UIDs LXC mapeados. Reaplique o perfil RW ou ajuste as opções personalizadas. Confira também os privilégios do usuário SMB no servidor e se extensões Unix/POSIX fornecem modos do servidor; modos locais abertos não ignoram ACLs do servidor.",
|
||||
"fstabBootTitle": "A montagem do fstab não aparece após reiniciar",
|
||||
"fstabBootBody": "O script adiciona <code>nofail,_netdev</code> para que um compartilhamento faltando no boot não bloqueie a inicialização. Se a montagem nunca aparecer: confirme que a rede está acessível (<code>ping <server></code>), verifique <code>journalctl -u remote-fs.target</code>, verifique se o arquivo de credenciais ainda existe (<code>ls -l /etc/samba/credentials/</code>) e é legível, e tente <code>mount -a</code> manualmente."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "NFS partilha como armazenamento Proxmox",
|
||||
"tail": " — página de irmãos com o mesmo padrão de fluxo (método A pvesm + método B fstab) e trade-offs lado a lado."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "Gerenciador de montagem LXC",
|
||||
"tailRich": " — montar a via apenas para fstab <code>/mnt/<path></code> num ou mais contentores."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-client",
|
||||
"label": "Cliente Samba em LXC",
|
||||
"tail": " — alternativa: montagem Samba directamente a partir de dentro de um contentor privilegiado (sem passar pelo host)."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox NFS, Samba, iSCSI & LXC Pontos de montagem — Armazenamento e Compartilhamento ProxMenux",
|
||||
"description": "Integre armazenamento externo e local ao Proxmox VE e compartilhe pastas entre o host e os contêineres LXC. Adicione compartilhamentos NFS, Samba (CIFS) e destinos iSCSI como armazenamento Proxmox, configure bind mounts LXC com o Mount Manager e execute clientes e servidores NFS ou Samba dentro dos contêineres.",
|
||||
"ogTitle": "Proxmox NFS, Samba, iSCSI e LXC pontos de montagem — Armazenamento e partilha",
|
||||
"ogDescription": "Integre o armazenamento externo/local em Proxmox VE — NFS, Samba, registo iSCSI e bind mounts LXC e partilha de rede.",
|
||||
"twitterTitle": "Proxmox NFS, Samba, iSCSI | ProxMenux",
|
||||
"twitterDescription": "Adicionar NFS / Samba / iSCSI como armazenamento Proxmox e compartilhar pastas entre host e LXC."
|
||||
},
|
||||
"header": {
|
||||
"title": "Gerenciador de armazenamento e compartilhamento",
|
||||
"description": "Integre armazenamento externo ou local ao Proxmox VE e compartilhe pastas entre o host e os contêineres LXC. Três grupos de ferramentas: integração do armazenamento do host (registro no próprio Proxmox), LXC Mount Manager (bind mounts com tratamento prático de permissões) e compartilhamento de rede LXC (fluxos de cliente e servidor NFS ou Samba para casos específicos).",
|
||||
"section": "Armazenamento e compartilhamento"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Para que serve este menu",
|
||||
"body": "O Gerenciador de disco funciona no nível de <em> discos físicos individuais</em>. O Storage & Share Manager funciona um nível acima — ele <strong>registra pools de armazenamento e compartilhamentos de rede no Proxmox</strong> (para que a interface e o criador de VMs possam usá-los) e <strong>configura o compartilhamento de arquivos entre o host e seus containers</strong>."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir o menu",
|
||||
"body": "No menu principal do ProxMenux, selecione <strong>Storage & Share Manager</strong>. Você verá isto:",
|
||||
"imageAlt": "Menu de gerenciamento de armazenamento e compartilhamento com blocos HOST e LXC"
|
||||
},
|
||||
"groups": {
|
||||
"heading": "Três grupos de ferramentas",
|
||||
"intro": "O menu se divide em três grupos. <strong>Integração do armazenamento do host</strong> registra armazenamento externo ou local no próprio Proxmox. O <strong>LXC Mount Manager</strong> é a principal ferramenta para compartilhar pastas com contêineres: um fluxo de bind mount que trata o mapeamento de UIDs de CTs sem privilégios no lado do host. <strong>Compartilhamento de rede LXC</strong> cobre quatro cenários adicionais em que um contêiner precisa <em>utilizar</em> ou <em>expor</em> compartilhamentos NFS ou Samba diretamente.",
|
||||
"hostTitle": "Armazenagem da máquina",
|
||||
"hostBody": "Registre armazenamento externo e local em Proxmox via <code>pvesm add …</code>. Uma vez registrado, o armazenamento aparece na UI Proxmox e está disponível para os criadores VM e CT.",
|
||||
"hostItems": [
|
||||
"NFS / Samba / iSCSI externos → armazenamento Proxmox",
|
||||
"Disco local → Diretório Proxmox ou armazenamento ZFS",
|
||||
"Diretório local compartilhado (para bind mounts entre CTs)"
|
||||
],
|
||||
"lxcMountTitle": "Gerenciador de montagem LXC",
|
||||
"lxcMountBody": "A principal ferramenta de compartilhamento LXC. Disponibiliza diretórios do host nos contêineres por bind mount com <code>pct set -mpN</code> e trata as particularidades de permissão dos CTs sem privilégios, sem criar grupos ou usuários dentro do contêiner.",
|
||||
"lxcMountItems": [
|
||||
"Funciona com CTs com e sem privilégios",
|
||||
"Oferece <code>o+rwx</code> no diretório do host para UIDs sem privilégios",
|
||||
"Corrige as montagens CIFS / NFS existentes, se necessário"
|
||||
],
|
||||
"lxcNetTitle": "Partilha de rede LXC",
|
||||
"lxcNetBody": "Quatro fluxos adicionais para contêineres que precisam utilizar ou expor compartilhamentos NFS ou Samba diretamente. Todos exigem um contêiner <strong>com privilégios</strong>.",
|
||||
"lxcNetItems": [
|
||||
"<strong>Cliente</strong> NFS / Samba (utiliza compartilhamentos externos)",
|
||||
"NFS / Samba <strong>server</strong> (exponha pastas CT)"
|
||||
]
|
||||
},
|
||||
"host": {
|
||||
"heading": "Integração ao armazenamento da máquina",
|
||||
"intro": "Registo de armazenamento em Proxmox. Cada opção chama <code>pvesm add …</code> sob o capô, então o armazenamento aparece em <strong>Datacenter → Storage</strong> e fica disponível para os criadores VM / CT.",
|
||||
"options": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"icon": "Network",
|
||||
"title": "Adicionar a partilha NFS como armazenamento Proxmox",
|
||||
"description": "Registe uma exportação NFS externa como armazenamento Proxmox com pvesm add nfs. O Proxmox trata da montagem, sem entradas adicionais em fstab."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"icon": "Share2",
|
||||
"title": "Adicionar a partilha Samba como armazenamento Proxmox",
|
||||
"description": "Registe uma partilha Samba ou CIFS externa como armazenamento Proxmox com pvesm add cifs. O Proxmox trata da montagem e das credenciais."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-iscsi",
|
||||
"icon": "Database",
|
||||
"title": "Adicionar o alvo iSCSI como armazenamento Proxmox",
|
||||
"description": "Conecte-se a um alvo externo iSCSI e registre-o como armazenamento Proxmox (dispositivo de bloco) para imagens de disco VM."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-disk",
|
||||
"icon": "HardDrive",
|
||||
"title": "Adicionar o disco local como armazenamento Proxmox",
|
||||
"description": "Formate um disco local SATA / SAS / NVMe e registre-o como armazenamento Proxmox do tipo diretório ou pool ZFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-shared",
|
||||
"icon": "FolderOpen",
|
||||
"title": "Adicionar diretório compartilhado na máquina",
|
||||
"description": "Criar um directório da máquina destinado a ser montado em várias CTs. Não é um armazenamento Proxmox — puramente um recurso do lado do host para as montagens de ligação LXC."
|
||||
}
|
||||
]
|
||||
},
|
||||
"lxcMount": {
|
||||
"heading": "Gerenciador de montagem LXC",
|
||||
"intro": "A principal ferramenta para compartilhar pastas entre o host Proxmox e os recipientes LXC. Ele usa <code>pct set -mpN</code> para vincular-montar um diretório host no recipiente, e lida com as peculiaridades de permissão de CTs sem privilégios no lado host (nenhum grupo ou usuários são criados dentro do recipiente).",
|
||||
"card": {
|
||||
"title": "LXC pontos de montagem (Host ↔ CT)",
|
||||
"description": "Disponibilize qualquer diretório do host num contentor LXC por bind mount com pct set -mpN. Funciona com CT com ou sem privilégios, oferece chmod o+rwx e ACL para o diretório no host e corrige montagens CIFS ou NFS existentes quando necessário."
|
||||
}
|
||||
},
|
||||
"lxcNet": {
|
||||
"heading": "Partilha de rede LXC",
|
||||
"intro": "Use estes fluxos quando um contêiner precisa <em>ser</em> um endpoint NFS ou Samba: utilizar um compartilhamento externo (cliente) ou expor suas próprias pastas (servidor). Para a maioria das necessidades de compartilhamento (bind mounts host ↔ CT), o <mountLink>LXC Mount Manager</mountLink> é mais simples e não requer contêineres com privilégios.",
|
||||
"options": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"icon": "Download",
|
||||
"title": "Cliente NFS em LXC",
|
||||
"description": "Monte compartilhamentos NFS externos de dentro de um contêiner LXC com privilégios. Oferece descoberta automática, persistência em /etc/fstab e desmontagem limpa."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-client",
|
||||
"icon": "Download",
|
||||
"title": "Cliente Samba em LXC",
|
||||
"description": "Monte compartilhamentos Samba / CIFS de dentro de um contêiner LXC com privilégios. Credenciais armazenadas com proteção e descoberta automática disponível."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-server",
|
||||
"icon": "Upload",
|
||||
"title": "Servidor NFS em LXC",
|
||||
"description": "Exportar pastas sobre NFS de dentro de um recipiente privilegiado LXC."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-server",
|
||||
"icon": "Upload",
|
||||
"title": "Servidor Samba em LXC",
|
||||
"description": "Expor pastas sobre SMB / CIFS de dentro de um recipiente privilegiado LXC."
|
||||
}
|
||||
]
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Requisito de contentor privilegiado",
|
||||
"body": "Os quatro fluxos de <strong>compartilhamento de rede LXC</strong> acima exigem um contêiner <strong>com privilégios</strong>. Os scripts exigem esse modo suportado antes de configurar serviços e ferramentas de montagem (<code>nfs-kernel-server</code>, <code>smbd</code>, <code>mount.nfs</code>, <code>mount.cifs</code>). Para compartilhar arquivos entre o host e um CT sem privilégios, use o <mountLink>LXC Mount Manager</mountLink>: ele faz bind mounts e ajusta permissões no host, permitindo leitura e gravação sem configurar esses serviços ou ferramentas dentro do contêiner."
|
||||
},
|
||||
"unprivExplain": {
|
||||
"title": "Como ProxMenux lida com permissões CT sem privilégios",
|
||||
"body": "Contêineres LXC sem privilégios deslocam seus UIDs em <strong>+100000</strong> no host (UID 0 do contêiner = UID 100000 do host, UID 1000 do contêiner = UID 101000 do host, …). Um arquivo criado por um usuário do contêiner aparece no host como <em>outros</em>, sem corresponder a um usuário ou grupo comum do host. O LXC Mount Manager oferece uma solução prática: em vez de alinhar UIDs/GIDs entre host e CT, propõe <code>chmod o+rwx</code> e ACLs correspondentes no diretório do host, para que qualquer UID mapeado possa ler e gravar. Para CIFS, remonta com <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code>; para NFS, configura um diretório gravável por todos com sticky bit e, se o servidor aplicar root squash, orienta sobre a correção necessária no servidor."
|
||||
},
|
||||
"scripts": {
|
||||
"heading": "Programas envolvidos",
|
||||
"intro": "Cada página inclui um link para o script que impulsiona seu fluxo. O arquivo abaixo é um auxiliar compartilhado que não está documentado como sua própria página, mas é usado por vários dos fluxos de compartilhamento de rede LXC:",
|
||||
"itemTail": " — validação do CT, seleção de pontos de montagem, verificação privilegiada e ajudadores universais de configuração de grupo compartilhados entre os fluxos cliente / servidor do LXC."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Pontos de montagem LXC (host ↔ contêiner) | Documentação ProxMenux",
|
||||
"description": "O LXC Mount Manager disponibiliza um diretório do host num ou mais contentores LXC por bind mount com pct set -mpN. Trata das particularidades dos contentores sem privilégios, corrige montagens CIFS e NFS no host e não altera nada dentro do contentor.",
|
||||
"ogTitle": "Pontos de montagem LXC (host ↔ contêiner) | Documentação ProxMenux",
|
||||
"ogDescription": "Disponibilize diretórios do host nos contêineres LXC por bind mount. Gerencia o mapeamento de UID sem privilégios de forma prática e corrige o acesso CIFS / NFS no host."
|
||||
},
|
||||
"header": {
|
||||
"title": "Pontos de montagem LXC (Host ↔ Container)",
|
||||
"description": "A ferramenta principal para partilhar pastas entre o host Proxmox e os contentores LXC. Disponibiliza um diretório do host num ou mais contentores por bind mount com a sintaxe nativa pct set -mpN. Resolve as particularidades dos privilégios no lado do host, sem alterar nada dentro dos contentores.",
|
||||
"section": "Armazenamento e Compartilhamento · LXC"
|
||||
},
|
||||
"intro": {
|
||||
"title": "O que isto faz",
|
||||
"body": "Pegue um diretório que vive no host Proxmox (uma pasta local, um compartilhamento NAS montado, um armazenamento gerenciado pelo Proxmox...) e faça com que ele apareça dentro de um container LXC em um caminho que você escolher, com permissões que funcionam mesmo para recipientes sem privilégios — sem tocar em nada dentro do container."
|
||||
},
|
||||
"bigPicture": {
|
||||
"heading": "Como funciona (o quadro geral)",
|
||||
"intro": "Um bind mount instrui o kernel a mostrar o diretório <code>X</code> do host também no caminho <code>Y</code> do contêiner. Sem cópia, sincronização ou transferência de rede: ambos veem os <em>mesmos arquivos</em> ao mesmo tempo.",
|
||||
"sourceLabel": "Host Proxmox",
|
||||
"sourceDetail": "/mnt/data\n(sua pasta)",
|
||||
"targetLabel": "Contentor LXC",
|
||||
"targetDetail": "/mnt/data\n(mostra aqui)",
|
||||
"arrowLabel": "bind mount",
|
||||
"outro": "O caminho do hospedeiro à esquerda e o caminho do recipiente à direita podem ser diferentes — por exemplo, o <code>/mnt/nas-films</code> no hospedeiro pode tornar-se <code>/media/films</code> no interior do recipiente. O script adiciona a entrada para a configuração do recipiente (<code>/etc/pve/lxc/<ctid>.conf</code>) usando o próximo índice <code>mpN</code> livre, com dois padrões seguros preparados em:",
|
||||
"items": [
|
||||
"<code>shared=1</code> — informa ao Proxmox que os dados são compartilhados e não devem ser migrados com o CT. A opção não replica dados: o mesmo caminho e os mesmos dados devem estar disponíveis no nó de destino.",
|
||||
"<code>backup=0</code> — exclui o monte de ligação dos backups do <code>vzdump</code> (os dados vivem no host, você faz backup separadamente)."
|
||||
]
|
||||
},
|
||||
"perms": {
|
||||
"heading": "Manuseamento de permissões – a parte smart",
|
||||
"intro": "Montagens de ligação são fáceis em princípio. A parte difícil são as permissões: um container <strong>sem privilégios</strong> LXC muda cada UID por <strong>+100000</strong>, então um arquivo criado dentro do container pelo usuário 1000 aparece no host como UID 101000 — um UID que ninguém no host possui. Para fazer isso funcionar sem alinhar UIDs entre hosts e contêineres, o ProxMenux aplica o truque certo de \"abrir permissões\" no lado <em>host</em>, dependendo do tipo de diretório que você escolheu:",
|
||||
"headerType": "Tipo de pasta da máquina",
|
||||
"headerAction": "O que o script oferece para fazer",
|
||||
"localType": "Pasta local",
|
||||
"localTypeSub": "Por exemplo: /mnt/data",
|
||||
"localActionRich": "<code>chmod o+rwx</code> + <code>setfacl o::rwx</code> no diretório da máquina. Só é oferecido se o CT não for privilegiado e as permissões atuais forem insuficientes.",
|
||||
"cifsType": "CIFS / SMB montados",
|
||||
"cifsTypeSub": "Por exemplo: /mnt/pve/cifs-…",
|
||||
"cifsActionRich": "Remontar com <code>uid=0, gid=0, file_mode=0777, dir_mode=0777</code> para que o CT (qualquer UID) possa ler e escrever a partilha. O <code>/etc/fstab</code> está actualizado.",
|
||||
"nfsType": "NFS montado",
|
||||
"nfsTypeSub": "Por exemplo: /mnt/pve/nfs-…",
|
||||
"nfsActionRich": "<code>chmod 1777</code> + <code>setfacl o::rwx</code> na montagem NFS. Não é possível substituir o squashing do lado do servidor — se mesmo o host root não consegue gravar, você é guiado para corrigir a exportação no servidor NFS.",
|
||||
"privTitle": "Recipientes privilegiados não precisam de nada disto.",
|
||||
"privBody": "Para recipientes privilegiados, UID 0 no CT é UID 0 no host — raiz dentro do CT pode ler e escrever o diretório do host diretamente sem qualquer truque de permissão. O script detecta isso e ignora o passo de \"abrir permissões\".",
|
||||
"noCtTitle": "O script nunca modifica nada dentro do recipiente",
|
||||
"noCtBody": "Todos os ajustes de permissão acontecem no sistema de arquivos <strong>host</strong>. Sem <code>pct exec</code> chowns, sem grupos criados no CT, sem fstab dentro do recipiente. Se você reutilizar o diretório bind-mounted em um CT diferente mais tarde, as mesmas permissões se aplicam automaticamente — sem configuração por contêiner."
|
||||
},
|
||||
"writes": {
|
||||
"heading": "O que escreve ProxMenux — e o que não escreve",
|
||||
"intro": "Uma confusão comum quando se liga a montagem em um CT: as pessoas assumem que ProxMenux deve estar escrevendo entradas <code>lxc.idmap</code> em <code>/etc/pve/lxc/<CTID>.conf</code>. <strong>Não faz.</strong> Apenas uma linha é anexada a esse arquivo — a própria montagem de ligação:",
|
||||
"outro": "A linha de saída que você vê no final da execução, <em>\"Contêiner sem privilégios — Offset UID: 100000\"</em>, é puramente informacional - ele apenas lhe diz que o CT está usando o mapeamento padrão sem privilégios do Proxmox (root in CT = UID 100000 no host). O script não configura nada em torno dele.",
|
||||
"twoWaysHeading": "As duas maneiras de fazer as permissões funcionar — e por que ProxMenux escolhe uma",
|
||||
"headerApproach": "Aproximação",
|
||||
"headerChanges": "O que muda",
|
||||
"headerWhen": "Quando caber",
|
||||
"hostType": "Permissões no host",
|
||||
"hostTypeSub": "(o que este script faz)",
|
||||
"hostChangesRich": "<code>chmod o+rwx</code> + <code>setfacl o::rwx</code> no diretório da máquina. Os UIDs mapeados do CT (100000+) caem no balde \"outros\", então abrir o <em>outros</em> é suficiente.",
|
||||
"hostWhen": "Acesso genérico a pastas partilhadas de qualquer CT. Vários CTs que partilham o mesmo directório da máquina. Simples e reutilizável.",
|
||||
"idmapTypeRich": "<code>lxc.idmap</code>",
|
||||
"idmapTypeSub": "(não utilizado por este programa)",
|
||||
"idmapChangesRich": "Mapeamento personalizado de UID/GID em <code>/etc/pve/lxc/<CTID>.conf</code> mais entradas correspondentes de <code>/etc/subuid</code> + <code>/etc/subgid</code> na máquina. CT deve ser reiniciado em cada mudança.",
|
||||
"idmapWhenRich": "Você precisa de um UID <em>específico</em> dentro do CT para mapear para um UID <em>específico</em> no host (por exemplo: <code>media:1000</code> no CT deve possuir arquivos como <code>media:1000</code> no host para que NFS não squash). Uma configuração mais rígida, normalmente só vale a pena para esse cenário exato.",
|
||||
"idmapTipTitle": "Quando você realmente precisa de lxc.idmap",
|
||||
"idmapTipBody": "Use mapeamento manual quando arquivos gravados no CT precisarem aparecer no host com um UID/GID numérico específico, por exemplo para compartilhar proprietário com um usuário do host. Isso não ignora <code>all_squash</code> do NFS; o servidor ainda decide a identidade anônima e os privilégios. Adicione entradas <code>lxc.idmap</code> manualmente se necessário. A linha do bind mount é independente dessas entradas."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "Do menu principal do ProxMenux, abra o <strong>Storage & Share Manager → Configure pontos de montagem LXC (Host ↔ Container)</strong>. Você verá este sub-menu com três opções:",
|
||||
"imageAlt": "Menu do gestor de montagem LXC — Adicionar / Ver / Remover"
|
||||
},
|
||||
"addFlow": {
|
||||
"heading": "Adicionar uma montagem — fluxo total",
|
||||
"intro": "A visão técnica, para quando você deseja saber exatamente o que cada diálogo faz:"
|
||||
},
|
||||
"sources": {
|
||||
"heading": "O que você pode escolher como diretório de máquina",
|
||||
"intro": "O seletor de diretório do host é o mais completo na seção Armazenamento & Share. Analisa quatro fontes e apresenta uma lista deduplicada:",
|
||||
"headerSource": "Origem",
|
||||
"headerWhere": "De onde vem",
|
||||
"headerLabel": "Rótulo no menu",
|
||||
"rows": [
|
||||
{
|
||||
"source": "Montagens de rede ativa",
|
||||
"whereRich": "Compartilhamentos CIFS / NFS atualmente montados, lidos de <code>/proc/mounts</code>.",
|
||||
"labelRich": "<code>NFS [used/size]</code> ou <code>CIFS/SMB [used/size]</code>"
|
||||
},
|
||||
{
|
||||
"source": "Montagens de fstab inactivas",
|
||||
"whereRich": "Definido em <code>/etc/fstab</code> mas não montado atualmente.",
|
||||
"labelRich": "<code>fstab(off)-NFS</code> / <code>fstab(off)-CIFS/SMB</code>"
|
||||
},
|
||||
{
|
||||
"source": "Directórios locais",
|
||||
"whereRich": "Directórios Sub sob <code>/mnt</code> que não são montagens de rede.",
|
||||
"labelRich": "<code>Local [size]</code>"
|
||||
},
|
||||
{
|
||||
"source": "Armazenagens Proxmox",
|
||||
"whereRich": "Caminhos de armazenamento sob <code>/mnt/pve/*</code> (NFS / CIFS registrados via <code>pvesm</code>).",
|
||||
"labelRich": "<code>PVE-NFS</code> / <code>PVE-CIFS/SMB</code> / <code>Proxmox-Storage</code>"
|
||||
},
|
||||
{
|
||||
"source": "Entrada manual",
|
||||
"where": "Qualquer outra coisa — digite você mesmo o caminho absoluto.",
|
||||
"labelRich": "<em>Inserir caminho manualmente</em>"
|
||||
}
|
||||
],
|
||||
"tipTitle": "Caminhos internos do Proxmox são filtrados",
|
||||
"tipBody": "O catador ignora explicitamente os caminhos internos do Proxmox (<code>/mnt/pve/local</code>, <code>/mnt/pve/local-lvm</code>, <code>/mnt/pve/backup</code>, ...) — esses estão reservados para os internos do Proxmox e você não deve ligá-los. Apenas os armazenamentos adicionados ao utilizador aparecem."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"privIntro": "Para um recipiente privilegiado — o caso mais simples, sem truques de permissão:",
|
||||
"unprivLocalIntro": "Para um contêiner sem privilégios com uma pasta de máquinas local — abra as permissões na máquina primeiro:",
|
||||
"unprivCifsIntro": "Para um recipiente sem privilégios com uma partilha CIFS já montada na máquina:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver pontos de montagem",
|
||||
"body": "Lista todas as entradas <code>mpN</code> em cada recipiente neste host Proxmox, agrupados por CT id e mostrando caminho do host → caminho do container além de quaisquer opções extras. Somente leitura — útil como uma verificação de sanidade antes de adicionar ou remover qualquer coisa."
|
||||
},
|
||||
"remove": {
|
||||
"heading": "Remover um ponto de montagem",
|
||||
"body": "Escolha o contentor, escolha a entrada <code>mpN</code>, confirme. O script executa <code>pct set --delete mpN</code> para soltar a entrada da configuração CT e oferece para reiniciar o recipiente se estiver em execução. O diretório host e seu conteúdo são <strong>preservados</strong> — você pode re-adicionar o monte mais tarde (ou anexar o mesmo diretório a um outro CT).",
|
||||
"warnTitle": "Recipientes em funcionamento ao vivo precisam de ser reiniciados para que as alterações produzam efeitos",
|
||||
"warnBody": "Ambos adicionando e removendo pontos de montagem só se tornam visíveis dentro do recipiente após um reinício. O script oferece um clique <code>pct reboot</code> no final de cada operação; você pode recusar e reiniciar manualmente mais tarde."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"noMountTitle": "A montagem aparece em pct config, mas não dentro do contentor",
|
||||
"noMountBody": "As montagens de ligação só se ligam quando o contentor começa. Se você adicionou a montagem enquanto o CT estava em execução, reinicie-a (<code>pct reboot <ctid></code>). Se já estiver reiniciado e ainda estiver em falta, verifique <code>pct config <ctid></code> para confirmar que o item existe e o caminho da máquina contém um diretório.",
|
||||
"noWriteTitle": "Container pode ver o diretório, mas não pode escrever",
|
||||
"noWriteBody": "Quase sempre uma questão de permissões. Para contêineres não privilegiados, execute a correção de permissão do script novamente — os ACLs do diretório host podem ter sido reiniciados por outra ferramenta (rsync, restauração de backup, manual <code>chmod</code>). Para o CIFS, verifique novamente as opções de montagem no host: <code>findmnt /mnt/pve/cifs-…</code>, procure por valores <code>uid=</code> / <code>gid=</code> / <code>file_mode=</code>.",
|
||||
"alreadyTitle": "\"Este caminho já é usado como ponto de montagem neste recipiente\"",
|
||||
"alreadyBody": "Escolheste o mesmo caminho que já está ligado a um directório de máquinas diferente. Escolha um caminho diferente do recipiente ou remova primeiro o ponto de montagem existente.",
|
||||
"nfsTitle": "Acesso NFS bloqueado mesmo após a aplicação da correção host",
|
||||
"nfsIntro": "Seu servidor NFS está esmagando root ou todas as conexões. O script pode detectar isso (ele tenta escrever um arquivo de teste do host) e mostra orientação do lado do servidor. Duas correções comuns do lado do servidor para a exportação:",
|
||||
"nfsItems": [
|
||||
"<code>no_root_squash</code> — CTs privilegiados podem escrever diretamente.",
|
||||
"<code>all_squash,anonuid=65534,anongid=65534</code> — para CTs sem privilégios."
|
||||
],
|
||||
"nfsOutro": "Essas alterações acontecem no servidor NFS (TrueNAS, Synology, sua exportação personalizada, ...), não no Proxmox.",
|
||||
"fstabOffTitle": "Montar entradas \"fstab( off)\" não faz nada",
|
||||
"fstabOffBody": "O seletor mostra entradas <code>fstab(off)-</code> quando uma montagem de rede é definida em fstab mas não é montada atualmente. O script permite- lhe vincular- montar o caminho, mas o diretório estará vazio até que você realmente monte o compartilhamento (<code>mount <path></code> na máquina). Monta-o primeiro, depois liga-o ao CT."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/host-local-shared",
|
||||
"label": "Adicionar a Pasta Partilhada na Máquina",
|
||||
"tailRich": " — primeiro passo típico: preparar um <code>/mnt/shared</code> no hospedeiro antes de o ligar em uma ou mais CTs aqui."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "Adicionar a partilha NFS como armazenamento Proxmox",
|
||||
"extraHref": "/docs/storage-share/host-samba",
|
||||
"extraLabel": "Adicionar a partilha Samba como armazenamento Proxmox",
|
||||
"joiner": " / ",
|
||||
"tailRich": " — registar um compartilhamento externo no Proxmox primeiro, em seguida, ligar-montar o seu caminho <code>/mnt/pve/<id></code> para o CT aqui."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"label": "Cliente NFS em LXC",
|
||||
"extraHref": "/docs/storage-share/lxc-samba-client",
|
||||
"extraLabel": "Cliente Samba em LXC",
|
||||
"joiner": " / ",
|
||||
"tail": " — a alternativa quando pretende que o próprio CT monte o compartilhamento (requer um contentor privilegiado)."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "NFS cliente em LXC | ProxMenux Documentação",
|
||||
"description": "Monte compartilhamentos NFS diretamente em um contêiner LXC Proxmox com o ProxMenux. Instala nfs-common automaticamente, oferece descoberta na LAN, montagens persistentes via /etc/fstab e padrões de inicialização seguros. Exige um contêiner com privilégios.",
|
||||
"ogTitle": "NFS cliente em LXC | ProxMenux Documentação",
|
||||
"ogDescription": "Monte compartilhamentos NFS em um contêiner LXC com privilégios. Descoberta automática, persistência em /etc/fstab e padrões de inicialização seguros."
|
||||
},
|
||||
"header": {
|
||||
"title": "Cliente NFS em LXC",
|
||||
"description": "Monte compartilhamentos NFS diretamente de dentro de um recipiente Proxmox LXC. O container torna-se um cliente NFS real — fala com o servidor NFS através da rede, executa mount.nfs, escreve para /etc/fstab. ProxMenux instala nfs-common para você, ajuda você a encontrar servidores e exportações, e aplica padrões de inicialização seguros.",
|
||||
"section": "Armazenamento e Compartilhamento · LXC"
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Recipiente privilegiado necessário",
|
||||
"body": "O cliente do kernel <code>mount.nfs</code> precisa de recursos (<code>SYS_ADMIN</code> no mínimo) que os recipientes LXC desprivilegiados não expõem. O script impõe isso — ele pede que você escolha um CT e <strong>interrompe a execução se ele não for privilegiado</strong>. Se você precisar da partilha dentro de um CT sem privilégios, monte-a no host Proxmox primeiro (com a partilha <hostNfsLink>NFS como armazenamento Proxmox</hostNfsLink>) e ligue-a ao CT com o gestor de montagem <mountLink>LXC</mountLink>."
|
||||
},
|
||||
"what": {
|
||||
"heading": "O que isto faz",
|
||||
"body": "Ao contrário do LXC Mount Manager — o que faz com que o CT veja algo <em>via</em> o host Proxmox — este script dá ao contêiner seu <strong>próprio cliente NFS</strong>: ele fala NFS sobre a rede, monta compartilhamentos diretamente do servidor NFS, e armazena a montagem no <code>/etc/fstab</code> do contêiner. A máquina Proxmox não está no caminho dos dados.",
|
||||
"diagramServerLabel": "Servidor NFS",
|
||||
"diagramServerDetail": "/export/data",
|
||||
"diagramHostLabel": "Host Proxmox",
|
||||
"diagramHostDetail": "(apenas uma\nponte de rede)",
|
||||
"diagramCtLabel": "LXC (com privilégios)",
|
||||
"diagramCtDetail": "/mnt/data\nmount.nfs dentro do CT",
|
||||
"diagramArrow": "NFS",
|
||||
"twoWaysTitle": "Duas maneiras de dar um acesso CT NFS — escolha uma",
|
||||
"twoWaysBind": "<strong>Bind mount pelo host</strong> (<mountLink>LXC Mount Manager</mountLink>): o host monta NFS uma vez e cada CT recebe o mesmo caminho por bind mount. Funciona com CTs sem privilégios. Recomendado quando vários CTs precisam do mesmo compartilhamento.",
|
||||
"twoWaysDirect": "<strong>Montagem NFS direta no CT</strong> (esta página): o CT monta NFS por conta própria. Exige um CT com privilégios. Útil quando o CT precisa gerenciar sua própria conexão e credenciais ou quando cada CT usa um servidor diferente."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "Do menu principal do ProxMenux, abra o <strong>Storage & Share Manager → Configure o cliente NFS em LXC (somente privilegiado)</strong>. O ProxMenux primeiro pede- lhe para escolher o <strong> alvo CT</strong> (e inicia- o se parar); aborta se não tiver privilégios. Uma vez que o CT é selecionado, você vê este sub-menu:",
|
||||
"imageAlt": "Menu do Gerenciador de Clientes NFS — Montagem / Vista / Desmontagem / Conectividade de teste"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado (Fluxo do Monte)"
|
||||
},
|
||||
"fstabFlags": {
|
||||
"heading": "Por que essas bandeiras fstab",
|
||||
"intro": "Para montagens permanentes o script adiciona três bandeiras além das opções padrão NFS: <code>_netdev,x-systemd.automount,noauto</code>. Cada um resolve um problema de tempo de inicialização real:",
|
||||
"headerFlag": "Bandeira",
|
||||
"headerEffect": "O que ele faz",
|
||||
"rows": [
|
||||
{
|
||||
"flag": "_netdev",
|
||||
"effect": "Informa ao sistema de inicialização que a montagem precisa da rede. A inicialização não fica esperando essa montagem antes de a rede estar disponível."
|
||||
},
|
||||
{
|
||||
"flag": "x-systemd.automount",
|
||||
"effectRich": "Cria uma unidade de montagem automática systemd: a montagem só acontece na primeira vez que algo acessa o <code>/mnt/<path></code>. O servidor NFS não acessível no arranque não para o servidor CT."
|
||||
},
|
||||
{
|
||||
"flag": "noauto",
|
||||
"effect": "Evita a montagem imediata na inicialização. Com a unidade automount acima, a montagem só ocorre no primeiro acesso."
|
||||
}
|
||||
],
|
||||
"netEffectTitle": "Efeito líquido",
|
||||
"netEffectBody": "O sistema de arquivos NFS é montado no <em>primeiro acesso</em> em vez de imediatamente durante a inicialização. Se o servidor estiver offline, o acesso pode esperar ou falhar e afetar serviços que dependem do caminho. Automount reduz a dependência na inicialização, mas não garante que todos os serviços do CT fiquem imunes a uma falha NFS."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"body": "Replicar todo o fluxo à mão – cada comando roda <strong> dentro do CT</strong> via <code>pct exec <ctid> --</code> ou diretamente via <code>pct enter <ctid></code>:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver as montagens actuais",
|
||||
"body": "Lista cada ponto de montagem NFS ativo dentro do CT (<code>mount | grep nfs</code>) mais cada linha NFS no CT <code>/etc/fstab</code>. Para cada entrada do fstab, o status de montagem ao vivo é mostrado — útil para detectar montagens permanentes que não apareceram no boot."
|
||||
},
|
||||
"unmount": {
|
||||
"heading": "Desmontar a partilha NFS",
|
||||
"body": "Combina as montagens ativas e as entradas do fstab em uma lista, permite escolher uma e <strong>remove a linha correspondente de <code>/etc/fstab</code></strong>. O script <em>não</em> executa <code>umount</code> na montagem ativa. Em vez disso, ele informa que uma reinicialização CT é necessária para que a desmontagem entre em vigor.",
|
||||
"warnTitle": "O script remove entradas do fstab, sem desmontar os sistemas de arquivos ativos",
|
||||
"warnBody": "Esta é uma escolha de design deliberada: <code>umount</code> em uma montagem ocupada falha com \"dispositivo ocupado\" quando algo dentro do CT ainda está usando. A remoção da entrada do fstab garante que a montagem desapareça de forma limpa no próximo início do CT. Se você quiser a montagem desfeita <em>agora</em> e você tem certeza de que nada está usando-o, execute <code>pct exec <ctid> -- umount /mnt/<path></code> à mão após o script terminar."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Teste de conectividade NFS",
|
||||
"body": "Passo diagnóstico dentro do CT: confirma <code>nfs-common</code> está instalado, <code>rpcbind</code> está em execução, lista as montagens atuais NFS, em seguida, itera sobre cada servidor NFS referenciado em fstab e verifica ping → porta 2049 → <code>showmount -e</code>. Boa primeira paragem quando uma montagem permanente falha em subir."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"privTitle": "Contêiner com privilégios necessário (o script interrompe a execução)",
|
||||
"privBody": "O CT selecionado não tem privilégios. O cliente do kernel NFS precisa de capacidade <code>SYS_ADMIN</code> que CTs desprivilegiadas não expõem. Ou converter o CT para a página privilegiada (Disco Manager & conversão está documentada no disco <importLink>Importar para LXC</importLink>) ou usar o caminho alternativo descrito no aviso no topo desta página.",
|
||||
"aptTitle": "apt-get install nfs-common fails",
|
||||
"aptIntro": "O script assume uma família Debian CT (<code>apt-get</code>). Se o CT roda Alpine / Arch / Rocky / Alma, o passo de instalação falha silenciosamente. Instale o cliente NFS manualmente para essa distribuição:",
|
||||
"aptItems": [
|
||||
"Alpine: <code>apk add nfs-utils</code>",
|
||||
"Arch: <code>pacman -S nfs-utils</code>",
|
||||
"Rocky / Alma: <code>dnf install nfs-utils</code>"
|
||||
],
|
||||
"aptOutro": "Em seguida, execute novamente o script ProxMenux — o passo de instalação salta quando as ferramentas já estão presentes.",
|
||||
"portTitle": "\"NFS port (2049) is not accessible\"",
|
||||
"portBody": "O Ping teve sucesso, mas o <code>nc -z <server> 2049</code> falhou de dentro do CT. Verifique se o serviço NFS está em execução no servidor, que o firewall permite o 2049 da rede do CT, e que o CT realmente tem uma rota de rede válida (Tente <code>pct exec <ctid> -- ip route</code>).",
|
||||
"bootTitle": "A montagem permanente tem sucesso mas não aparece no arranque",
|
||||
"bootBody": "Quase sempre uma de: a rede não está pronta quando o CT monta (as bandeiras <code>_netdev,x-systemd.automount,noauto</code> do script corrigem isto — reajustar a montagem através do script se você escreveu a linha fstab à mão sem elas), o servidor não é acessível no arranque (auto-mount espera pelo primeiro acesso — isso é normal), ou DNS não está resolvido no arranque (use o IP do servidor, não o seu nome de máquina).",
|
||||
"squashTitle": "Servidor squashes root, sem acesso de gravação de dentro CT",
|
||||
"squashIntro": "A exportação NFS usa <code>root_squash</code> (o padrão) e o CT escreve como root. Duas opções:",
|
||||
"squashItems": [
|
||||
"Lado do servidor: alterar a exportação para <code>no_root_squash</code> (apenas se você confiar no CT).",
|
||||
"No CT: grave como um usuário não root aceito pelo servidor ou ajuste o proprietário do compartilhamento com chown."
|
||||
],
|
||||
"squashOutro": "ProxMenux não pode corrigir isso — é política de servidor."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "Pontos de montagem LXC (Host ↔ Container)",
|
||||
"tail": " — a alternativa para os TAC não privilegiados: montagem no hospedeiro, ligação em CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-client",
|
||||
"label": "Cliente Samba em LXC",
|
||||
"tail": " — página relacionada com o mesmo padrão para compartilhamentos SMB / CIFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-server",
|
||||
"label": "Servidor NFS em LXC",
|
||||
"tailRich": " — o inverso: expor pastas <em>de</em> um CT por NFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "Compartilhamento NFS como armazenamento Proxmox",
|
||||
"tail": " — registrar o compartilhamento no próprio Proxmox em vez de dentro de um único CT."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Servidor NFS em LXC − Documentação ProxMenux",
|
||||
"description": "Compartilhe pastas por NFS a partir de um contêiner LXC Proxmox com o ProxMenux. Instala nfs-kernel-server automaticamente e configura o grupo comum sharedfiles, /etc/exports, ACLs de rede e desinstalação completa. Exige um contêiner com privilégios.",
|
||||
"ogTitle": "Servidor NFS em LXC − Documentação ProxMenux",
|
||||
"ogDescription": "Execute um servidor NFS em um LXC com privilégios, com o grupo comum sharedfiles, ACLs de rede e desinstalação completa."
|
||||
},
|
||||
"header": {
|
||||
"title": "Servidor NFS em LXC",
|
||||
"description": "Execute um servidor NFS do kernel em um contêiner LXC Proxmox e disponibilize pastas a outras máquinas da rede. O ProxMenux instala nfs-kernel-server, configura o grupo comum sharedfiles para facilitar o compartilhamento entre vários CTs com privilégios, gerencia /etc/exports e oferece desinstalação completa.",
|
||||
"section": "Armazenamento e Compartilhamento · LXC"
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Recipiente privilegiado necessário",
|
||||
"body": "<code>nfs-kernel-server</code> precisa montar o sistema de arquivos do kernel <code>nfsd</code> em <code>/proc/fs/nfsd</code>. Isso exige <code>CAP_SYS_ADMIN</code> no espaço de nomes do kernel do host, não apenas no espaço de usuários do contêiner. LXC sem privilégios não têm essa capacidade: <code>rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory)</code>; o systemd indica falha de dependência em <code>nfs-server.service</code>. O script exige um CT com privilégios e <strong>interrompe a execução se o CT não tiver privilégios</strong>. Outra opção é executar o servidor NFS em uma VM."
|
||||
},
|
||||
"what": {
|
||||
"heading": "O que isto faz",
|
||||
"body": "É o sentido inverso da página de <em>cliente NFS</em>: o CT se torna um <strong>servidor NFS</strong> e disponibiliza uma pasta própria a outros CTs, ao host Proxmox, a VMs ou a máquinas físicas.",
|
||||
"diagramServerLabel": "LXC (privilegiado) — Servidor NFS",
|
||||
"diagramServerDetail": "/mnt/data\n(pasta compartilhada)\n\nchown root:sharedfiles\nchmod 2775 (SGID)\n\nnfs-kernel-server\n+ rpcbind em execução",
|
||||
"diagramClientLabel": "Qualquer cliente na rede",
|
||||
"diagramClientDetail": "outro CT, o host,\num VM, uma máquina física…",
|
||||
"diagramArrow": "Exportação NFS"
|
||||
},
|
||||
"shared": {
|
||||
"heading": "O grupo comum « sharedfiles »",
|
||||
"body": "Antes de exportar a pasta, ProxMenux cria um grupo chamado <code>sharedfiles</code> com <strong>GID 101000</strong> dentro do recipiente, adiciona cada usuário regular para ele, em seguida, define o diretório de exportação para <code>root:sharedfiles</code> com modo <code>2775</code>. O <code>2</code> na frente é o bit SGID — cada arquivo ou pasta criado dentro automaticamente herda o grupo <code>sharedfiles</code>.",
|
||||
"gidTitle": "Por que GID 101000 especificamente",
|
||||
"gidBody": "Com o mapeamento padrão de IDs do LXC (+100000), o GID 101000 do host aparece como GID <strong>1000</strong> em um CT sem privilégios. Este fluxo de servidor usa um CT <strong>com privilégios</strong>, sem deslocamento. Dois CTs com privilégios que usem <code>sharedfiles</code> com GID 101000 compartilham o mesmo ID numérico de grupo.",
|
||||
"remapTitle": "A criação legada de usuários «remap_*» é ignorada em CTs com privilégios",
|
||||
"remapBody": "O ramo legado para CTs sem privilégios criaria usuários <code>remap_<uid></code> com UID <code><uid> + 100000</code>, todos em <code>sharedfiles</code>, para usuários comuns e UIDs habituais (33, 1000, 1001, 1002). Esse deslocamento <code>+100000</code> não se aplica aos CTs <strong>com privilégios</strong> exigidos aqui, então o script ignora o ramo. A ausência de contas <code>remap_*</code> em <code>getent passwd</code> é esperada e não indica falha."
|
||||
},
|
||||
"defaults": {
|
||||
"heading": "Opções de exportação padrão — leia isto primeiro",
|
||||
"warnTitle": "Opções padrão incluem no_root_squash",
|
||||
"warnBody": "O ProxMenux usa por padrão <code>rw,sync,no_subtree_check,'<'strong'>'no_root_squash'<'/strong'>'</code>. <strong>Qualquer usuário root de um cliente pode gravar como root na exportação.</strong> Use isso apenas em uma LAN doméstica confiável. Se o CT for acessível por uma rede não confiável (VPS ou VLAN não confiável), <strong>troque a opção por <code>root_squash</code></strong> no diálogo de opções personalizadas."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "No menu principal, abra <strong>Storage & Share Manager → Configure NFS Server in LXC</strong>. Apenas CTs com privilégios são listados. Escolha o CT de destino; o script o inicia se estiver parado e recusa CTs sem privilégios. O menu oferece cinco opções.",
|
||||
"imageAlt": "NFS Server Manager menu — Criar / Ver / Apagar / Estado / Desinstalar"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado (Criar fluxo)"
|
||||
},
|
||||
"network": {
|
||||
"heading": "Rede ACL — quem pode montar a partilha",
|
||||
"intro": "<code>/etc/exports</code> define quais clientes podem montar a exportação. O diálogo oferece três modos:",
|
||||
"headerMode": "Modo",
|
||||
"headerValue": "Valor escrito em /etc/exports",
|
||||
"headerWhen": "Quando o escolher",
|
||||
"rows": [
|
||||
{
|
||||
"mode": "Rede local",
|
||||
"value": "192.168.0.0/16",
|
||||
"whenRich": "Para redes domésticas ou SOHO comuns. Abrange todos os endereços <code>192.168.*.*</code>."
|
||||
},
|
||||
{
|
||||
"mode": "Sub- rede personalizada",
|
||||
"value": "o seu CIDR (por ex. 10.0.0.0/24)",
|
||||
"when": "Quando sua LAN não está em 192.168.x.x ou você quer um escopo mais apertado."
|
||||
},
|
||||
{
|
||||
"mode": "Uma máquina",
|
||||
"value": "o seu IP (por exemplo: 10.0.0.42)",
|
||||
"when": "Apenas uma máquina específica deve montar. Muito restritivo."
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {
|
||||
"heading": "Opções de exportação explicadas",
|
||||
"headerOption": "Opção",
|
||||
"headerEffect": "O que ele faz",
|
||||
"rows": [
|
||||
{
|
||||
"option": "rw / ro",
|
||||
"effect": "Permitir o acesso de leitura-escrita ou somente leitura para conectar clientes."
|
||||
},
|
||||
{
|
||||
"option": "sync",
|
||||
"effectRich": "Responde às solicitações de gravação somente depois que os dados estão no disco. Mais seguro que <code>async</code>, com perda de desempenho."
|
||||
},
|
||||
{
|
||||
"option": "no_subtree_check",
|
||||
"effect": "Ignora a verificação, em cada solicitação, de que o arquivo ainda está na subárvore exportada. É mais rápido e evita problemas quando arquivos são renomeados durante a operação."
|
||||
},
|
||||
{
|
||||
"option": "no_root_squash",
|
||||
"effectRich": "<strong>Confia no root do cliente.</strong> Um cliente que monta como root grava como root no servidor. Útil em LANs confiáveis, por exemplo para preservar proprietários nos backups. Substitua por <code>root_squash</code> se não confiar totalmente em todas as máquinas autorizadas pela ACL de rede."
|
||||
}
|
||||
]
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"body": "Replicar todo o fluxo à mão – cada comando roda <strong> dentro do CT</strong> via <code>pct exec <ctid> --</code> ou <code>pct enter <ctid></code>:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver as exportações actuais",
|
||||
"body": "Exibe <code>/etc/exports</code> de dentro do CT, ignorando comentários e linhas vazias, e mostra cada exportação com sua ACL de rede e opções. Útil para verificar as pastas expostas antes de compartilhar o IP do CT."
|
||||
},
|
||||
"delete": {
|
||||
"heading": "Apagar uma exportação",
|
||||
"body": "Lista cada linha em <code>/etc/exports</code> para seleção, remove a escolhida (<code>sed -i</code>), executa <code>exportfs -ra</code> e reinicia <code>nfs-kernel-server</code>. A pasta em si e seu conteúdo ficam intactos."
|
||||
},
|
||||
"status": {
|
||||
"heading": "Verificar o estado do NFS",
|
||||
"body": "Passe diagnóstico: confirma <code>nfs-kernel-server</code> e <code>rpcbind</code> estão instalados e ativos, imprime saída <code>exportfs -v</code>, lista sessões de NFS ativos (<code>showmount -a</code>) e conexões atuais do cliente."
|
||||
},
|
||||
"uninstall": {
|
||||
"heading": "Desinstalar servidor NFS",
|
||||
"body": "Limpeza completa após confirmação: para e desativa <code>nfs-kernel-server</code> e <code>rpcbind</code>, esvazia <code>/etc/exports</code>, remove os pacotes NFS com <code>apt-get purge</code>, remove o grupo <code>sharedfiles</code> e os usuários <code>remap_*</code> e encerra processos restantes. As <strong>pastas exportadas não são apagadas</strong>; apenas a configuração NFS e os pacotes são removidos.",
|
||||
"warnTitle": "O script pára na linha de exportação, não nos dados",
|
||||
"warnBody": "<em>Excluir exportação</em> e <em>Desinstalar servidor NFS</em> removem a configuração da exportação. Os dados da pasta são preservados. Para apagá-los também, use explicitamente <code>rm -rf</code> após o término do script e faça backup antes se alguém ainda puder precisar deles."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"privTitle": "Exige um contêiner com privilégios (o script interrompe a execução)",
|
||||
"privBody": "O CT selecionado não tem privilégios. <code>nfs-kernel-server</code> não pode começar aí porque a montagem <code>/proc/fs/nfsd</code> exige <code>CAP_SYS_ADMIN</code> no espaço de nomes do kernel da máquina, e na <code>nfsd</code> o módulo também não está exposto ao espaço de nomes do contêiner (<code>modprobe nfsd</code> de dentro retorna <code>FATAL: Module nfsd not found</code>). Se ignorar a verificação, verás <code>rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory)</code> no diário e nenhuma porta NFS será aberta. As únicas opções viáveis são: converter o CT para privilegiado, ou mover o NFS servidor para uma VM.",
|
||||
"aptTitle": "apt-get install falha",
|
||||
"aptIntro": "O script assume uma família Debian CT. No Alpine / Arch / Rocky / Alma, instale os pacotes do servidor NFS à mão:",
|
||||
"aptItems": [
|
||||
"Alpine: <code>apk add nfs-utils</code>",
|
||||
"Arch: <code>pacman -S nfs-utils</code>",
|
||||
"Rocky / Alma: <code>dnf install nfs-utils</code>"
|
||||
],
|
||||
"aptOutro": "Execute novamente o script ProxMenux; a instalação é ignorada quando as ferramentas já estão presentes.",
|
||||
"aclTitle": "O cliente não pode montar: 'acesso negado pelo servidor'",
|
||||
"aclBody": "O IP do cliente está fora da ACL de rede configurada. Recrie a exportação com uma sub-rede maior ou adicione o IP exato do cliente. Atenção: por meio de NAT, o cliente pode aparecer com o IP WAN do roteador em vez do próprio IP LAN. Verifique no servidor com <code>tcpdump -n port 2049</code>.",
|
||||
"ownTitle": "Os arquivos escritos pelo cliente aparecem com propriedade estranha no servidor",
|
||||
"ownIntro": "Duas possibilidades:",
|
||||
"ownItems": [
|
||||
"Com <code>no_root_squash</code> (padrão), o cliente root escreve como root no servidor. Os arquivos são de propriedade do <code>root:sharedfiles</code> graças ao SGID na pasta.",
|
||||
"Usuários não-root do cliente escrevem como seu próprio UID/GID. Se seu UID não existe no servidor, os arquivos aparecem com números brutos (por exemplo: <code>1234:1234</code>). Use o grupo <code>sharedfiles</code> no cliente também, ou alinhem UIDs nos sistemas que compartilham arquivos."
|
||||
],
|
||||
"noShowTitle": "Servidor acessível mas showmount não devolve nada",
|
||||
"noShowBody": "Depois de editar <code>/etc/exports</code>, você deve recarregar a tabela de exportação com <code>exportfs -ra</code> e reiniciar <code>nfs-kernel-server</code> — o script faz ambos, mas se você editou o arquivo à mão, faça você mesmo. Também confirmar o firewall no CT (e no host Proxmox) permite TCP/UDP 2049 e na porta rpcbind (111)."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"label": "Cliente NFS em LXC",
|
||||
"tail": " — o inverso: montar compartilhamentos NFS externos no CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-server",
|
||||
"label": "Servidor Samba em LXC",
|
||||
"tail": " — página relacionada, mesmo padrão com SMB / CIFS em vez de NFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-nfs",
|
||||
"label": "Compartilhamento NFS como armazenamento Proxmox",
|
||||
"tailRich": " — quando o CT estiver exportando, registre o compartilhamento NFS no Proxmox para que apareça em <em>Datacenter → Storage</em>."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Cliente Samba em LXC | ProxMenux Documentação",
|
||||
"description": "Monte compartilhamentos Samba / CIFS em um contêiner LXC Proxmox com o ProxMenux. Instala cifs-utils e smbclient automaticamente e oferece descoberta de servidores, armazenamento protegido de credenciais e montagens persistentes via /etc/fstab. Exige um contêiner com privilégios.",
|
||||
"ogTitle": "Cliente Samba em LXC | ProxMenux Documentação",
|
||||
"ogDescription": "Monte compartilhamentos Samba / CIFS em um contêiner LXC com privilégios. Descoberta automática, arquivo de credenciais protegido e persistência em /etc/fstab."
|
||||
},
|
||||
"header": {
|
||||
"title": "Cliente Samba em LXC",
|
||||
"description": "Monte compartilhamentos Samba (SMB / CIFS) diretamente de dentro de um recipiente Proxmox LXC. O container torna-se um cliente CIFS real — fala com o servidor Samba através da rede, executa mount.cifs, armazena credenciais com segurança e escreve para /etc/fstab. ProxMenux instala cifs-utils + smbclient para você e valida credenciais contra o servidor antes de montar.",
|
||||
"section": "Armazenamento e Compartilhamento · LXC"
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Recipiente privilegiado necessário",
|
||||
"body": "O cliente do kernel <code>mount.cifs</code> precisa de recursos (<code>SYS_ADMIN</code> no mínimo) que os recipientes LXC desprivilegiados não expõem. O script impõe isso — ele pede que você escolha um CT e <strong>interrompe a execução se ele não for privilegiado</strong>. Se você precisar da partilha dentro de um CT sem privilégios, monte-a no host Proxmox primeiro (com a partilha <hostSambaLink>Samba / CIFS como armazenamento Proxmox</hostSambaLink>) e ligue-a ao CT com o gestor de montagem <mountLink>LXC</mountLink>."
|
||||
},
|
||||
"what": {
|
||||
"heading": "O que isto faz",
|
||||
"body": "O contêiner fala CIFS através da rede e monta a partilha por conta própria. O host Proxmox é apenas a ponte de rede — ele não vê ou gerencia a montagem.",
|
||||
"diagramServerLabel": "Servidor Samba",
|
||||
"diagramServerDetail": "//srv/share",
|
||||
"diagramHostLabel": "Host Proxmox",
|
||||
"diagramHostDetail": "(apenas uma\nponte de rede)",
|
||||
"diagramCtLabel": "LXC (com privilégios)",
|
||||
"diagramCtDetail": "/mnt/share\nmount.cifs dentro de CT",
|
||||
"diagramArrow": "CIFS",
|
||||
"twoWaysTitle": "Duas maneiras de dar um CT uma quota Samba — escolha uma",
|
||||
"twoWaysBind": "<strong>Bind mount pelo host</strong> (<mountLink>LXC Mount Manager</mountLink>): o host monta CIFS uma vez e cada CT recebe o mesmo caminho por bind mount. Funciona com CTs sem privilégios. Recomendado quando vários CTs precisam do mesmo compartilhamento.",
|
||||
"twoWaysDirect": "<strong>Montagem CIFS direta no CT</strong> (esta página): o CT monta CIFS por conta própria. Exige um CT com privilégios. Útil quando cada CT deve gerenciar suas credenciais ou usar um servidor diferente."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "Do menu principal do ProxMenux, abra o <strong>Storage & Share Manager → Configure o cliente Samba em LXC (somente privilegiado)</strong>. O ProxMenux primeiro pede- lhe para escolher o <strong> alvo CT</strong> (e inicia- o se parar); aborta se não tiver privilégios. Uma vez que o CT é selecionado, você vê este sub-menu:",
|
||||
"imageAlt": "Menu Samba Client Manager — Montar / Ver / Desmontar / Teste de conectividade"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado (Fluxo do Monte)"
|
||||
},
|
||||
"creds": {
|
||||
"heading": "Onde vive a senha",
|
||||
"body": "O ProxMenux <strong>não inclui a senha no comando de montagem</strong> nem em <code>/etc/fstab</code>. Cria um arquivo de credenciais no CT. Esse arquivo contém credenciais em texto simples protegidas por permissões somente para root; não é criptografado:",
|
||||
"whyTitle": "Por que um arquivo separado em vez de fstab",
|
||||
"whyBody": "O módulo CIFS aceita opções <code>username=</code> / <code>password=</code> em linha em fstab, mas qualquer um que possa ler <code>/etc/fstab</code> vê a senha em claro. Colocar credenciais em um arquivo somente root e apontar fstab para ele (<code>credentials=</code>) mantém a senha fora da configuração legível no mundo."
|
||||
},
|
||||
"options": {
|
||||
"heading": "Opções de montagem explicadas",
|
||||
"headerOption": "Opção",
|
||||
"headerEffect": "O que ele faz",
|
||||
"rows": [
|
||||
{
|
||||
"option": "rw / ro",
|
||||
"effect": "Modo de leitura e gravação ou somente leitura para toda a montagem."
|
||||
},
|
||||
{
|
||||
"option": "file_mode=0664",
|
||||
"effect": "Permissões relatadas para arquivos via CIFS. O padrão permite ao proprietário + grupo escrever, outros lerem."
|
||||
},
|
||||
{
|
||||
"option": "dir_mode=0775",
|
||||
"effect": "Permissões relatadas para pastas. O padrão permite que o proprietário + grupo entre e crie, outros atravessam."
|
||||
},
|
||||
{
|
||||
"option": "iocharset=utf8",
|
||||
"effect": "Força UTF-8 para nomes de arquivos recebidos pela rede, evitando caracteres corrompidos em nomes não ASCII."
|
||||
},
|
||||
{
|
||||
"option": "credentials=file",
|
||||
"effect": "Leia o nome de usuário / senha do arquivo (adicionado automaticamente para autenticação do usuário)."
|
||||
},
|
||||
{
|
||||
"option": "guest",
|
||||
"effect": "Autentique como convidado, sem credenciais necessárias (adicionadas automaticamente quando o convidado é escolhido)."
|
||||
},
|
||||
{
|
||||
"option": "_netdev",
|
||||
"effect": "Diz ao sistema de init que esta montagem precisa da rede. O Boot não bloqueia a espera."
|
||||
},
|
||||
{
|
||||
"option": "x-systemd.automount",
|
||||
"effect": "Montagem preguiçosa: apenas monta no primeiro acesso. O servidor CIFS não acessível no arranque não para o CT."
|
||||
},
|
||||
{
|
||||
"option": "noauto",
|
||||
"effect": "Evita a montagem imediata na inicialização. Com a unidade automount, o sistema de arquivos só é montado no primeiro acesso."
|
||||
}
|
||||
],
|
||||
"netEffectTitle": "Efeito líquido das bandeiras fstab",
|
||||
"netEffectBody": "O sistema de arquivos CIFS é montado no <em>primeiro acesso</em> em vez de imediatamente durante a inicialização. Se o servidor estiver offline, o acesso pode esperar ou falhar e afetar serviços que dependem do caminho. Automount reduz a dependência na inicialização, mas não garante que todos os serviços do CT fiquem imunes a uma falha CIFS."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"body": "Replicar todo o fluxo à mão – cada comando roda <strong> dentro do CT</strong> via <code>pct exec <ctid> --</code> ou diretamente via <code>pct enter <ctid></code>:",
|
||||
"guestIntro": "Variante convidada — nenhum arquivo de credenciais necessário:"
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver as montagens actuais",
|
||||
"body": "Lista cada ponto de montagem CIFS ativo dentro do CT (<code>mount -t cifs</code>) mais cada linha CIFS no CT <code>/etc/fstab</code>. Para cada entrada do fstab é mostrado o status de montagem ao vivo — útil para detectar montagens permanentes que não apareceram no boot."
|
||||
},
|
||||
"unmount": {
|
||||
"heading": "Desmontar a partilha do Samba",
|
||||
"body": "Combina as montagens ao vivo e as entradas fstab em uma lista, permite que você escolha uma, e <strong> remove a linha correspondente de <code>/etc/fstab</code></strong> mais o arquivo de credenciais correspondentes. O script não executa <code>umount</code> na montagem ao vivo — em vez disso, ele lhe diz que uma reinicialização CT é necessária para que a desmontagem faça efeito.",
|
||||
"warnTitle": "O script remove entradas do fstab, sem desmontar os sistemas de arquivos ativos",
|
||||
"warnBody": "O mesmo design do cliente NFS: <code>umount</code> em uma montagem movimentada falha com o \"dispositivo ocupado\". A remoção da entrada do fstab garante que a montagem desapareça de forma limpa no próximo início do CT. Se você quiser o <em>agora</em>, execute <code>pct exec <ctid> -- umount /mnt/<path></code> à mão depois que o script terminar."
|
||||
},
|
||||
"test": {
|
||||
"heading": "Teste a conectividade do Samba",
|
||||
"body": "Passe diagnóstico dentro do CT: confirma <code>cifs-utils</code> é instalado, lista as montagens CIFS atuais, em seguida, para cada servidor referenciado em fstab verifica ping → portas 139/445 → guest listing. \"Requer autenticação\" no teste convidado é normal para qualquer servidor que não expõe compartilhamentos públicos."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"privTitle": "Contêiner com privilégios necessário (o script interrompe a execução)",
|
||||
"privBody": "O CT selecionado não tem privilégios. O cliente do kernel CIFS precisa de capacidade <code>SYS_ADMIN</code> que CTs desprivilegiadas não expõem. Ou converter o CT para privilegiado, ou usar o caminho alternativo descrito no aviso no topo desta página.",
|
||||
"aptTitle": "apt-get install fails",
|
||||
"aptIntro": "O script assume uma família Debian CT (<code>apt-get</code>). No Alpine / Arch / Rocky / Alma, instale o cliente CIFS à mão:",
|
||||
"aptItems": [
|
||||
"Alpine: <code>apk add cifs-utils samba-client</code>",
|
||||
"Arch: <code>pacman -S cifs-utils smbclient</code>",
|
||||
"Rocky / Alma: <code>dnf install cifs-utils samba-client</code>"
|
||||
],
|
||||
"aptOutro": "Em seguida, execute novamente o script ProxMenux — o passo de instalação salta quando as ferramentas já estão presentes.",
|
||||
"guestFallbackTitle": "\"O servidor conectou você como convidado em vez do usuário especificado\"",
|
||||
"guestFallbackBody": "A validação ativa do script captou um problema real de autenticação. O servidor aceitou a conexão, mas baixou para o hóspede porque as credenciais estão erradas. Causas comuns: erro no nome de usuário / senha, o usuário não existe no servidor, o usuário está bloqueado para fora, ou o grupo de trabalho / domínio é desigual. Execute novamente o fluxo e informe as credenciais com cuidado (a senha está escondida na janela).",
|
||||
"denyTitle": "\"NT_STATUS_ACCESS_DENIED\" na montagem",
|
||||
"denyBody": "As credenciais foram validadas, mas o compartilhamento nega acesso. Verifique no lado do servidor se o usuário tem permissões nesse compartilhamento específico (a validação só confirma login, não ACLs por compartilhamento). Verifique também se o servidor requer uma versão específica do protocolo SMB: anexe <code>vers=3.0</code> (ou <code>2.1</code>, <code>2.0</code>) às opções de montagem.",
|
||||
"utf8Title": "Nomes de arquivos UTF-8 / não ASCII aparecem corrompidos",
|
||||
"utf8Body": "As opções padrão incluem <code>iocharset=utf8</code>, mas algumas configurações de servidor reportam uma página de código inesperada. Se nomes de arquivos com acentos / símbolos olhar errado, também tente <code>nounix</code> (alguns servidores Linux Samba precisam disso quando o cliente também é Linux) ou definir o lado do servidor para <code>unix extensions = no</code>.",
|
||||
"bootTitle": "A montagem permanente tem sucesso mas não aparece no arranque",
|
||||
"bootBody": "Quase sempre uma de: a rede não está pronta quando o CT monta (as bandeiras <code>_netdev,x-systemd.automount,noauto</code> do script corrigem isso), o servidor é inacessível no boot (auto-mount espera pelo primeiro acesso – isso é normal), ou DNS não está resolvido no boot (use o IP do servidor, não seu hostname)."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-mount-points",
|
||||
"label": "Pontos de montagem LXC (Host ↔ Container)",
|
||||
"tail": " — a alternativa para os TAC não privilegiados: montagem no hospedeiro, ligação em CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-client",
|
||||
"label": "Cliente NFS em LXC",
|
||||
"tail": " — página relacionada com o mesmo padrão para compartilhamentos NFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-server",
|
||||
"label": "Servidor Samba em LXC",
|
||||
"tailRich": " — o inverso: expor pastas <em>de</em> um CT por Samba."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"label": "Samba / CIFS como armazenamento Proxmox",
|
||||
"tail": " — registrar o compartilhamento no próprio Proxmox em vez de dentro de um único CT."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Servidor Samba em LXC | ProxMenux Documentação",
|
||||
"description": "Execute um servidor Samba (SMB / CIFS) em um contêiner LXC Proxmox com o ProxMenux. Instala samba automaticamente e gerencia /etc/samba/smb.conf, usuários smbpasswd e o grupo sharedfiles para pastas em bind mounts. Exige um contêiner com privilégios.",
|
||||
"ogTitle": "Servidor Samba em LXC | ProxMenux Documentação",
|
||||
"ogDescription": "Disponibilize pastas por SMB/CIFS de um LXC com privilégios. Instalação automática, usuário smbpasswd e permissões adaptadas a bind mounts."
|
||||
},
|
||||
"header": {
|
||||
"title": "Servidor Samba em LXC",
|
||||
"description": "Execute um servidor Samba (SMB / CIFS) dentro de um container Proxmox LXC e exponha pastas para clientes Windows / macOS / Linux na rede. ProxMenux instala samba, cria um usuário Samba com smbpasswd, gerencia /etc/samba/smb.conf, e aplica permissões adaptadas a bind mounts quando a pasta compartilhada vem do host.",
|
||||
"section": "Armazenamento e Compartilhamento · LXC"
|
||||
},
|
||||
"privReq": {
|
||||
"title": "Recipiente privilegiado necessário",
|
||||
"body": "Samba personifica o usuário de conexão com <code>setgroups()</code> em cada conexão em árvore (no momento em que um cliente abre um compartilhamento). Em um LXC sem privilégios, o kernel rejeita esse syscall porque o espaço de nomes de usuário do container é criado com <code>setgroups=deny</code> — e o <code>smbd</code> responde abortando o processo de worker com <code>PANIC: sys_setgroups failed</code>. O resultado é que o <code>smbd</code> inicia e liga as portas 139/445, mas toda conexão com o cliente falha com o <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. O script impõe um CT privilegiado por esta razão e <strong>interrompe a execução se o CT não tiver privilégios</strong>. Não há correção limpa no lado do servidor; use um CT privilegiado ou execute Samba dentro de uma VM."
|
||||
},
|
||||
"what": {
|
||||
"heading": "O que isto faz",
|
||||
"body": "O contêiner torna-se um servidor SMB/CIFS: ele roda <code>smbd</code>, expõe uma pasta via <code>/etc/samba/smb.conf</code> e aceita conexões de cliente em portas <code>139</code> / <code>445</code>. Os clientes veem o compartilhamento em <code>\\\\<ct-ip>\\<share-name></code> no Windows Explorer, <code>smb://<ct-ip>/<share-name></code> no macOS Finder, ou via <code>mount.cifs</code> no Linux.",
|
||||
"diagramServerLabel": "LXC (privilegiado) — Servidor Samba",
|
||||
"diagramServerDetail": "/mnt/data\n(pasta compartilhada)\n\nsmbd + nmbd em execução\n\nUsuário: <username>\n(via smbpasswd)\n\nGrupo imposto:\nsharedfiles",
|
||||
"diagramClientLabel": "Qualquer cliente na rede",
|
||||
"diagramClientDetail": "Windows: \\\\<ip>\\<share>\nmacOS: smb://<ip>/<share>\nLinux: mount.cifs",
|
||||
"diagramArrow": "SMB / CIFS"
|
||||
},
|
||||
"perms": {
|
||||
"heading": "Dois caminhos de permissões, dependendo do tipo de pasta",
|
||||
"body": "Antes de adicionar o compartilhamento ao <code>smb.conf</code>, o script verifica se a pasta escolhida é uma montagem <strong>bind do host</strong> ou uma pasta <strong>local regular dentro do CT</strong> – e aplica diferentes permissões de propriedade em conformidade:",
|
||||
"headerType": "Tipo de pasta",
|
||||
"headerAction": "O que o script faz",
|
||||
"bindType": "Montagem de ligação da máquina",
|
||||
"bindTypeSubRich": "detectado através da saída <code>mount</code>",
|
||||
"bindActionRich": "Cria o grupo <code>sharedfiles</code> (padrão GID 999, dinâmico se tomado), adiciona o usuário Samba a ele, em seguida, <code>chown root:sharedfiles</code> + <code>chmod 2775</code> (SGID — novos arquivos herdam o grupo). Se o usuário ainda não consegue escrever, aplica <code>setfacl -m u:<user>:rwx</code>.",
|
||||
"localType": "Pasta local dentro do CT",
|
||||
"localTypeSub": "nenhuma montagem de ligação detectada",
|
||||
"localActionRich": "Propriedade padrão: <code>chown -R <user>:<user></code> + <code>chmod -R 755</code>. Nenhum grupo compartilhado é necessário porque nenhum outro CT escreve para esta pasta. Regressa ao <code>setfacl</code> se o acesso de escrita ainda estiver ausente.",
|
||||
"gidTitle": "GID para 'sharedfiles' difere do fluxo do servidor NFS",
|
||||
"gidBody": "O script do servidor Samba usa GID <strong>999</strong> para <code>sharedfiles</code>, enquanto o fluxo do servidor <nfsLink>NFS</nfsLink> usa GID <strong>101000</strong>. Se você executar ambos os servidores no mesmo CT e quiser um único grupo compartilhado em ambos os protocolos, edite um deles para corresponder ao outro após a instalação (por exemplo. <code>groupmod -g 101000 sharedfiles</code>) e reaplicar a propriedade nas pastas afetadas. Esta é uma incoerência conhecida nos scripts atuais."
|
||||
},
|
||||
"opening": {
|
||||
"heading": "Abrir a ferramenta",
|
||||
"body": "No menu principal, abra <strong>Storage & Share Manager → Configure Samba Server in LXC</strong>. Apenas CTs com privilégios são listados. Escolha o CT de destino; o script o inicia se estiver parado e recusa CTs sem privilégios. O menu oferece cinco opções.",
|
||||
"imageAlt": "Samba Server Manager menu — Criar / Ver / Apagar / Estado / Desinstalar"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Como o script é executado (Criar fluxo)"
|
||||
},
|
||||
"modes": {
|
||||
"heading": "Os três modos de partilha",
|
||||
"intro": "Cada modo escreve uma seção diferente em <code>smb.conf</code>. Todos os três incluem <code>valid users = <username></code> (sem anônimo), <code>force group = sharedfiles</code> (então novos arquivos pertencem ao grupo compartilhado) e <code>veto files = /lost+found/</code> (esconde-o de clientes).",
|
||||
"headerMode": "Modo",
|
||||
"headerBlock": "Bloco escrito para smb.conf",
|
||||
"rwMode": "Leitura e escrita",
|
||||
"roMode": "Somente leitura",
|
||||
"customMode": "Personalizado",
|
||||
"customBodyRich": "Você digita suas próprias diretivas em uma caixa de texto livre. ProxMenux ainda os envolve em um bloco <code>[share]</code> com o <code>path</code>, <code>valid users</code>, <code>force group</code> e <code>veto files</code> padrão."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Equivalente manual",
|
||||
"body": "Replicar todo o fluxo à mão – cada comando roda <strong> dentro do CT</strong> via <code>pct exec <ctid> --</code> ou <code>pct enter <ctid></code>:"
|
||||
},
|
||||
"connect": {
|
||||
"heading": "Conexão de clientes",
|
||||
"headerOs": "Sistema operativo do cliente",
|
||||
"headerHow": "Como conectar",
|
||||
"windowsOs": "Windows",
|
||||
"windowsHowRich": "Explorador de Arquivos → barra de endereço: <code>\\\\<ct-ip>\\<share-name></code>. Ou <em>Mapear unidade de rede</em> → marque «Conectar usando credenciais diferentes».",
|
||||
"macosOs": "macOS",
|
||||
"macosHowRich": "Finder → <em>Ir → Conecte-se ao servidor...</em> → <code>smb://<ct-ip>/<share-name></code>. Ou <code>mount_smbfs //user@<ct-ip>/<share> /mountpoint</code>.",
|
||||
"linuxOs": "Linux",
|
||||
"linuxHowRich": "<code>mount -t cifs //<ct-ip>/<share> /mnt/x -o username=<u>,password=<p>,iocharset=utf8</code>. Ou use o cliente <clientLink>Samba na página LXC</clientLink> se o cliente for outro Proxmox CT."
|
||||
},
|
||||
"view": {
|
||||
"heading": "Ver os compartilhamentos atuais",
|
||||
"body": "Analisa <code>/etc/samba/smb.conf</code> dentro do CT e lista todos os blocos <code>[share]</code> (passando <code>[global]</code>, <code>[homes]</code>, <code>[printers]</code>) com seu caminho. Útil como um inventário rápido."
|
||||
},
|
||||
"delete": {
|
||||
"heading": "Apagar um compartilhamento",
|
||||
"body": "Permite escolher um compartilhamento pelo nome, remove o bloco do <code>smb.conf</code> (<code>sed</code> exclui do <code>[share]</code> para a próxima linha em branco), e reinicia o <code>smbd</code>. A pasta em si e seu conteúdo ficam intactos."
|
||||
},
|
||||
"status": {
|
||||
"heading": "Verificar o estado do Samba",
|
||||
"body": "Relata se o <code>smbd</code> e o <code>nmbd</code> estão instalados e ativos, lista os usuários do Samba (<code>pdbedit -L</code>) e imprime sessões ativas (<code>smbstatus</code>)."
|
||||
},
|
||||
"uninstall": {
|
||||
"heading": "Desinstalar o servidor Samba",
|
||||
"body": "Limpeza completa após confirmação: para e desativa <code>smbd</code> e <code>nmbd</code>, salva <code>smb.conf</code> em <code>smb.conf.backup.YYYYMMDD_HHMMSS</code>, remove usuários Samba com <code>smbpasswd -x</code> e os pacotes Samba com <code>apt-get purge</code>. As <strong>pastas exportadas não são apagadas</strong>.",
|
||||
"warnTitle": "Pastas sobrevivem — backup de dados separadamente",
|
||||
"warnBody": "<em>Excluir compartilhamento</em> e <em>Desinstalar servidor Samba</em> removem a configuração do compartilhamento. Os dados das pastas exportadas são preservados. Para apagá-los também, use explicitamente <code>rm -rf</code> após o término do script."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Resolução de Problemas",
|
||||
"privTitle": "Exige um contêiner com privilégios (o script interrompe a execução)",
|
||||
"privBody": "O CT selecionado é desprivilegiado e o <code>smbd</code> não pode servir arquivos lá. Se você ignorar a verificação e configurar Samba à mão, <code>smbd</code> começa e as portas abrem, mas a primeira conexão do cliente entra em pânico com <code>PANIC: sys_setgroups failed</code> em <code>/var/log/samba/log.<client></code> e o cliente vê <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. A causa é o namespace desprivilegiado que tem <code>setgroups=deny</code>, que bloqueia a personificação de Samba por conexão. Nem <code>features=keyctl=1</code> nem remover <code>force user</code> / <code>force group</code> altera isso. As únicas opções viáveis são: converter o CT para privilegiado, ou mover Samba para uma VM.",
|
||||
"aptTitle": "apt-get install falha",
|
||||
"aptIntro": "O script assume uma família Debian CT. Em Alpine / Arch / Rocky / Alma, instalar Samba à mão:",
|
||||
"aptItems": [
|
||||
"Alpine: <code>apk add samba</code>",
|
||||
"Arch: <code>pacman -S samba</code>",
|
||||
"Rocky / Alma: <code>dnf install samba</code>"
|
||||
],
|
||||
"aptOutro": "Execute novamente o script ProxMenux; a instalação é ignorada quando as ferramentas já estão presentes.",
|
||||
"noShareTitle": "O cliente conecta- se mas não consegue ver a partilha",
|
||||
"noShareBody": "Verifique se o <code>browseable = yes</code> está definido no bloco de partilha (por omissão para os modos rw / ro; pode estar em falta na personalização). Também verifique o firewall CT e o firewall do host Proxmox permitem o TCP 445 (SMB) e o 139 (NetBIOS). Alguns clientes do Windows também exigem resolução de nome — tente o IP diretamente primeiro.",
|
||||
"authTitle": "Falha na autenticação (NT_STATUS_LOGON_FAILURE)",
|
||||
"authBody": "A senha está incorreta (as senhas Samba são <em>separadas</em> das do sistema; liste os usuários Samba com <code>pdbedit -L</code>) ou o usuário não consta em <code>valid users</code> para esse compartilhamento. Redefina a senha dentro do CT com <code>smbpasswd <user></code>.",
|
||||
"groupTitle": "Os arquivos escritos pelo cliente aparecem com o grupo errado no servidor",
|
||||
"groupBody": "O script define <code>force group = sharedfiles</code> no bloco de compartilhamento, então novos arquivos devem ser o grupo <code>sharedfiles</code>. Se eles não forem, o bit SGID no diretório pai pode ter sido perdido (alguém correu <code>chmod</code> à mão). Reaplicação: <code>chmod 2775 /mnt/<share></code>.",
|
||||
"bothTitle": "Compartilhando a mesma pasta em ambos NFS e Samba",
|
||||
"bothBody": "ProxMenux usa diferentes GIDs para <code>sharedfiles</code> em cada script (Samba: 999, NFS: 101000). Se você serve a mesma pasta através de ambos, decida sobre um GID e alinhar ambos. A correção mais simples: após executar ambos os scripts, edite o GID menor:"
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relacionado",
|
||||
"items": [
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-samba-client",
|
||||
"label": "Cliente Samba em LXC",
|
||||
"tail": " — o inverso: montar compartilhamentos Samba externos no CT."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/lxc-nfs-server",
|
||||
"label": "Servidor NFS em LXC",
|
||||
"tail": " — página relacionada, mesmo padrão com NFS em vez de CIFS."
|
||||
},
|
||||
{
|
||||
"href": "/docs/storage-share/host-samba",
|
||||
"label": "Samba / CIFS como armazenamento Proxmox",
|
||||
"tailRich": " — quando o CT estiver exportando, registre o compartilhamento Samba no Proxmox para que apareça em <em>Datacenter → Storage</em>."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user