complete i18n migration to /[locale]/ with EN+ES content

Full rewrite of the docs site under app/[locale]/ with next-intl
in localePrefix:"always" mode. Every page now exists at both
/en/<path> and /es/<path>; the root / shows a meta-refresh + JS
redirect to /<defaultLocale>/ so GitHub Pages serves something
on the apex URL.

Highlights:
- 107 doc pages migrated to file-per-page JSON namespaces under
  messages/en/ and messages/es/. Spanish content is fully
  translated (no copy-of-English placeholders).
- New documentation for the Active Suppressions section in the
  Settings tab and the per-event Dismiss dropdown in the Health
  Monitor modal.
- New screenshots: dismiss-duration-dropdown.png and an updated
  health-suppression-settings.png.
- Pagefind integrated for client-side search; index is built on
  every CI deploy (not committed).
- RSS feeds: per-locale at /<locale>/rss.xml plus root /rss.xml
  for backward compat.
- Removed the dead app/[locale]/guides/[slug]/ route — every
  guide now has its own static page and no markdown source
  remains.
- Fixed orphan link /guides/nvidia -> /guides/nvidia-manual in
  docs/hardware/nvidia-host.
- Removed obsolete components (footer2, calendar, drawer).

Verified locally with `npm ci && npm run build`: 2804 files in
out/, 231 pages indexed by pagefind, root redirect intact, both
locale roots and the new Active Suppressions docs render OK.
This commit is contained in:
MacRimi
2026-05-31 12:41:10 +02:00
parent 875910b4d7
commit 5ca3463bf6
649 changed files with 83958 additions and 11096 deletions

View File

@@ -0,0 +1,128 @@
{
"meta": {
"title": "Añadir controladora o NVMe a VM | ProxMenux Documentation",
"description": "PCI passthrough de una controladora de almacenamiento (HBA SATA / SAS) o un dispositivo NVMe a una VM Proxmox usando ProxMenux. Gestiona la habilitación de IOMMU, la detección de conflictos y el conexionado con qm set --hostpci.",
"ogTitle": "Añadir controladora o NVMe a VM | ProxMenux Documentation",
"ogDescription": "Pasa un HBA SATA / SAS entero o un dispositivo NVMe a una VM Proxmox. ProxMenux gestiona IOMMU, detección de conflictos y conexionado hostpci."
},
"header": {
"title": "Añadir controladora o NVMe a VM",
"description": "Pasa un host bus adapter (HBA) SATA / SAS entero o un dispositivo NVMe a una VM Proxmox mediante PCI passthrough. ProxMenux comprueba — y, con tu consentimiento, habilita — IOMMU, enumera los dispositivos elegibles para passthrough, filtra los conflictos y conecta la asignación con qm set --hostpci.",
"section": "Disk Manager · VM"
},
"intro": {
"title": "Qué hace (y qué no hace) esto",
"body": "Esto es <strong>passthrough a nivel de dispositivo</strong>: la tarjeta PCIe sale de la vista del kernel del host y se vincula a <code>vfio-pci</code>. La VM ve la propia controladora — no los discos individuales que hay detrás — y carga su propio driver para ese modelo concreto. Cada disco adjunto a esa controladora la sigue automáticamente, con datos SMART nativos, todas las funciones del firmware y sin ninguna capa de Proxmox en medio."
},
"howRuns": {
"heading": "Cómo se ejecuta el script",
"body": "El flujo tiene dos fases con separación clara entre \"recopilar información, comprobar IOMMU y listar candidatos\" y \"adjuntar realmente el dispositivo PCI\". Hasta la confirmación final no se escribe nada en la configuración de la VM."
},
"iommu": {
"heading": "Grupos IOMMU — por qué la tarjeta entera sale a la vez",
"body": "El PCI passthrough se hace por <strong>grupo IOMMU</strong>, que es la unidad más pequeña que el IOMMU de la CPU puede aislar. Todo lo que hay dentro de un grupo se mueve junto. Si tu controladora SATA comparte grupo IOMMU con la controladora USB, pasar la tarjeta SATA a una VM se lleva también los puertos USB — algo a menudo no deseado.",
"outro": "ProxMenux muestra el grupo IOMMU junto a cada dispositivo y te avisa cuando un grupo lleva algo más que la controladora que quieres. Aún así puedes continuar si los dispositivos extra del grupo son aceptables (todas controladoras de disco, por ejemplo), o echar atrás si no lo son."
},
"prereqs": {
"heading": "Requisitos previos",
"items": [
"La <strong>CPU y la placa base soportan</strong> VT-d (Intel) o AMD-Vi, y está habilitado en el firmware (BIOS/UEFI). ProxMenux puede habilitar la parte del kernel por ti, pero no puede tocar el switch del firmware.",
"La VM destino está <strong>apagada</strong> antes de adjuntar dispositivos PCI.",
"La controladora/NVMe <strong>no es la que contiene el filesystem raíz de Proxmox</strong>. El script oculta cualquier cosa en uso por el host.",
"El SO guest tiene drivers para el modelo de la controladora. Linux cubre prácticamente cualquier HBA por defecto; Windows necesita el driver del fabricante instalado <em>antes</em> de arrancar con la controladora adjuntada."
],
"warnTitle": "La migración en vivo no es posible",
"warnBody": "Una VM con PCI passthrough está atada al nodo que físicamente tiene la tarjeta. La migración en vivo entre nodos fallará. Planifica los backups / replicación en consecuencia."
},
"steps": {
"heading": "Paso a paso",
"stepLabel": "Paso",
"list": [
{
"title": "Elige la VM destino",
"bodyRich": "ProxMenux lee <code>qm list</code> y muestra cada VM. Elige la que recibirá la controladora.",
"img": "/disk/nvme-passthrough/vm-selection.png",
"alt": "Diálogo de selección de VM",
"caption": "Diálogo de selección de VM"
},
{
"title": "Comprobación de IOMMU",
"bodyRich": "Si IOMMU no está habilitado en la cmdline del kernel, ProxMenux se ofrece a habilitarlo. Edita <code>/etc/kernel/cmdline</code> (para systemd-boot) o <code>/etc/default/grub</code> (para GRUB) y añade el parámetro correcto para tu CPU:",
"items": [
"<code>intel_iommu=on</code> para CPUs Intel.",
"<code>amd_iommu=on</code> para CPUs AMD."
],
"outro": "Es necesario reiniciar después de este cambio. El script te pide reiniciar ahora o más tarde; el passthrough no puede continuar hasta que la nueva cmdline del kernel esté activa.",
"img": "/disk/nvme-passthrough/iommu-warning.png",
"alt": "Diálogo IOMMU Required",
"caption": "IOMMU Required — propuesta de habilitar y reiniciar"
},
{
"title": "Enumeración de dispositivos",
"body": "ProxMenux lista cada controladora de almacenamiento (HBA SATA / SAS) y cada dispositivo NVMe del bus PCI. Para cada dispositivo muestra:",
"items": [
"Dirección PCI (<code>00:17.0</code>, <code>01:00.0</code>, …).",
"Descripción del fabricante / dispositivo.",
"Grupo IOMMU — y un aviso ⚠ si el grupo se comparte con otros dispositivos no relacionados.",
"Los discos que hay actualmente detrás de la controladora (para que sepas qué la seguirá a la VM)."
],
"img": "/disk/nvme-passthrough/device-list.png",
"alt": "Enumeración de dispositivos controladora / NVMe",
"caption": "Enumeración de dispositivos controladora / NVMe con info de grupo IOMMU"
},
{
"title": "Detección de conflictos",
"bodyRich": "El script bloquea los dispositivos claramente inseguros: ya asignados a otra VM (vía <code>hostpci</code> en la config de esa VM), en uso por el host (controladora del disco raíz) o en un grupo IOMMU cuyos otros miembros el script no puede identificar de forma segura. Los dispositivos elegibles quedan disponibles para selección.",
"img": "/disk/nvme-passthrough/conflict-warning.png",
"alt": "Aviso de detección de conflicto",
"caption": "Detección de conflictos — dispositivo bloqueado con motivo"
},
{
"title": "Adjuntar y finalizar",
"bodyRich": "Para cada dispositivo seleccionado ProxMenux ejecuta <code>qm set &lt;VMID&gt; --hostpciN &lt;pci-addr&gt;,pcie=1</code>, eligiendo el siguiente slot <code>hostpci</code> libre. Si se habilitó IOMMU durante esta sesión se te recuerda que reinicies antes de arrancar la VM.",
"img": "/disk/nvme-passthrough/assignment.png",
"alt": "Resumen de asignación",
"caption": "Resumen de asignación — slots hostpciN y direcciones PCI adjuntadas"
}
]
},
"manual": {
"heading": "Equivalente manual"
},
"troubleshoot": {
"heading": "Solución de problemas",
"noGroupsTitle": "IOMMU habilitado pero no hay grupos en /sys/kernel/iommu_groups/",
"noGroupsBody": "Es necesario reiniciar para que la cmdline del kernel surta efecto. Si los grupos siguen sin aparecer después de reiniciar, lo más probable es que VT-d / AMD-Vi esté deshabilitado en el firmware — revisa el setup de la BIOS/UEFI.",
"busyTitle": "La VM no arranca con \"hostpciN: device busy\"",
"busyBody": "Otro proceso aún retiene el dispositivo PCI. Causas más comunes: una VM anterior que crasheó sin soltarlo, o el kernel del host lo recuperó en el último arranque. Ejecuta <code>lspci -nnk -s &lt;addr&gt;</code> para ver qué driver está vinculado; debería ser <code>vfio-pci</code>. Un reinicio completo del host suele resolverlo.",
"noDisksTitle": "El guest ve la controladora pero no los discos",
"noDisksBody": "El modelo de la controladora no tiene driver en el guest. Linux casi nunca tiene este problema; Windows sí — instala el driver del fabricante (p. ej. LSI / Broadcom para HBAs SAS antiguos) con la tarjeta desconectada y luego reinicia con la tarjeta adjuntada.",
"sharedTitle": "Grupo IOMMU compartido que exporta también un dispositivo no relacionado",
"sharedBody": "Opciones: (a) mover la tarjeta a un slot PCIe distinto para cambiar su grupo, (b) habilitar <em>ACS override</em> en el kernel para separar grupos (compromiso de seguridad — investiga antes de aplicarlo), o (c) elegir otra tarjeta en un grupo más limpio."
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/disk-manager/import-disk-vm",
"label": "Importar disco a VM",
"tail": " — modelo alternativo: adjuntar un disco físico vía Proxmox sin passthrough PCIe completo."
},
{
"href": "/docs/hardware/gpu-vm-passthrough",
"label": "Añadir GPU a VM (Passthrough)",
"tail": " — los mismos conceptos de IOMMU / VFIO aplicados a una GPU."
},
{
"href": "/docs/help-info/gpu-commands",
"label": "Comandos de GPU Passthrough",
"tail": " — los comandos de verificación de IOMMU también aplican al passthrough de controladora / NVMe."
},
{
"href": "/docs/disk-manager",
"label": "Resumen de Disk Manager",
"tail": "."
}
]
}
}

View File

@@ -0,0 +1,142 @@
{
"meta": {
"title": "Formatear / borrar disco físico | ProxMenux Documentation",
"description": "Wipe seguro y formateo de disco físico en Proxmox VE usando ProxMenux. Cuatro modos de operación, filtros estrictos de seguridad (discos del sistema / montados / en uso bloqueados) y doble confirmación incluyendo tecleo de la ruta completa.",
"ogTitle": "Formatear / borrar disco físico | ProxMenux Documentation",
"ogDescription": "Borra o formatea de forma segura un disco físico en Proxmox. Reglas de visibilidad seguras, 4 modos de operación, doble confirmación."
},
"header": {
"title": "Formatear / borrar disco físico",
"description": "Borra o formatea de forma segura un disco físico en el host Proxmox. ProxMenux solo muestra discos completamente libres (sin uso del sistema, sin referencia de guest, sin montajes) y exige una doble confirmación — sí/no más teclear la ruta completa del disco — antes de destruir cualquier dato.",
"section": "Disk Manager · Utilidades"
},
"danger": {
"title": "Herramienta destructiva",
"body": "Cada operación aquí escribe en el disco. No hay vuelta atrás. ProxMenux aplica filtros y confirmaciones estrictas de seguridad, pero la responsabilidad de elegir el disco correcto es tuya. Lee la ruta del disco en voz alta dos veces antes de teclearla."
},
"howRuns": {
"heading": "Cómo se ejecuta el script",
"body": "El flujo tiene dos fases con un filtro de seguridad de triple puerta en medio. La lista de discos, el modo de operación y los detalles del filesystem se recopilan todos en la Fase 1; no se escribe nada hasta que la Fase 2 pasa una revalidación final justo antes de ejecutar."
},
"visibility": {
"heading": "Reglas de visibilidad",
"intro": "Antes incluso de que aparezca el menú, ProxMenux filtra la lista de discos. Solo se muestran los candidatos demostrablemente seguros:",
"items": [
"<strong>Mostrados</strong> — discos que <em>no</em> usa el host (root pool, swap, montados, miembros activos de ZFS/LVM/RAID) y que <em>no</em> están referenciados por ninguna config de VM/LXC (en ejecución o parada).",
"<strong>Ocultos</strong> — discos del host / sistema.",
"<strong>Ocultos</strong> — discos referenciados por una config de VM/LXC."
],
"safetyTitle": "Seguridad en confirmación y ejecución",
"safetyItems": [
"Los discos con metadatos obsoletos / activos muestran avisos detallados <em>antes</em> de confirmar.",
"Los discos usados por una VM <strong>en ejecución</strong> están <strong>bloqueados de forma estricta</strong> en la confirmación.",
"Los discos con particiones montadas están <strong>bloqueados de forma estricta</strong> en ejecución (se vuelve a revalidar justo antes de escribir).",
"Siempre se requieren dos confirmaciones: diálogo <em>sí/no</em> + teclear la ruta completa del disco exactamente."
]
},
"modes": {
"heading": "Modos de operación",
"intro": "Después de elegir un disco eliges uno de cuatro modos. Se diferencian en qué destruyen y qué dejan atrás:",
"headerMode": "Modo",
"headerPart": "Tabla de particiones",
"headerData": "Datos",
"headerUseCase": "Caso de uso",
"rows": [
{
"mode": "1. Wipe all",
"part": "Destruida",
"data": "Firmas borradas",
"useCase": "Empezar de cero: todo lo del disco se va, listo para una nueva distribución."
},
{
"mode": "2. Remove FS labels",
"part": "Preservada",
"data": "Preservados",
"useCase": "Limpia firmas obsoletas de ZFS / LVM / RAID para que el disco deje de ser reclamado automáticamente, sin tocar los datos."
},
{
"mode": "3. Zero all data",
"part": "Preservada",
"data": "Destruidos (zerados)",
"useCase": "Sanear antes de entregar el disco, manteniendo la distribución de particiones existente."
},
{
"mode": "4. Full format",
"part": "Nuevo GPT",
"data": "Destruidos",
"useCase": "Disco listo para usar con una única partición nueva y un filesystem fresco."
}
],
"fullFormatOutro": "<strong>Full format</strong> continúa con dos diálogos extra:",
"fullFormatItems": [
"<strong>Filesystem</strong> — <code>ext4</code>, <code>xfs</code>, <code>exfat</code> (portable) o <code>btrfs</code>. Si faltan herramientas (por ejemplo <code>mkfs.btrfs</code>) aborta con un mensaje claro.",
"<strong>Etiqueta</strong> — etiqueta opcional del filesystem para identificación."
]
},
"steps": {
"heading": "Paso a paso",
"stepLabel": "Paso",
"list": [
{
"title": "Elige un disco libre",
"body": "ProxMenux lista cada disco que pasa los filtros de visibilidad de arriba. Los discos con marca ⚠ tienen metadatos obsoletos y se muestran con los detalles para que sepas qué estás a punto de sobrescribir."
},
{
"title": "Elige un modo de operación",
"bodyRich": "Elige entre <strong>Wipe all</strong>, <strong>Remove FS labels</strong>, <strong>Zero all data</strong> o <strong>Full format</strong> según la tabla de arriba."
},
{
"title": "(Solo Full format) Elige filesystem y etiqueta",
"body": "ext4 / xfs / exfat / btrfs, más una etiqueta opcional."
},
{
"title": "Confirma dos veces",
"bodyRich": "ProxMenux muestra un resumen de lo que va a pasar. Aceptas con un diálogo sí/no y <strong>tecleas la ruta completa del disco</strong> exactamente como se muestra (por ejemplo <code>/dev/sdc</code>). Cualquier otra cosa aborta."
},
{
"title": "Revalidación y ejecución",
"body": "Justo antes de escribir, el script vuelve a comprobar el estado del disco. Si entretanto se ha montado una partición o se ha arrancado una VM, la ejecución se aborta. Si no, se ejecuta la operación elegida y se imprime un resumen al final."
}
]
},
"manual": {
"heading": "Equivalentes manuales",
"body": "Si prefieres ejecutar los comandos equivalentes a mano:"
},
"troubleshoot": {
"notListedTitle": "Disco no listado en el menú",
"notListedBody": "Se filtró por seguridad. Razones comunes: está montado (aunque sea en <code>/mnt/tmp</code>), es miembro activo de ZFS / LVM / RAID, está referenciado por una config de VM o LXC, o es tu disco raíz de Proxmox. Ejecuta <code>lsblk -f</code> y <code>cat /proc/mdstat</code> en el host para entender por qué.",
"busyTitle": "\"Disk may be busy\" / unmount falló",
"busyBody": "Algo sigue manteniendo un archivo abierto en una partición de ese disco — lo más habitual es un contenedor o un shell cuyo cwd está dentro de un mountpoint. Identifícalo con <code>lsof | grep /dev/sdX</code> o <code>fuser -vm /dev/sdX1</code>, párelo y vuelve a ejecutar la herramienta."
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/disk-manager/smart-disk-test",
"label": "Salud y test SMART de disco",
"tail": " — comprobar un disco antes / después del wipe para confirmar que está sano."
},
{
"href": "/docs/disk-manager/import-disk-vm",
"label": "Importar disco a VM",
"tail": " — pasar un disco recién formateado a una VM."
},
{
"href": "/docs/storage-share/host-local-disk",
"label": "Añadir disco local como almacenamiento Proxmox",
"tail": " — registrar un disco borrado como un pool de almacenamiento Proxmox."
},
{
"href": "/docs/help-info/storage-commands",
"label": "Comandos de almacenamiento y discos",
"tail": " — referencia de lsblk, blkid, parted."
},
{
"href": "/docs/disk-manager",
"label": "Resumen de Disk Manager",
"tail": "."
}
]
}
}

View File

@@ -0,0 +1,110 @@
{
"meta": {
"title": "Importar imagen de disco a VM | ProxMenux Documentation",
"description": "Importa un archivo de imagen de disco (.img / .qcow2 / .vmdk / .raw) a una VM Proxmox existente usando ProxMenux. Interfaz por imagen, emulación SSD y flag bootable, con qm importdisk por debajo.",
"ogTitle": "Importar imagen de disco a VM | ProxMenux Documentation",
"ogDescription": "Importa imágenes de disco .img / .qcow2 / .vmdk / .raw a una VM existente con ProxMenux. Usa qm importdisk por debajo."
},
"header": {
"title": "Importar imagen de disco a VM",
"description": "Importa un archivo de imagen de disco (.img, .qcow2, .vmdk o .raw) a una VM Proxmox existente. ProxMenux recopila todas las decisiones por adelantado — VM destino, almacenamiento Proxmox, directorio origen, interfaz, emulación SSD, orden de arranque — y luego ejecuta qm importdisk para cada imagen seleccionada.",
"section": "Disk Manager · VM"
},
"intro": {
"title": "Qué hace esto",
"body": "A diferencia de <em>Importar disco a VM</em> (que adjunta un disco físico crudo), este flujo coge un <strong>archivo</strong> alojado en el host — exportado desde otro hipervisor, descargado como cloud image, extraído de un backup — y lo convierte en un disco de VM Proxmox propiamente dicho en el volumen de almacenamiento que elijas. El archivo original se conserva; ProxMenux lo copia, no lo mueve."
},
"howRuns": {
"heading": "Cómo se ejecuta el script",
"body": "El flujo tiene dos fases. La Fase 1 recopila por adelantado todas las decisiones (VM, almacenamiento, directorio origen, imágenes, opciones por imagen) mediante diálogos. La Fase 2 ejecuta <code>qm importdisk</code> para cada imagen seleccionada. Hasta que empieza la Fase 2 no se copia nada y no se toca la config de la VM."
},
"prereqs": {
"heading": "Requisitos previos",
"items": [
"Al menos una VM definida en el host. La VM destino debería estar <strong>apagada</strong>.",
"Al menos un archivo de imagen de un formato soportado en el directorio origen. Soportados: <code>.img</code>, <code>.qcow2</code>, <code>.vmdk</code>, <code>.raw</code>.",
"Suficiente espacio libre en el almacenamiento Proxmox destino para alojar cada disco importado.",
"ProxMenux busca imágenes en <code>/var/lib/vz/template/iso</code> por defecto. Cuando pregunte puedes apuntarle a cualquier otro directorio del host."
]
},
"steps": {
"heading": "Paso a paso",
"stepLabel": "Paso",
"list": [
{
"title": "Elige la VM destino",
"bodyRich": "ProxMenux lee <code>qm list</code> y muestra cada VM. Elige la que recibirá el o los discos importados."
},
{
"title": "Elige el almacenamiento Proxmox",
"bodyRich": "La lista contiene todos los almacenamientos que tengan habilitado el content type <code>images</code>. Si solo hay un candidato se autoselecciona y se salta el diálogo."
},
{
"title": "Elige el directorio origen",
"bodyRich": "Elige el directorio por defecto (<code>/var/lib/vz/template/iso</code>) o teclea una ruta personalizada — normalmente donde descargaste / subiste la imagen. El script rechaza rutas que no existen."
},
{
"title": "Elige una o varias imágenes",
"bodyRich": "El directorio se escanea buscando archivos <code>.img</code> / <code>.qcow2</code> / <code>.vmdk</code> / <code>.raw</code>. Puedes seleccionar varias a la vez; cada una pasará por las opciones por imagen en el siguiente paso."
},
{
"title": "Opciones por imagen",
"intro": "Para cada imagen seleccionada ProxMenux pregunta:",
"items": [
"<strong>Interfaz</strong> — <code>scsi</code> (por defecto), <code>virtio</code>, <code>sata</code> o <code>ide</code>. Determina cómo verá el disco el guest.",
"<strong>Emulación SSD</strong> — solo se ofrece para interfaces no-VirtIO. Añade <code>ssd=1</code> para que el guest anuncie el disco como solid-state (útil para TRIM / alineación a nivel de SO).",
"<strong>Bootable</strong> — si es sí, ProxMenux añade el disco al orden de arranque para que se convierta en el dispositivo de arranque primario de la VM."
]
},
{
"title": "Importar y adjuntar",
"bodyRich": "ProxMenux ejecuta <code>qm importdisk</code> para cada imagen (convirtiendo el formato al vuelo cuando hace falta), adjunta el disco resultante al siguiente slot libre (<code>scsiN</code>, <code>sataN</code>, …) con las opciones que elegiste y — si marcaste algún disco como bootable — actualiza el orden de arranque. El progreso se muestra en el terminal."
}
]
},
"manual": {
"heading": "Equivalente manual",
"body": "La importación de una sola imagen se traduce a tres comandos <code>qm</code>:",
"warnTitle": "Conversión de formato de imagen",
"warnBody": "Cuando el almacenamiento destino no puede contener el formato origen de forma nativa (por ejemplo, el almacenamiento LVM no puede contener <code>.qcow2</code>), <code>qm importdisk</code> convierte la imagen de forma transparente. Esto puede tardar varios minutos en imágenes de varios GB; planifícalo y no interrumpas el script."
},
"troubleshoot": {
"heading": "Solución de problemas",
"noImagesTitle": "\"No compatible disk images found\"",
"noImagesBody": "El script escaneó el directorio pero no encontró ningún archivo <code>.img</code> / <code>.qcow2</code> / <code>.vmdk</code> / <code>.raw</code>. Comprueba la extensión (las mayúsculas importan), que el archivo esté directamente en el directorio seleccionado (no se buscan subdirectorios) y que los permisos permitan a root leerlo.",
"slowTitle": "La importación va lenta",
"slowBody": "Las conversiones VMDK → QCOW2 → raw están limitadas por CPU y E/S. La velocidad de importación depende de la velocidad de lectura del origen, la velocidad de escritura del almacenamiento destino y la CPU para descompresión. Prefiere orígenes raw o qcow2 cuando sea posible.",
"uefiTitle": "El disco importado arranca en la UEFI shell",
"uefiBody": "La imagen se construyó para legacy (SeaBIOS) pero la VM usa OVMF (o al revés). O bien cambia la BIOS de la VM en Proxmox para que coincida con la imagen, o reconstruye la imagen en el modo correcto antes de importar."
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/disk-manager/import-disk-vm",
"label": "Importar disco a VM",
"tail": " — mismo flujo pero para discos físicos crudos (passthrough)."
},
{
"href": "/docs/utils/import-vm",
"label": "Importar VM desde OVA / OVF",
"tail": " — cuando tienes un paquete completo de VM, no solo una imagen de disco."
},
{
"href": "/docs/utils/UUp-Dump-ISO-Creator",
"label": "UUP Dump ISO Creator",
"tail": " — genera una ISO de Windows si necesitas una para una instalación nueva."
},
{
"href": "/docs/help-info/storage-commands",
"label": "Comandos de almacenamiento y discos",
"tail": " — referencia de qm importdisk y qemu-img convert."
},
{
"href": "/docs/disk-manager",
"label": "Resumen de Disk Manager",
"tail": "."
}
]
}
}

View File

@@ -0,0 +1,115 @@
{
"meta": {
"title": "Importar disco a LXC | ProxMenux Documentation",
"description": "Adjunta un disco físico a un contenedor LXC existente en Proxmox VE usando ProxMenux. Gestiona la detección / formateo del filesystem, el mount point, la conversión unprivileged → privilegiado y rutas de dispositivo persistentes.",
"ogTitle": "Importar disco a LXC | ProxMenux Documentation",
"ogDescription": "Adjunta un disco físico a un contenedor LXC existente. Gestiona el filesystem, el mount point y la conversión unprivileged → privilegiado."
},
"header": {
"title": "Importar disco a LXC",
"description": "Adjunta un disco físico a un contenedor LXC existente en el host Proxmox. ProxMenux detecta los discos libres, opcionalmente los formatea con un filesystem soportado y conecta la partición a un mount point dentro del contenedor usando rutas de dispositivo persistentes.",
"section": "Disk Manager · LXC"
},
"intro": {
"title": "Passthrough en VM vs passthrough en LXC",
"body": "El passthrough en LXC <strong>no es un block device crudo</strong>. El contenedor recibe un <em>mount point</em> — es decir, un directorio respaldado por una partición que eliges en el host. A diferencia de una VM, el kernel del guest es el del host, así que el filesystem (ext4 / xfs / btrfs) lo lee y lo gestiona el propio Proxmox y luego lo expone al contenedor."
},
"howRuns": {
"heading": "Cómo se ejecuta el script",
"body": "El flujo tiene dos fases con separación clara entre \"recopilar información y decisiones\" y \"cambiar realmente la configuración del contenedor\". Hasta la confirmación final no se monta nada en el CT.",
"summary": "ProxMenux filtra el disco raíz, los discos montados y los discos ya referenciados por cualquier config de VM/LXC. Los discos con membresía ZFS/LVM/RAID activa están ocultos; las firmas obsoletas muestran una etiqueta ⚠ para que puedas borrarlas antes de formatear."
},
"prereqs": {
"heading": "Requisitos previos",
"items": [
"Al menos un contenedor LXC definido en el host.",
"El contenedor es <strong>privilegiado</strong>, o aceptas la propuesta del script de convertirlo.",
"Al menos un disco físico que no esté en uso por el host ni por ningún otro guest."
],
"warnTitle": "Se requiere contenedor privilegiado",
"warnBody": "El passthrough directo de dispositivos a un contenedor LXC solo funciona si el contenedor es <strong>privilegiado</strong>. Si el script detecta <code>unprivileged: 1</code> en la config, se ofrece a convertirlo in situ (edita <code>/etc/pve/lxc/&lt;CTID&gt;.conf</code>). Cancela si no puedes aceptar el compromiso de seguridad de un contenedor privilegiado."
},
"steps": {
"heading": "Paso a paso",
"stepLabel": "Paso",
"list": [
{
"title": "Elige el contenedor destino",
"img": "/disk/select-container.png",
"caption": "Menú de selección de contenedor",
"bodyRich": "ProxMenux lista cada contenedor LXC del host (<code>pct list</code>). Elige el que recibirá el disco. Si el contenedor es unprivileged se te ofrece convertirlo ahora."
},
{
"title": "Elige el disco físico",
"img": "/disk/disk-selection-ct.png",
"caption": "Discos libres detectados en el host (con etiqueta ⚠ para metadatos obsoletos)",
"bodyRich": "Solo se muestran los candidatos seguros. A diferencia del flujo de VM, este script adjunta <strong>un disco por ejecución</strong> — ejecútalo otra vez por cada disco extra que quieras añadir."
},
{
"title": "Formatear o reutilizar",
"intro": "El script inspecciona el disco:",
"items": [
"Si ya lleva un filesystem soportado (ext4 / xfs / btrfs) puedes reutilizarlo tal cual (los archivos existentes se preservan).",
"Si no tiene un filesystem soportado se te ofrece formatearlo. Elige ext4 / xfs / btrfs."
]
},
{
"title": "Elige el mount point",
"bodyRich": "Teclea la ruta donde el contenedor debería ver el disco, p. ej. <code>/mnt/data</code> o <code>/mnt/disk_passthrough</code>. Esta es la ruta <em>dentro</em> del contenedor; el host ya ve la partición en <code>/dev/disk/by-id/…</code>."
},
{
"title": "Adjuntar y verificar",
"img": "/disk/assignment-ct.png",
"caption": "Asignación al CT",
"bodyRich": "ProxMenux añade una nueva entrada <code>mpN:</code> a la config del contenedor, saltando los índices ya en uso, y vuelve a leer la config para confirmar. Si el contenedor está en ejecución el mount se aplica en vivo; si no, surte efecto en el siguiente arranque.",
"extraImg": "/disk/result-point.png",
"extraAlt": "Mount point creado correctamente",
"extraCaption": "Mount point creado y verificado"
}
]
},
"manual": {
"heading": "Equivalente manual",
"body": "El script envuelve <code>pct set</code>. Una invocación directa para un solo disco se ve así:"
},
"important": {
"heading": "Consideraciones importantes",
"items": [
"<strong>Un disco por ejecución</strong>. Vuelve a ejecutar el script por cada disco adicional.",
"<strong>No</strong> adjuntes la misma partición a varios contenedores que puedan montarla a la vez — las escrituras concurrentes corrompen el filesystem.",
"Los <strong>metadatos antiguos</strong> (firmas RAID / ZFS / LVM) deben limpiarse manualmente antes de que el script te deje formatear, si no <code>mkfs</code> se niega a sobrescribir. Usa la herramienta <wipeLink>Formatear / borrar disco físico</wipeLink> para eso."
]
},
"troubleshoot": {
"heading": "Solución de problemas",
"unprivTitle": "\"Cannot continue with an unprivileged container\"",
"unprivBody": "Rechazaste la oferta de conversión. O bien vuelves a ejecutar y aceptas la conversión, o conviertes el contenedor manualmente editando <code>/etc/pve/lxc/&lt;CTID&gt;.conf</code> y reemplazando <code>unprivileged: 1</code> por <code>unprivileged: 0</code>. También puedes reconstruir el contenedor como privilegiado si prefieres no convertirlo in situ.",
"permsTitle": "Los permisos dentro del contenedor están mal",
"permsBody": "Los mounts del host hacia un contenedor privilegiado entran como <code>root:root</code>. Si el servicio dentro del CT corre como otro usuario (p. ej. <code>www-data</code> para Nextcloud), haz <code>chown</code>/<code>chmod</code> dentro del contenedor para que coincida con su UID/GID después del primer mount."
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/disk-manager/import-disk-vm",
"label": "Importar disco a VM",
"tail": " — flujo equivalente para VMs."
},
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "Mount points LXC (Host ↔ CT)",
"tail": " — compartir directorios del host con un CT en lugar de adjuntar un disco entero."
},
{
"href": "/docs/help-info/vm-ct-commands",
"label": "Comandos de gestión de VM y CT",
"tail": " — referencia de pct config / push / pull."
},
{
"href": "/docs/disk-manager",
"label": "Resumen de Disk Manager",
"tail": "."
}
]
}
}

View File

@@ -0,0 +1,113 @@
{
"meta": {
"title": "Importar disco a VM | ProxMenux Documentation",
"description": "Adjunta un disco físico a una VM Proxmox existente con ProxMenux. Detección segura de discos (excluye sistema, montados, en uso, ZFS/RAID/LVM), rutas persistentes /dev/disk/by-id e interfaces SATA / SCSI / VirtIO / IDE.",
"ogTitle": "Importar disco a VM | ProxMenux Documentation",
"ogDescription": "Adjunta un disco físico a una VM Proxmox existente. Usa rutas persistentes /dev/disk/by-id y soporta SATA / SCSI / VirtIO / IDE."
},
"header": {
"title": "Importar disco a VM",
"description": "Adjunta un disco físico ya existente en el host Proxmox a una máquina virtual existente. ProxMenux detecta los discos libres, te deja elegir la VM destino y el tipo de bus (SATA / SCSI / VirtIO / IDE), y lo adjunta todo usando rutas persistentes /dev/disk/by-id para que el mapeo sobreviva a reinicios y cambios en el orden de los dispositivos.",
"section": "Disk Manager · VM"
},
"intro": {
"title": "Qué hace esto",
"body": "Esto es un passthrough de disco crudo: el SO guest ve la unidad como un block device real (con sus datos SMART y geometría nativa). El disco se adjunta por su ruta <code>/dev/disk/by-id/…</code> — no <code>/dev/sdX</code> — para que la asignación no se rompa si las controladoras de disco enumeran los dispositivos en otro orden en el siguiente arranque."
},
"howRuns": {
"heading": "Cómo se ejecuta el script",
"body": "El flujo tiene dos fases con separación clara entre \"recopilar información y decisiones\" y \"adjuntar realmente discos a la VM\". Hasta la confirmación final, la config de la VM queda intacta.",
"summary": "ProxMenux filtra todo lo que no puede pasar de forma segura: el disco raíz, los discos montados en el host, los miembros de un pool ZFS/LVM/RAID activo y los discos ya referenciados por cualquier config de VM/LXC. Los discos con metadatos <em>obsoletos</em> (firmas viejas de ZFS / RAID / LVM que ya no están en uso) se muestran con etiqueta ⚠ pero no se bloquean."
},
"prereqs": {
"heading": "Requisitos previos",
"items": [
"Al menos una VM definida en el host (el script delega directamente en <code>qm list</code>).",
"La <strong>VM destino está apagada</strong>. Si está en ejecución el script aborta con un mensaje — el hot-add de disco en vivo queda fuera del alcance de este flujo.",
"Al menos un disco físico en el host que no esté en uso por el host ni por ningún otro guest."
]
},
"steps": {
"heading": "Paso a paso",
"stepLabel": "Paso",
"list": [
{
"title": "Elige la VM destino",
"bodyRich": "ProxMenux lista cada VM del host (vía <code>qm list</code>). Elige la que recibirá el disco. Si la VM está en ejecución el script aborta y te pide que la apagues primero."
},
{
"title": "Elige el o los discos físicos a adjuntar",
"img": "/disk/disk-selection.png",
"caption": "Discos libres detectados en el host (con etiqueta ⚠ para metadatos obsoletos)",
"body": "El script escanea cada disco del host y solo muestra los que es seguro adjuntar. La checklist te permite seleccionar uno o varios a la vez. Los discos con firmas viejas de ZFS / LVM / RAID siguen apareciendo, etiquetados con ⚠ para que sepas que necesitan un wipe antes de que el guest pueda formatearlos."
},
{
"title": "Elige la interfaz de bus",
"img": "/disk/disk-assigment.png",
"caption": "Selección de la interfaz de bus",
"intro": "Elige cómo debería ver el disco el guest:",
"items": [
"<strong>SCSI</strong> — opción por defecto moderna para Linux y Windows con drivers VirtIO-SCSI instalados.",
"<strong>SATA</strong> — amplia compatibilidad, funciona por defecto en prácticamente cualquier guest.",
"<strong>VirtIO</strong> — block device paravirtualizado, el más rápido pero requiere drivers en el guest.",
"<strong>IDE</strong> — para guests legacy que no tienen ninguno de los drivers anteriores."
]
},
{
"title": "Adjuntar y verificar",
"bodyRich": "ProxMenux adjunta cada disco seleccionado con su mejor ruta <code>/dev/disk/by-id/</code>, salta los índices de slot que ya están en uso en la config de la VM (<code>scsi0</code>, <code>sata0</code>, …) y vuelve a leer la config para confirmar la asignación. Al final se imprime un resumen."
}
]
},
"manual": {
"heading": "Equivalente manual",
"body": "El script es un wrapper alrededor de <code>qm set</code>. El comando exacto para un solo disco se ve así:",
"migrationTitle": "La migración en vivo no es posible",
"migrationBody": "Una VM con un disco en passthrough está <strong>atada al host que expone ese disco</strong>. La migración en vivo a otro nodo Proxmox fallará porque el nodo destino no ve la misma ruta <code>/dev/disk/by-id/…</code>. Usa replicación o backup/restore en su lugar, o elige discos virtuales en almacenamiento compartido si necesitas movilidad.",
"shareTitle": "No compartas un disco físico entre VMs",
"shareBody": "Adjuntar el mismo disco físico a dos VMs a la vez corromperá los datos en la siguiente escritura. ProxMenux detecta esta situación y la bloquea, pero si te saltas el script (un <code>qm set</code> directo), asegúrate de que solo un guest monte el disco."
},
"troubleshoot": {
"heading": "Solución de problemas",
"noDisksTitle": "\"No disks available for this VM\"",
"noDisksIntro": "El script encontró discos, pero todos los candidatos se filtraron. Razones comunes:",
"noDisksItems": [
"Cada disco restante ya está referenciado en la config de la VM destino.",
"Cada disco restante está montado en el host o forma parte de un ZFS / LVM / RAID activo.",
"El host solo tiene instalado el disco raíz."
],
"noDisksOutro": "Ejecuta <code>lsblk -f</code> en el host para revisar el estado de cada disco.",
"noVisibleTitle": "La VM no ve el disco después de arrancar",
"noVisibleBody": "Si elegiste <strong>SCSI</strong> o <strong>VirtIO</strong>, el guest necesita el driver correspondiente. En Linux es nativo del kernel; en Windows necesitas la ISO de VirtIO y una instalación de drivers (consulta la página <winLink>Crear VM: System Windows</winLink>). Cambiar a SATA en la pestaña de hardware de la VM es un workaround rápido para confirmar que el disco está físicamente adjuntado."
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/disk-manager/import-disk-image-vm",
"label": "Importar imagen de disco a VM",
"tail": " — mismo flujo pero para archivos de imagen (qcow2 / vmdk / raw / img)."
},
{
"href": "/docs/disk-manager/import-disk-lxc",
"label": "Importar disco a LXC",
"tail": " — flujo equivalente para contenedores LXC."
},
{
"href": "/docs/disk-manager/add-controller-nvme-vm",
"label": "Añadir controladora o NVMe a VM",
"tail": " — cuando necesitas passthrough PCIe / NVMe completo en lugar de adjuntar discos."
},
{
"href": "/docs/help-info/storage-commands",
"label": "Comandos de almacenamiento y discos",
"tail": " — referencia de shell para qm importdisk y relacionados."
},
{
"href": "/docs/disk-manager",
"label": "Resumen de Disk Manager",
"tail": "."
}
]
}
}

View File

@@ -0,0 +1,135 @@
{
"meta": {
"title": "Disk Manager de Proxmox — adjuntar discos a VMs / LXC, tests SMART, wipe | ProxMenux",
"description": "Gestiona discos físicos en un host Proxmox VE con ProxMenux: pasa discos a VMs o contenedores LXC (qm set scsi/sata/virtio, pct mp), importa imágenes de disco qcow2 / vmdk / vdi, pasa HBAs o controladoras NVMe enteras, borra discos de forma segura y ejecuta self-tests SMART.",
"ogTitle": "Disk Manager de Proxmox — adjuntar discos a VMs / LXC, tests SMART, wipe",
"ogDescription": "Adjuntar discos a VMs / LXC, importar imágenes de disco, PCI passthrough para controladoras, wipe seguro y tests SMART en Proxmox VE.",
"twitterTitle": "Disk Manager de Proxmox | ProxMenux",
"twitterDescription": "Adjuntar discos a VMs / LXC, importar imágenes, PCI passthrough, wipe seguro y tests SMART."
},
"header": {
"title": "Disk Manager",
"description": "El menú Disk Manager agrupa las herramientas de ProxMenux para gestionar discos físicos en un host Proxmox: adjuntar discos a VMs y contenedores LXC, importar imágenes de disco, pasar una controladora entera o un dispositivo NVMe, borrar discos de forma segura y ejecutar tests de salud SMART.",
"section": "Disk Manager"
},
"intro": {
"title": "Para qué sirve este menú",
"body": "Cada opción aquí opera sobre <strong>discos físicos ya visibles para el host Proxmox</strong>. El menú está dividido en tres grupos — <strong>VM</strong> (adjuntar discos o importar imágenes a una máquina virtual), <strong>LXC</strong> (adjuntar discos a un contenedor) y <strong>Utilidades</strong> (format seguro, salud SMART). Los chequeos de seguridad se aplican en todas partes: los discos del sistema y los discos ya en uso están ocultos o bloqueados."
},
"opening": {
"heading": "Abrir el menú",
"body": "Desde el menú principal de ProxMenux, selecciona <strong>Disk Manager</strong>. Verás esto:",
"imageAlt": "Menú Disk Manager con los bloques VM, LXC y Utilidades"
},
"groups": {
"heading": "Tres grupos de herramientas",
"intro": "El menú Disk Manager está organizado en tres grupos — <strong>VM</strong>, <strong>LXC</strong> y <strong>Utilidades</strong>. Pulsa una tarjeta para ir directamente a las herramientas de ese grupo.",
"vmTitle": "VM",
"vmBody": "Herramientas que operan sobre máquinas virtuales existentes. La VM debe estar apagada; ProxMenux lo valida antes de tocar la configuración.",
"vmItems": [
"Importar disco a VM",
"Importar imagen de disco a VM",
"Añadir controladora o NVMe a VM"
],
"lxcTitle": "LXC",
"lxcBody": "Herramientas que operan sobre contenedores existentes. El passthrough directo de dispositivos necesita un contenedor privilegiado; el script se ofrece a convertirlo si hace falta.",
"lxcItems": [
"Importar disco a LXC"
],
"utilitiesTitle": "Utilidades",
"utilitiesBody": "Herramientas del lado del host que operan sobre los propios discos, independientemente de cualquier VM o contenedor.",
"utilitiesItems": [
"Formatear / borrar disco físico",
"Salud y test SMART de disco"
]
},
"vm": {
"heading": "VM",
"intro": "Herramientas que operan sobre máquinas virtuales existentes. La VM debe estar apagada; ProxMenux lo valida antes de tocar la configuración.",
"options": [
{
"icon": "HardDrive",
"href": "/docs/disk-manager/import-disk-vm",
"title": "Importar disco a VM",
"description": "Adjunta un disco físico no asignado a una VM existente. Soporta SATA / SCSI / VirtIO / IDE, usa rutas persistentes /dev/disk/by-id."
},
{
"icon": "FileDown",
"href": "/docs/disk-manager/import-disk-image-vm",
"title": "Importar imagen de disco a VM",
"description": "Importa archivos de imagen de disco (.img / .qcow2 / .vmdk / .raw) a una VM existente. Flujo en dos fases, qm importdisk por debajo."
},
{
"icon": "Cpu",
"href": "/docs/disk-manager/add-controller-nvme-vm",
"title": "Añadir controladora o NVMe a VM",
"description": "PCI passthrough de un HBA SATA / SAS entero o un dispositivo NVMe a una VM. Gestiona la habilitación de IOMMU y la detección de conflictos."
}
]
},
"lxc": {
"heading": "LXC",
"intro": "Herramientas que operan sobre contenedores LXC existentes. El passthrough directo de dispositivos requiere un contenedor privilegiado; el script se ofrece a convertir el contenedor si hace falta.",
"options": [
{
"icon": "Boxes",
"href": "/docs/disk-manager/import-disk-lxc",
"title": "Importar disco a LXC",
"description": "Adjunta un disco físico no asignado a un contenedor LXC existente como mount point. Gestiona la detección / formateo de filesystem y la conversión a privilegiado."
}
]
},
"utilities": {
"heading": "Utilidades",
"intro": "Herramientas del lado del host que operan sobre los propios discos, independientemente de cualquier VM o contenedor.",
"options": [
{
"icon": "Eraser",
"href": "/docs/disk-manager/format-disk",
"title": "Formatear / borrar disco físico (seguro)",
"description": "Wipe seguro de disco con controles estrictos: solo se muestran discos completamente libres y siempre se exige doble confirmación."
},
{
"icon": "Activity",
"href": "/docs/disk-manager/smart-disk-test",
"title": "Salud y test SMART de disco",
"description": "Ejecuta chequeos de salud SMART y self-tests cortos / largos en unidades SATA, SAS y NVMe. Exporta JSON para el Monitor."
}
]
},
"safety": {
"title": "Reglas de seguridad comunes a todas las opciones",
"intro": "ProxMenux filtra cualquier cosa que pueda dañar el host:",
"items": [
"El <strong>disco del sistema</strong> (root pool, swap, miembros activos de ZFS / LVM / RAID) está siempre oculto.",
"Los discos <strong>montados</strong> en cualquier punto del host se ocultan o se bloquean en ejecución.",
"Los discos <strong>referenciados por una VM o LXC en ejecución</strong> no se pueden reasignar ni borrar.",
"Las operaciones que pueden cambiar el estado del host (habilitar IOMMU, wipe) requieren confirmación explícita."
]
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/storage-share",
"label": "Storage & Share Manager",
"tail": " — registrar almacenamiento en el propio Proxmox (NFS / Samba / iSCSI / local) y compartir carpetas entre host y CTs."
},
{
"href": "/docs/help-info/storage-commands",
"label": "Comandos de almacenamiento y discos",
"tail": " — referencia de block devices, LVM, pvesm, SMART."
},
{
"href": "/docs/help-info/zfs-commands",
"label": "Comandos de gestión de ZFS",
"tail": " — para pools y datasets ZFS."
},
{
"href": "/docs/hardware/gpu-vm-passthrough",
"label": "Añadir GPU a VM (Passthrough)",
"tail": " — los mismos conceptos de IOMMU / VFIO aplicados a GPUs."
}
]
}
}

View File

@@ -0,0 +1,146 @@
{
"meta": {
"title": "Salud y test SMART de disco | ProxMenux Documentation",
"description": "Ejecuta chequeos de salud SMART y tests de disco en Proxmox VE con ProxMenux. Soporta SATA / SAS (smartmontools) y NVMe (nvme-cli). Self-tests cortos y largos, exportación JSON para integración con ProxMenux Monitor.",
"ogTitle": "Salud y test SMART de disco | ProxMenux Documentation",
"ogDescription": "Chequeos de salud SMART y self-tests para unidades SATA / SAS y NVMe en Proxmox. Exportación JSON para el Monitor."
},
"header": {
"title": "Salud y test SMART de disco",
"description": "Lee datos SMART y lanza self-tests en los discos físicos adjuntos al host Proxmox. ProxMenux instala automáticamente smartmontools para SATA / SAS y nvme-cli para NVMe, ejecuta la acción dentro del firmware de la unidad (los tests largos sobreviven al cierre del terminal) y exporta los resultados en JSON para el ProxMenux Monitor.",
"section": "Disk Manager · Utilidades"
},
"intro": {
"title": "Para qué sirve esto",
"body": "SMART (Self-Monitoring, Analysis and Reporting Technology) permite que la propia unidad reporte su salud y ejecute self-tests. Esta herramienta expone esos datos sin que tengas que recordar la invocación correcta de <code>smartctl</code> / <code>nvme</code>, y persiste la salida como JSON para que el Monitor pueda graficar tendencias en el tiempo."
},
"howRuns": {
"heading": "Cómo se ejecuta el script",
"body": "Todas las acciones aquí son no destructivas — SMART lee los contadores del firmware de la unidad y los self-tests se ponen en cola dentro de la propia unidad. No hace falta separación de fases. El flujo es: chequeo de dependencias → selección de disco → selección de acción → invocación de la herramienta (smartctl o nvme-cli según el bus del disco) → salida impresa más exportación JSON para el Monitor."
},
"deps": {
"heading": "Dependencias",
"body": "La herramienta autoinstala lo que necesita en la primera ejecución. Las unidades SATA / SAS dependen de <code>smartmontools</code>; las unidades NVMe dependen de <code>nvme-cli</code>. Ambos:"
},
"actions": {
"heading": "Acciones disponibles",
"headerAction": "Acción",
"headerWhat": "Qué lee / ejecuta",
"headerDur": "Duración",
"rows": [
{
"action": "Estado de salud rápido",
"whatRich": "PASSED/FAILED global + atributos clave.<br /><code>smartctl -H</code> + <code>-A</code> (SATA/SAS) o <code>nvme smart-log</code> (NVMe).",
"dur": "Instantáneo"
},
{
"action": "Informe completo",
"whatRich": "Datos SMART completos, scrollables. <code>smartctl -x</code> para SATA/SAS o <code>nvme smart-log</code> + <code>id-ctrl</code> para NVMe.",
"dur": "Instantáneo"
},
{
"action": "Test corto",
"what": "Comprobación básica de superficie y eléctrica, encolada dentro del firmware de la unidad.",
"dur": "~2 minutos"
},
{
"action": "Test largo",
"what": "Escaneo completo de toda la superficie. Se ejecuta en el hardware de la unidad — persiste aunque cierres el terminal.",
"dur": "Horas (depende del tamaño del disco)"
},
{
"action": "Comprobar el progreso del test",
"what": "Estado del self-test activo o más reciente.",
"dur": "Instantáneo"
}
],
"tipTitle": "Los tests largos sobreviven al cierre del terminal",
"tipBody": "Un test largo se encola <em>dentro de la unidad</em> — no depende de que el proceso de ProxMenux siga vivo. Puedes cerrar el terminal, reiniciar el host Proxmox (el test continúa donde lo dejó en algunas unidades) o simplemente volver más tarde y usar <strong>Comprobar el progreso del test</strong> para ver el resultado."
},
"json": {
"heading": "Exportación JSON para el Monitor",
"intro": "Cada ejecución escribe un archivo JSON con marca de tiempo en <code>/usr/local/share/proxmenux/smart/&lt;disk&gt;/</code>. La estructura es:",
"outro": "El ProxMenux Monitor los recoge para renderizar tendencias de salud por disco; los archivos viejos se rotan automáticamente cuando se alcanza el límite de retención."
},
"steps": {
"heading": "Paso a paso",
"stepLabel": "Paso",
"list": [
{
"title": "Elige un disco",
"body": "ProxMenux lista cada disco físico del host con su modelo y tamaño. A diferencia de la herramienta Format, esta lista no se filtra por seguridad — leer SMART es una operación no destructiva.",
"img": "/disk/smart/disk-selection.png",
"alt": "Menú de selección de disco SMART",
"caption": "Menú de selección de disco SMART"
},
{
"title": "Elige una acción",
"body": "Elige entre Estado de salud rápido, Informe completo, Test corto, Test largo o Comprobar progreso. El menú se queda abierto después de cada acción para que puedas encadenar varias consultas sobre el mismo disco.",
"img": "/disk/smart/action-menu.png",
"alt": "Menú de acciones SMART",
"caption": "Menú de acciones SMART (5 acciones + cancelar)"
},
{
"title": "(Solo test largo) Confirma ejecución en background",
"body": "ProxMenux te avisa de que el test seguirá corriendo después de cerrar el terminal y muestra dónde caerá el resultado JSON. Acepta para encolarlo.",
"img": "/disk/smart/long-test-warning.png",
"alt": "Diálogo de confirmación del test largo",
"caption": "Confirmación del test largo — corre en background, resultado guardado en JSON"
},
{
"title": "Revisa los resultados",
"bodyRich": "El estado y el informe se imprimen en el terminal y se escriben en JSON. Para los tests largos, vuelve más tarde y ejecuta <strong>Comprobar el progreso del test</strong> en el mismo disco para ver el resultado.",
"img": "/disk/smart/quick-status.png",
"alt": "Salida del estado de salud rápido",
"caption": "Salida del estado de salud rápido (SATA — smartctl -H + -A)"
}
]
},
"manual": {
"heading": "Equivalentes manuales",
"nvmeWarnTitle": "Los self-tests NVMe dependen del firmware de la unidad",
"nvmeWarnBody": "No toda unidad NVMe soporta el comando de self-test corto/largo. Si una unidad rechaza el test, el log SMART y los datos del ID controller (<code>nvme smart-log</code> + <code>id-ctrl</code>) siguen siendo la señal de salud más fiable."
},
"troubleshoot": {
"heading": "Solución de problemas",
"noSmartTitle": "\"Could not read SMART data from /dev/sdX\"",
"noSmartBody": "El disco está probablemente detrás de una controladora RAID / SAS que no pasa SMART. Con tarjetas basadas en megaraid, prueba <code>smartctl -d megaraid,N /dev/sdX</code>. Para HBAs en modo IT la invocación directa funciona.",
"longTitle": "El test largo no termina nunca",
"longBody": "El test se encola en el firmware de la unidad y pausa si el disco tiene carga pesada. Ejecutarlo de noche en un sistema en reposo suele funcionar. También puedes revisar <code>smartctl -c</code> para ver el porcentaje restante; si se queda atascado en un LBA fijo, el disco está fallando en ese sector."
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/disk-manager/format-disk",
"label": "Formatear / borrar disco físico",
"tail": " — reutilizar un disco después de confirmar que está sano."
},
{
"href": "/docs/help-info/storage-commands",
"label": "Comandos de almacenamiento y discos → Salud SMART de disco",
"tail": " — referencia de smartctl / nvme lista para copiar y pegar."
},
{
"href": "/docs/help-info/zfs-commands",
"label": "Comandos de gestión de ZFS",
"tail": " — zpool scrub como equivalente a los tests SMART a nivel de capa de almacenamiento."
},
{
"href": "/docs/monitor/dashboard/storage",
"label": "ProxMenux Monitor — pestaña Almacenamiento",
"tail": " — drill-in de disco que consume el JSON exportado aquí (tabla SMART completa, historial, informe PDF)."
},
{
"href": "/docs/monitor/dashboard/hardware",
"label": "ProxMenux Monitor — pestaña Hardware",
"tail": " — Storage Summary con modelo, capacidad y velocidad de link negociada (actual vs máxima en NVMe)."
},
{
"href": "/docs/disk-manager",
"label": "Resumen de Disk Manager",
"tail": "."
}
]
}
}