{ "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 X do host também no caminho Y do contêiner. Sem cópia, sincronização ou transferência de rede: ambos veem os mesmos arquivos 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 /mnt/nas-films no hospedeiro pode tornar-se /media/films no interior do recipiente. O script adiciona a entrada para a configuração do recipiente (/etc/pve/lxc/<ctid>.conf) usando o próximo índice mpN livre, com dois padrões seguros preparados em:", "items": [ "shared=1 — 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.", "backup=0 — exclui o monte de ligação dos backups do vzdump (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 sem privilégios LXC muda cada UID por +100000, 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 host, 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": "chmod o+rwx + setfacl o::rwx 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 uid=0, gid=0, file_mode=0777, dir_mode=0777 para que o CT (qualquer UID) possa ler e escrever a partilha. O /etc/fstab está actualizado.", "nfsType": "NFS montado", "nfsTypeSub": "Por exemplo: /mnt/pve/nfs-…", "nfsActionRich": "chmod 1777 + setfacl o::rwx 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 host. Sem pct exec 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 lxc.idmap em /etc/pve/lxc/<CTID>.conf. Não faz. 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, \"Contêiner sem privilégios — Offset UID: 100000\", é 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": "chmod o+rwx + setfacl o::rwx no diretório da máquina. Os UIDs mapeados do CT (100000+) caem no balde \"outros\", então abrir o outros é 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": "lxc.idmap", "idmapTypeSub": "(não utilizado por este programa)", "idmapChangesRich": "Mapeamento personalizado de UID/GID em /etc/pve/lxc/<CTID>.conf mais entradas correspondentes de /etc/subuid + /etc/subgid na máquina. CT deve ser reiniciado em cada mudança.", "idmapWhenRich": "Você precisa de um UID específico dentro do CT para mapear para um UID específico no host (por exemplo: media:1000 no CT deve possuir arquivos como media:1000 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 all_squash do NFS; o servidor ainda decide a identidade anônima e os privilégios. Adicione entradas lxc.idmap 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 Storage & Share Manager → Configure pontos de montagem LXC (Host ↔ Container). 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 /proc/mounts.", "labelRich": "NFS [used/size] ou CIFS/SMB [used/size]" }, { "source": "Montagens de fstab inactivas", "whereRich": "Definido em /etc/fstab mas não montado atualmente.", "labelRich": "fstab(off)-NFS / fstab(off)-CIFS/SMB" }, { "source": "Directórios locais", "whereRich": "Directórios Sub sob /mnt que não são montagens de rede.", "labelRich": "Local [size]" }, { "source": "Armazenagens Proxmox", "whereRich": "Caminhos de armazenamento sob /mnt/pve/* (NFS / CIFS registrados via pvesm).", "labelRich": "PVE-NFS / PVE-CIFS/SMB / Proxmox-Storage" }, { "source": "Entrada manual", "where": "Qualquer outra coisa — digite você mesmo o caminho absoluto.", "labelRich": "Inserir caminho manualmente" } ], "tipTitle": "Caminhos internos do Proxmox são filtrados", "tipBody": "O catador ignora explicitamente os caminhos internos do Proxmox (/mnt/pve/local, /mnt/pve/local-lvm, /mnt/pve/backup, ...) — 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 mpN 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 mpN, confirme. O script executa pct set --delete mpN 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 preservados — 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 pct reboot 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 (pct reboot <ctid>). Se já estiver reiniciado e ainda estiver em falta, verifique pct config <ctid> 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 chmod). Para o CIFS, verifique novamente as opções de montagem no host: findmnt /mnt/pve/cifs-…, procure por valores uid= / gid= / file_mode=.", "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": [ "no_root_squash — CTs privilegiados podem escrever diretamente.", "all_squash,anonuid=65534,anongid=65534 — 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 fstab(off)- 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 (mount <path> 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 /mnt/shared 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 /mnt/pve/<id> 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)." } ] } }