{
"meta": {
"title": "Añadir una unidad USB a un LXC y compartirla con Samba | Guías ProxMenux",
"description": "Conecta un disco duro USB o una memoria USB a un contenedor LXC privilegiado en Proxmox VE, instala Samba dentro del contenedor y comparte el contenido por la red.",
"ogTitle": "Añadir una unidad USB a un LXC y compartirla con Samba",
"ogDescription": "Conecta una unidad USB a un LXC privilegiado en Proxmox VE, instala Samba dentro del contenedor y comparte el contenido por la LAN."
},
"header": {
"title": "Añadir una unidad USB o memoria a un LXC y compartirla por la red con Samba",
"description": "Conecta un disco duro USB o una memoria USB a un contenedor LXC privilegiado en Proxmox VE, instala Samba dentro del contenedor y comparte el contenido por la red.",
"section": "Guías"
},
"recommended": {
"calloutTitle": "Recomendado",
"calloutIntro": "ProxMenux ahora expone las dos mitades de este flujo como menús guiados:",
"items": [
"Disk Manager → Format / Wipe Physical Disk para el paso de formateo.",
"Storage & Share Manager → LXC network sharing → Samba server in LXC para la instalación del CT privilegiado y la configuración de Samba."
],
"calloutOutro": "Los flujos guiados se encargan de las peculiaridades de permisos de los CT unprivileged, de los presets de modo de share (lectura-escritura / solo lectura / personalizado) y de la configuración del grupo sharedfiles. Esta guía es el equivalente manual — útil si quieres visibilidad total sobre cada paso o si prefieres cablearlo todo a mano."
},
"intro": {
"body": "A veces resulta útil añadir un disco duro o una memoria USB a un host Proxmox, sobre todo en un mini PC con expansión interna limitada. Esta guía cubre:",
"stepsTitle": "Qué vas a hacer",
"steps": [
"Conectar el disco USB a un LXC privilegiado.",
"Instalar Samba dentro del contenedor.",
"Compartir el contenido del disco por la LAN."
],
"useCasesTitle": "Casos de uso",
"useCases": [
"Alojar ficheros Torrent y servirlos en la red.",
"Dar soporte a un media server (Plex / Jellyfin / Emby).",
"Guardar documentos que escanea automáticamente Paperless.",
"Almacenamiento tipo NAS genérico para la red doméstica."
],
"privilegedCalloutTitle": "Se requiere un contenedor privilegiado",
"privilegedCalloutBody": "El passthrough directo de dispositivos (mp0 con una ruta del host) necesita un LXC privilegiado. Los CT unprivileged no pueden hacer bind-mount directo de dispositivos de bloque — para esos necesitas bind mounts de directorios del host (consulta ProxMenux Storage & Share Manager → LXC Mount Points)."
},
"attach": {
"heading": "1. Conectar el disco USB al LXC",
"identifyHeading": "1.1 Identificar el dispositivo",
"identifyBody": "Compara la lista de discos antes y después de conectar la unidad USB — el dispositivo nuevo es tu objetivo.",
"beforeLabel": "Antes:",
"afterLabel": "Después:",
"imageBeforeAlt": "Lista de discos antes de añadir la unidad USB",
"imageAfterAlt": "Lista de discos después de añadir la unidad USB",
"lsblkBody": "También puedes usar lsblk -o NAME,SIZE,MODEL,SERIAL para listar cada dispositivo de bloque con su modelo y número de serie.",
"stableCalloutTitle": "Importante — usa un identificador estable",
"stableCalloutBody": "/dev/sdb1 puede cambiar entre arranques si tienes varios discos USB. Busca el identificador persistente:",
"stableCalloutCode": "ls -l /dev/disk/by-id/ | grep -v part",
"stableCalloutAfter": "Usa la ruta /dev/disk/by-id/usb-... en la config del LXC en lugar de /dev/sdb1. Sobrevive a reinicios y a desconexiones.",
"formatHeading": "1.2 Formatear el disco",
"formatBody": "ext4 es un valor por defecto razonable para shares basados en Linux (sensible a mayúsculas, soporta ACLs POSIX, sin límites de tamaño de fichero). Ejecútalo desde el host Proxmox, no desde el contenedor:",
"formatCode": "mkfs.ext4 /dev/sdb1",
"formatAfter": "Reemplaza /dev/sdb1 por el dispositivo de partición real — o por la ruta persistente /dev/disk/by-id/usb-...-part1.",
"mkdirHeading": "1.3 Crear el punto de montaje dentro del LXC",
"mkdirBody": "Dentro del LXC, crea el directorio donde aparecerá el disco (cualquier nombre vale):",
"mkdirCode": "mkdir /mnt/lxc_USB",
"wireHeading": "1.4 Cablear el dispositivo al LXC",
"wireBody": "En el host Proxmox (no dentro del CT), edita la config del contenedor. Reemplaza '<'CTID'>' por el ID del contenedor:",
"wireEditCode": "nano /etc/pve/lxc/'<'CTID'>'.conf",
"wireAddLine": "Añade esta línea:",
"wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
"wireShortForm": "(O, si aceptas el riesgo de que la ruta del dispositivo cambie, la forma corta: mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0.)",
"wireBackupNote": "El flag backup=0 excluye este punto de montaje de los backups de vzdump — normalmente la elección correcta para discos externos grandes que son el almacenamiento de destino del host y no sus datos.",
"restartHeading": "1.5 Reiniciar el LXC y ajustar permisos",
"restartBody": "Reinicia el CT para aplicar el punto de montaje:",
"restartCode": "pct restart '<'CTID'>'",
"permsBody": "Dentro del LXC, dale al directorio los permisos apropiados para el usuario que será dueño del share:",
"permsCode": "# Dentro del contenedor\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
"permsNoteTitle": "Nota",
"permsNote": "Reemplaza proxmenux por el nombre de usuario que crearás en el paso 2.2 más abajo. 770 da acceso total al usuario y al grupo, sin acceso para el resto — más seguro que el chmod -R 777 abierto a todos y aun así suficiente para que el share funcione."
},
"samba": {
"heading": "2. Instalar Samba",
"installHeading": "2.1 Instalar el paquete dentro del LXC",
"installCode": "apt-get update\napt-get install -y samba",
"confirmBody": "Confirma que el servicio está corriendo:",
"confirmCode": "systemctl status smbd.service",
"userHeading": "2.2 Crear el usuario del share",
"userBody": "Escoge un nombre de usuario (aquí usamos proxmenux; sustitúyelo por el tuyo). Créalo como usuario del sistema sin shell:",
"userCode": "adduser proxmenux",
"passwordBody": "Establece la contraseña de Samba (independiente de la contraseña del sistema — Samba mantiene su propio almacén de credenciales):",
"passwordCode": "smbpasswd -a proxmenux",
"aclHeading": "2.3 Configurar la propiedad / ACLs",
"aclBody": "Si el simple chown del paso 1.5 te basta, los permisos ya están listos. Para un control más fino (varios usuarios compartiendo la misma ruta con permisos distintos), usa ACLs:",
"aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # ACL por defecto — se aplica a los ficheros nuevos"
},
"configure": {
"heading": "3. Configurar el share de Samba",
"editHeading": "3.1 Editar smb.conf",
"editCode": "nano /etc/samba/smb.conf",
"appendBody": "Añade una definición de share al final:",
"shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
"validUsersNoteTitle": "Nota",
"validUsersNote": "La línea valid users = proxmenux restringe el acceso a ese único usuario Samba. Para acceso por grupo, usa valid users = @samba_users tras añadir el usuario o usuarios a un grupo llamado samba_users.",
"reloadHeading": "3.2 Recargar Samba",
"reloadCode": "systemctl restart smbd"
},
"verify": {
"heading": "4. Verificar el acceso",
"body": "Desde cualquier cliente de la LAN, navega a \\\\'<'CT_IP'>' (Windows) o smb://'<'CT_IP'>' (gestores de ficheros de macOS / Linux). Autentícate con el usuario Samba (proxmenux) y la contraseña que pusiste con smbpasswd.",
"image1Alt": "Acceso al servidor Samba desde un cliente",
"image2Alt": "Prompt de autenticación de Samba",
"usageBody": "Puedes usar el share tanto dentro del contenedor como por la red:",
"image3Alt": "Uso de la unidad USB a través del share"
},
"troubleshoot": {
"heading": "Solución de problemas",
"items": [
"pct restart falla con \"device not found\": la ruta del dispositivo en mp0 no existe en el host. Comprueba con ls -l /dev/disk/by-id/ y actualiza la ruta.",
"El CT arranca pero /mnt/lxc_USB está vacío: el disco no está montado dentro del CT. Comprueba desde el host: pct exec '<'CTID'>' -- mount | grep lxc_USB. Si no aparece, el punto de montaje en la config está mal.",
"Samba autentica pero las escrituras fallan con \"Permission denied\": los permisos Linux del directorio no permiten al usuario de Samba escribir. Revisa chown / setfacl en la sección 1.5 / 2.3.",
"El share no aparece en los navegadores de red pero smb://'<'ip'>'/lxc_usb sí funciona: la visibilidad por LAN depende de NetBIOS / WS-Discovery. Añade nmbd: apt-get install -y samba-common-bin y asegúrate de que nmbd esté habilitado.",
"Quieres añadir un segundo usuario al mismo share: crea el usuario con adduser, regístralo con smbpasswd -a y añádelo a la lista valid users = del share separado por comas."
]
}
}