From 2d48b87ac1ad282479326711509c44a9b924cfb4 Mon Sep 17 00:00:00 2001 From: MacRimi Date: Sun, 18 Oct 2026 15:56:35 +0200 Subject: [PATCH] Keep guests running during the PVE 8 to 9 upgrade and complete the help menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - The upgrade no longer restarts pve-manager while preparing the host, so running guests are not stopped - The upgrade stops before touching any repository when the Proxmox VE 8 update fails or is cancelled - The unattended mode continues into the upgrade instead of exiting after the mode question - Without a subscription, the enterprise repository added by pve-manager 9 is left disabled after the upgrade - grub-efi-amd64 is installed with its output visible in interactive mode - Help menu: qm unlock and pct unlock entries in the VM/CT section, renumbered items and aligned labels - Help menu: pvesm scan nfs takes the server address, and pveupgrade is described as the interactive upgrade - Help menu: an empty choice no longer runs the previous command - translate() finds catalog entries for texts with leading or trailing spaces and keeps the padding - Spanish help menu texts use the tú form and the Intro key - New help and upgrade messages translated into all languages --- lang/de.json | 5 + lang/es.json | 131 +++++++++++----------- lang/fr.json | 5 + lang/it.json | 5 + lang/pt.json | 5 + lang/sk.json | 5 + lang/sv.json | 5 + scripts/global/update-pve8.sh | 9 +- scripts/help_info_menu.sh | 95 +++++++++++----- scripts/utilities/upgrade_pve8_to_pve9.sh | 28 +++-- scripts/utils.sh | 12 ++ 11 files changed, 201 insertions(+), 104 deletions(-) diff --git a/lang/de.json b/lang/de.json index d1f6b1dc..92c7f7f1 100644 --- a/lang/de.json +++ b/lang/de.json @@ -4908,6 +4908,7 @@ "Proxmox System Update": "Proxmox-Systemupdate", "Proxmox Update": "Proxmox-Update", "Proxmox VE": "Proxmox VE", + "Proxmox VE 8 package upgrade failed. Review the APT output before retrying.": "Die Paketaktualisierung von Proxmox VE 8 ist fehlgeschlagen. Prüfen Sie die APT-Ausgabe, bevor Sie es erneut versuchen.", "Proxmox VE 8 system update completed successfully": "Proxmox VE 8 Systemupdate erfolgreich abgeschlossen", "Proxmox VE 8 to 9 Manual Upgrade Guide": "Manuelles Upgrade-Handbuch für Proxmox VE 8 auf 9", "Proxmox VE 9.x no-subscription repository created": "Proxmox VE 9.x No-Subscription-Repository erstellt", @@ -5182,6 +5183,8 @@ "Remove saved credentials": "Gespeicherte Anmeldeinformationen entfernen", "Remove subscription banner": "Abonnementbanner entfernen", "Remove the application? Its container disks are deleted, and only a backup can bring them back.": "Anwendung entfernen? Seine Containerfestplatten werden gelöscht und können nur durch ein Backup wiederhergestellt werden.", + "Remove the lock left on a VM by an interrupted task": "Die Sperre entfernen, die eine unterbrochene Aufgabe auf einer VM hinterlassen hat", + "Remove the lock left on a container by an interrupted task": "Die Sperre entfernen, die eine unterbrochene Aufgabe auf einem Container hinterlassen hat", "Remove the saved credentials for {registry}?\nRunning apps will keep working.": "Die gespeicherten Anmeldeinformationen für {registry} entfernen?\nLaufende Apps funktionieren weiterhin.", "Remove the unprivileged flag from configuration:": "Entfernen Sie das Unprivileged-Flag aus der Konfiguration:", "Remove unused packages and their config": "Entfernen Sie nicht verwendete Pakete und deren Konfiguration", @@ -5848,6 +5851,7 @@ "Should show pve-manager/9.x.x": "Sollte pve-manager/9.x.x anzeigen", "Shoutrrr addresses for the notifications (optional)": "Shoutrrr-Adressen für die Benachrichtigungen (optional)", "Show All Scripts": "Alle Skripte anzeigen", + "Show CT users and their UID/GID on the host": "CT-Benutzer und UID/GID auf dem Host anzeigen", "Show CT users in table format": "CT-Benutzer im Tabellenformat anzeigen", "Show Container Privilege Status": "Container-Berechtigungsstatus anzeigen", "Show DNS resolution status": "DNS-Auflösungsstatus anzeigen", @@ -6289,6 +6293,7 @@ "The Paperless persistent volumes need at least 8 GB": "Die papierlosen persistenten Volumes benötigen mindestens 8 GB", "The PostgreSQL volume needs at least 4 GB": "Das PostgreSQL-Volume benötigt mindestens 4 GB", "The PostgreSQL volume needs at least 8 GB": "Das PostgreSQL-Volume benötigt mindestens 8 GB", + "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.": "Die Aktualisierung von Proxmox VE 8 wurde nicht abgeschlossen. Das Upgrade auf Proxmox VE 9 wurde nicht gestartet.", "The Proxmox archive keyring is missing; Ceph installation cannot continue safely": "Der Archivschlüsselbund Proxmox fehlt;Die Ceph-Installation kann nicht sicher fortgesetzt werden", "The Proxmox inventory and the local configurations differ": "Das Proxmox-Inventar und die lokalen Konfigurationen unterscheiden sich", "The ROCm image has no support for the AMD GPU of this host:": "Das ROCm-Image unterstützt die AMD-GPU dieses Hosts nicht:", diff --git a/lang/es.json b/lang/es.json index 0eb6cbfe..a12ca29e 100644 --- a/lang/es.json +++ b/lang/es.json @@ -259,7 +259,7 @@ "Add new PVE 9 enterprise repository (deb822 format) (Only if using enterprise):": "Agregue un nuevo repositorio empresarial PVE 9 (formato deb822) (solo si usa Enterprise):", "Add or change a device": "Agregar o cambiar un dispositivo", "Add or remove extra paths and devices": "Añadir o eliminar rutas y dispositivos extra", - "Add physical disk to VM via": "Agregue el disco físico a la VM mediante", + "Add physical disk to VM via": "Añadir un disco físico a la VM mediante", "Add share block in /etc/samba/smb.conf:": "Agregue el bloque para compartir en /etc/samba/smb.conf:", "Add unprivileged flag to container configuration:": "Agregar la opción de contenedor sin privilegios a su configuración:", "Add virtual disk": "Agregar disco virtual", @@ -569,7 +569,7 @@ "Babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work.": "¡Babybuddy es un compañero para bebés! Ayuda a quienes los cuidan a registrar el sueño, las tomas, los cambios de pañal, el tiempo boca abajo y más, para conocer y prever las necesidades del bebé sin (tantas) conjeturas.", "Back": "Volver", "Back to job list": "Volver a la lista de trabajos", - "Back to previous menu or Esc + Enter": "Volver al menú anterior o Esc + Enter", + "Back to previous menu or Esc + Enter": "Volver al menú anterior o Esc + Intro", "Backed up and cleared": "Guardado en backup y vaciado", "Backend": "Backend", "Backend:": "Parte trasera:", @@ -807,20 +807,20 @@ "Check": "Controlar", "Check BIOS/UEFI in Hardware > BIOS — must match what the original VM used": "Verifique BIOS/UEFI en Hardware > BIOS: debe coincidir con lo que usó la VM original", "Check Coral USB/M.2 detection": "Comprobar la detección de Coral USB/M.2", - "Check LXC GPU/TPU mapping": "Verifique el mapeo LXC GPU/TPU", + "Check LXC GPU/TPU mapping": "Comprobar el mapeo de GPU/TPU de los LXC", "Check NFS Status": "Verificar el estado de NFS", - "Check NVIDIA driver and devices": "Verifique el controlador y los dispositivos NVIDIA", - "Check Proxmox Web UI status": "Verifique el estado de la interfaz de usuario web de Proxmox", + "Check NVIDIA driver and devices": "Comprobar el controlador y los dispositivos NVIDIA", + "Check Proxmox Web UI status": "Comprobar el estado de la interfaz web de Proxmox", "Check Proxmox firewall status": "Comprobar el estado del cortafuegos de Proxmox", "Check Samba Status": "Verificar el estado de Samba", "Check VM disk/PCI slots": "Verifique el disco VM/ranuras PCI", - "Check VM passthrough settings": "Revise la configuración de passthrough de la VM", + "Check VM passthrough settings": "Revisar la configuración de passthrough de la VM", "Check access to an image": "Comprobar el acceso a una imagen", "Check connectivity with another host": "Verificar la conectividad con otro host", "Check container mount points": "Verifique los puntos de montaje del contenedor", "Check if container is unprivileged:": "Compruebe si el contenedor no tiene privilegios:", - "Check kernel params (IOMMU flags)": "Verifique los parámetros del kernel (indicadores IOMMU)", - "Check loaded GPU/TPU modules": "Verifique los módulos GPU/TPU cargados", + "Check kernel params (IOMMU flags)": "Comprobar los parámetros del kernel (opciones IOMMU)", + "Check loaded GPU/TPU modules": "Comprobar los módulos de GPU/TPU cargados", "Check log:": "Revise el log:", "Check resulting config:": "Verifique la configuración resultante:", "Check script not found": "Comprobar script no encontrado", @@ -1654,8 +1654,8 @@ "Delete Borg target": "Eliminar destino Borg", "Delete Export": "Eliminar Exportar", "Delete Share": "Eliminar Compartir", - "Delete a CT (irreversible). Use the correct ": "Eliminar un CT (irreversible). Utilice el correcto", - "Delete a VM (irreversible). Use the correct ": "Eliminar una VM (irreversible). Utilice el correcto", + "Delete a CT (irreversible). Use the correct ": "Eliminar un CT (irreversible). Usa el correcto", + "Delete a VM (irreversible). Use the correct ": "Eliminar una VM (irreversible). Usa el correcto", "Delete archive": "Eliminar archivo", "Delete backup job": "¿Eliminar el trabajo de backup", "Delete it?": "¿Eliminarla?", @@ -1971,7 +1971,7 @@ "Enable": "Habilitar", "Enable / disable job timer": "Activar/desactivar el temporizador de copias", "Enable High Availability services": "Activar servicios de alta disponibilidad", - "Enable IOMMU in GRUB or ZFS boot": "Habilite IOMMU en el arranque GRUB o ZFS", + "Enable IOMMU in GRUB or ZFS boot": "Activar IOMMU en el arranque GRUB o ZFS", "Enable IOMMU support if not enabled": "Habilite la compatibilidad con IOMMU si no está habilitado", "Enable IOMMU, reboot the host, and try again.": "Habilite IOMMU, reinicie el host y vuelva a intentarlo.", "Enable Intel/AMD VA-API video acceleration": "Activar la aceleración de vídeo VA-API de Intel/AMD", @@ -2020,30 +2020,30 @@ "Ensuring proxmox.sources (PVE 9, no-subscription, deb822) is present...": "Garantizar que proxmox.sources (PVE 9, sin suscripción, deb822) esté presente...", "Ensuring pve-enterprise.sources (PVE 9, deb822) is present...": "Garantizar que pve-enterprise.sources (PVE 9, deb822) esté presente...", "Enter": "Ingresar", - "Enter CT ID:": "Ingrese el ID de CT:", - "Enter MSR register (e.g. 0x10):": "Ingrese el registro MSR (por ejemplo, 0x10):", + "Enter CT ID:": "Introduce el ID del CT:", + "Enter MSR register (e.g. 0x10):": "Introduce el registro MSR (por ejemplo, 0x10):", "Enter NFS export path (e.g., /mnt/shared):": "Ingrese la ruta de exportación NFS (por ejemplo, /mnt/shared):", - "Enter NFS server IP or hostname:": "Ingrese la IP o el nombre de host del servidor NFS:", - "Enter NVMe device (e.g., nvme0):": "Ingrese el dispositivo NVMe (por ejemplo, nvme0):", - "Enter PCI BDF (e.g. 0000:01:00.0):": "Ingrese PCI BDF (por ejemplo, 0000:01:00.0):", + "Enter NFS server IP or hostname:": "Introduce la IP o el nombre de host del servidor NFS:", + "Enter NVMe device (e.g., nvme0):": "Introduce el dispositivo NVMe (por ejemplo, nvme0):", + "Enter PCI BDF (e.g. 0000:01:00.0):": "Introduce el BDF PCI (por ejemplo, 0000:01:00.0):", "Enter PCI BDF (e.g. 0000:04:00.0):": "Ingrese PCI BDF (por ejemplo, 0000:04:00.0):", "Enter Path": "Ingresar ruta", "Enter Samba server IP:": "Ingrese la IP del servidor Samba:", "Enter Samba share name:": "Ingrese el nombre del recurso compartido de Samba:", "Enter Tailscale Auth Key": "Ingrese la clave de autenticación de Tailscale", - "Enter VM ID:": "Introduzca el ID de la máquina virtual:", - "Enter VM/CT ID:": "Introduzca el ID de VM/CT:", + "Enter VM ID:": "Introduce el ID de la VM:", + "Enter VM/CT ID:": "Introduce el ID de la VM o del CT:", "Enter ZFS pool name for the selected disk:": "Ingrese el nombre del grupo ZFS para el disco seleccionado:", "Enter a name for the mount point (used as /mnt/):": "Introduce un nombre para el punto de montaje (se usará como /mnt/):", "Enter a name for the new virtual machine:": "Ingrese un nombre para la nueva máquina virtual:", "Enter a non-empty password or access token on a single line.": "Escribe una contraseña o un token de acceso, en una sola línea.", - "Enter a number, or write or paste a command:": "Ingrese un número, o escriba o pegue un comando:", + "Enter a number, or write or paste a command:": "Introduce un número, o escribe o pega un comando:", "Enter a systemd calendar event, e.g.:": "Introduzca un evento de calendario de systemd, por ejemplo:", "Enter a usable IPv4 address with its prefix, for example": "Introduzca una dirección IPv4 usable con su prefijo, por ejemplo", "Enter a valid registry username.": "Escribe un usuario válido para el registro.", - "Enter backup file (.zst):": "Ingrese el archivo de backup (.zst):", - "Enter backup path (.tar.zst):": "Ingrese la ruta de backup (.tar.zst):", - "Enter backup path (.vma.zst):": "Ingrese la ruta de backup (.vma.zst):", + "Enter backup file (.zst):": "Introduce el archivo de backup (.zst):", + "Enter backup path (.tar.zst):": "Introduce la ruta del backup (.tar.zst):", + "Enter backup path (.vma.zst):": "Introduce la ruta del backup (.vma.zst):", "Enter base folder for temporary files and converter (default:": "Ingrese la carpeta base para archivos temporales y convertidor (predeterminado:", "Enter boot target (e.g. scsi0, sata0, ide0):": "Ingrese el destino de inicio (por ejemplo, scsi0, sata0, ide0):", "Enter content types (comma-separated):": "Introduzca los tipos de contenido (separados por comas):", @@ -2056,30 +2056,30 @@ "Enter custom pathr": "Ingrese una ruta personalizada", "Enter destination directory for exported file(s):": "Ingrese el directorio de destino para los archivos exportados:", "Enter destination path for ISO file": "Ingrese la ruta de destino para el archivo ISO", - "Enter destination path:": "Introduzca la ruta de destino:", - "Enter device (e.g., sda or nvme0):": "Ingrese el dispositivo (por ejemplo, sda o nvme0):", + "Enter destination path:": "Introduce la ruta de destino:", + "Enter device (e.g., sda or nvme0):": "Introduce el dispositivo (por ejemplo, sda o nvme0):", "Enter directory containing OVA/OVF files:": "Ingrese al directorio que contiene los archivos OVA/OVF:", "Enter directory path:": "Introduzca la ruta del directorio:", - "Enter disk image path:": "Ingrese la ruta de la imagen del disco:", + "Enter disk image path:": "Introduce la ruta de la imagen de disco:", "Enter disk or partition path (prefer /dev/disk/by-id/...):": "Ingrese la ruta del disco o la partición (prefiera /dev/disk/by-id/...):", - "Enter domain name:": "Introduzca el nombre de dominio:", - "Enter domain:": "Introduzca el dominio:", + "Enter domain name:": "Introduce el nombre de dominio:", + "Enter domain:": "Introduce el dominio:", "Enter filesystem (ext4/xfs/btrfs):": "Ingrese al sistema de archivos (ext4/xfs/btrfs):", "Enter folder name for /mnt:": "Ingrese el nombre de la carpeta para /mnt:", - "Enter full disk path as shown above (starting with /dev/disk/by-id/xxx...):": "Ingrese la ruta completa del disco como se muestra arriba (comenzando con /dev/disk/by-id/xxx...):", + "Enter full disk path as shown above (starting with /dev/disk/by-id/xxx...):": "Introduce la ruta completa del disco tal como aparece arriba (empieza por /dev/disk/by-id/xxx...):", "Enter full path for mount point:": "Ingrese la ruta completa para el punto de montaje:", - "Enter full path to the disk image (e.g., /var/lib/vz/images/xyz.img):": "Ingrese la ruta completa a la imagen del disco (por ejemplo, /var/lib/vz/images/xyz.img):", - "Enter full path to the input image (e.g., /var/lib/vz/images/disk.vmdk):": "Ingrese la ruta completa a la imagen de entrada (por ejemplo, /var/lib/vz/images/disk.vmdk):", + "Enter full path to the disk image (e.g., /var/lib/vz/images/xyz.img):": "Introduce la ruta completa de la imagen de disco (por ejemplo, /var/lib/vz/images/xyz.img):", + "Enter full path to the input image (e.g., /var/lib/vz/images/disk.vmdk):": "Introduce la ruta completa de la imagen de entrada (por ejemplo, /var/lib/vz/images/disk.vmdk):", "Enter full path:": "Ingrese la ruta completa:", "Enter host IP (e.g., 192.168.0.100):": "Ingrese la IP del host (por ejemplo, 192.168.0.100):", - "Enter host or IP:": "Ingrese el host o IP:", - "Enter hostpci slot (e.g. 0):": "Ingrese la ranura hostpci (por ejemplo, 0):", + "Enter host or IP:": "Introduce el host o la IP:", + "Enter hostpci slot (e.g. 0):": "Introduce el slot hostpci (por ejemplo, 0):", "Enter hostpci slot number (e.g. 0):": "Ingrese el número de ranura hostpci (por ejemplo, 0):", "Enter iSCSI target portal IP or hostname:": "Ingrese la IP o el nombre de host del portal de destino iSCSI:", "Enter image full path:": "Ingrese la ruta completa de la imagen:", "Enter imported disk reference (e.g. local-lvm:vm-100-disk-0):": "Ingrese la referencia del disco importado (por ejemplo, local-lvm:vm-100-disk-0):", "Enter interface (sata/scsi/virtio/ide):": "Ingrese a la interfaz (sata/scsi/virtio/ide):", - "Enter interface name (e.g. eth0):": "Ingrese el nombre de la interfaz (por ejemplo, eth0):", + "Enter interface name (e.g. eth0):": "Introduce el nombre de la interfaz (por ejemplo, eth0):", "Enter mount path on host:": "Ingrese la ruta de montaje en el host:", "Enter mount point in CT (e.g. /mnt/data):": "Ingrese el punto de montaje en CT (por ejemplo, /mnt/data):", "Enter mp slot number (e.g. 0):": "Ingrese el número de ranura mp (por ejemplo, 0):", @@ -2091,26 +2091,26 @@ "Enter password for": "Introduzca la contraseña para", "Enter password:": "Introduzca la contraseña:", "Enter path manually": "Ingrese la ruta manualmente", - "Enter path to analyze:": "Ingrese la ruta a analizar:", + "Enter path to analyze:": "Introduce la ruta que quieres analizar:", "Enter path:": "Introduzca la ruta:", - "Enter pool name to clear errors:": "Ingrese el nombre del grupo para borrar errores:", - "Enter pool name to export:": "Ingrese el nombre del grupo para exportar:", - "Enter pool name to import:": "Ingrese el nombre del grupo para importar:", - "Enter pool name:": "Introduzca el nombre del grupo:", - "Enter pool/dataset name:": "Ingrese el nombre del grupo/conjunto de datos:", - "Enter pool/dataset to destroy:": "Ingrese el grupo/conjunto de datos para destruir:", - "Enter pool/dataset to mount:": "Ingrese el grupo/conjunto de datos para montar:", + "Enter pool name to clear errors:": "Introduce el nombre del pool cuyos errores quieres borrar:", + "Enter pool name to export:": "Introduce el nombre del pool que quieres exportar:", + "Enter pool name to import:": "Introduce el nombre del pool que quieres importar:", + "Enter pool name:": "Introduce el nombre del pool:", + "Enter pool/dataset name:": "Introduce el nombre del pool o dataset:", + "Enter pool/dataset to destroy:": "Introduce el pool o dataset que quieres destruir:", + "Enter pool/dataset to mount:": "Introduce el pool o dataset que quieres montar:", "Enter search term (leave empty to show all scripts):": "Ingrese el término de búsqueda (déjelo vacío para mostrar todos los scripts):", "Enter server IP": "Ingrese la IP del servidor", "Enter server IP/hostname manually": "Ingrese la IP/nombre de host del servidor manualmente", - "Enter server IP:": "Ingrese la IP del servidor:", + "Enter server IP:": "Introduce la IP del servidor:", "Enter slot number (e.g. 0):": "Ingrese el número de ranura (por ejemplo, 0):", "Enter storage ID for Proxmox:": "Ingrese el ID de almacenamiento para Proxmox:", - "Enter storage ID:": "Ingrese el ID de almacenamiento:", - "Enter storage name:": "Introduzca el nombre del almacenamiento:", + "Enter storage ID:": "Introduce el ID del almacenamiento:", + "Enter storage name:": "Introduce el nombre del almacenamiento:", "Enter subnet (e.g., 192.168.0.0/24):": "Ingrese la subred (por ejemplo, 192.168.0.0/24):", "Enter target disk (e.g. /dev/sdX):": "Ingrese el disco de destino (por ejemplo, /dev/sdX):", - "Enter target storage name (e.g., local-lvm):": "Ingrese el nombre del almacenamiento de destino (por ejemplo, local-lvm):", + "Enter target storage name (e.g., local-lvm):": "Introduce el nombre del almacenamiento de destino (por ejemplo, local-lvm):", "Enter target storage:": "Ingrese el almacenamiento de destino:", "Enter the BORG REPOKEY passphrase for target:": "Ingrese la frase de contraseña de BORG REPOKEY para el destino:", "Enter the Samba username:": "Ingrese el nombre de usuario de Samba:", @@ -2119,14 +2119,14 @@ "Enter the full path to the directory containing disk images:": "Ingrese la ruta completa al directorio que contiene las imágenes del disco:", "Enter the full path to the host directory:": "Ingrese la ruta completa al directorio del host:", "Enter the full path to the host folder:": "Ingrese la ruta completa a la carpeta del host:", - "Enter the full path to the output image (e.g., /var/lib/vz/images/output.qcow2):": "Ingrese la ruta completa a la imagen de salida (por ejemplo, /var/lib/vz/images/output.qcow2):", + "Enter the full path to the output image (e.g., /var/lib/vz/images/output.qcow2):": "Introduce la ruta completa de la imagen de salida (por ejemplo, /var/lib/vz/images/output.qcow2):", "Enter the host mount path:": "Ingrese la ruta de montaje del host:", "Enter the iperf3 server IP or hostname:": "Ingrese la IP o el nombre de host del servidor iperf3:", "Enter the maximum size (in MB) to allocate for /var/log in RAM (e.g. 128, 256, 512):": "Ingrese el tamaño máximo (en MB) para asignar para /var/log en la RAM (por ejemplo, 128, 256, 512):", "Enter the mount point for the NFS export (e.g., /mnt/mynfs):": "Ingrese el punto de montaje para la exportación NFS (por ejemplo, /mnt/mynfs):", "Enter the mount point for the shared folder (e.g., /mnt/myshare):": "Ingrese el punto de montaje para la carpeta compartida (por ejemplo, /mnt/myshare):", "Enter the mount point inside the CT for": "Introduzca el punto de montaje dentro del CT para", - "Enter the number or type the interface name:": "Ingrese el número o escriba el nombre de la interfaz:", + "Enter the number or type the interface name:": "Introduce el número o escribe el nombre de la interfaz:", "Enter the password for Samba user:": "Ingrese la contraseña para el usuario de Samba:", "Enter the recovery passphrase set when the keyfile was created:": "Ingrese la frase de contraseña de recuperación establecida cuando se creó el archivo de claves:", "Enter the size in whole GB, for example": "Introduzca el tamaño en GB enteros, por ejemplo", @@ -2428,7 +2428,7 @@ "Fastfetch installed successfully": "Fastfetch se instaló correctamente", "Fastfetch is not installed correctly.": "Fastfetch no está instalado correctamente.", "Fastfetch is not installed.": "Fastfetch no está instalado.", - "Fastfetch is not installed. Run: apt install fastfetch": "Fastfetch no está instalado. Ejecute: apt install fastfetch", + "Fastfetch is not installed. Run: apt install fastfetch": "Fastfetch no está instalado. Ejecuta: apt install fastfetch", "Fastfetch now displays: System optimised by: ProxMenux": "Fastfetch ahora muestra: Sistema optimizado por: ProxMenux", "Fastfetch removed from system": "Fastfetch eliminado del sistema", "Fastfetch will start automatically in the console": "Fastfetch se iniciará automáticamente en la consola", @@ -2502,8 +2502,8 @@ "Force NFSv3:": "Forzar NFSv3:", "Force NFSv4:": "Forzar NFSv4:", "Force stop VM now?": "¿Forzar la detención de VM ahora?", - "Force stop a container. Use the correct ": "Forzar la parada de un contenedor. Utilice el correcto", - "Force stop a virtual machine. Use the correct ": "Forzar la detención de una máquina virtual. Utilice el correcto", + "Force stop a container. Use the correct ": "Forzar la parada de un contenedor. Usa el correcto", + "Force stop a virtual machine. Use the correct ": "Forzar la parada de una VM. Usa el correcto", "Forcing removal...": "Forzando la eliminación...", "Format / Wipe Physical Disk (Safe)": "Formatear/borrar disco físico (seguro)", "Format Mode": "Modo de formato", @@ -3615,7 +3615,7 @@ "Lynis is a security auditing tool that performs comprehensive system scans including:": "Lynis es una herramienta de auditoría de seguridad que realiza análisis completos del sistema que incluyen:", "Lynis is currently installed.": "Lynis está instalado actualmente.", "Lynis is not installed on this system.": "Lynis no está instalado en este sistema.", - "Lynis is not installed. Run: apt install lynis": "Lynis no está instalado. Ejecute: apt install lynis", + "Lynis is not installed. Run: apt install lynis": "Lynis no está instalado. Ejecuta: apt install lynis", "Lynis is ready to use": "Lynis está listo para usar", "Lynis updated to version:": "Lynis actualizado a la versión:", "Lynis version:": "Versión Lynis:", @@ -4787,9 +4787,9 @@ "Preserving logs to /var/log.hdd before unmounting...": "Preservando logs en /var/log.hdd antes de desmontar...", "Press 'q' to exit": "Presione 'q' para salir", "Press Ctrl+C to stop the server and return to menu.": "Presione Ctrl+C para detener el servidor y regresar al menú.", - "Press ENTER to continue...": "Presione ENTER para continuar...", - "Press ENTER to return to the menu...": "Presione ENTER para regresar al menú...", - "Press ENTER to return...": "Presione ENTER para regresar...", + "Press ENTER to continue...": "Pulsa Intro para continuar...", + "Press ENTER to return to the menu...": "Pulsa Intro para volver al menú...", + "Press ENTER to return...": "Pulsa Intro para volver...", "Press Enter to close...": "Presione Entrar para cerrar...", "Press Enter to continue": "Presione Entrar para continuar", "Press Enter to continue...": "Presione Entrar para continuar...", @@ -4899,6 +4899,7 @@ "Proxmox System Update": "Actualización del sistema Proxmox", "Proxmox Update": "Actualización de Proxmox", "Proxmox VE": "Proxmox VE", + "Proxmox VE 8 package upgrade failed. Review the APT output before retrying.": "La actualización de paquetes de Proxmox VE 8 ha fallado. Revisa la salida de APT antes de volver a intentarlo.", "Proxmox VE 8 system update completed successfully": "La actualización del sistema Proxmox VE 8 se completó con éxito", "Proxmox VE 8 to 9 Manual Upgrade Guide": "Guía de actualización manual de Proxmox VE 8 a 9", "Proxmox VE 9.x no-subscription repository created": "Se creó el repositorio sin suscripción Proxmox VE 9.x", @@ -5166,6 +5167,8 @@ "Remove saved credentials": "Eliminar las credenciales guardadas", "Remove subscription banner": "Eliminar banner de suscripción", "Remove the application? Its container disks are deleted, and only a backup can bring them back.": "¿Eliminar la aplicación? Los discos de sus contenedores se eliminan y solo un backup puede recuperarlos.", + "Remove the lock left on a VM by an interrupted task": "Quitar el bloqueo que deja en una VM una tarea interrumpida", + "Remove the lock left on a container by an interrupted task": "Quitar el bloqueo que deja en un contenedor una tarea interrumpida", "Remove the saved credentials for {registry}?\nRunning apps will keep working.": "¿Eliminar las credenciales guardadas de {registry}?\nLas aplicaciones en marcha seguirán funcionando.", "Remove the unprivileged flag from configuration:": "Elimine el flag unprivileged de la configuración:", "Remove unused packages and their config": "Eliminar paquetes no utilizados y su configuración", @@ -5274,7 +5277,7 @@ "Resources": "Recursos", "Restart Network": "Reiniciar la red", "Restart Network Service": "Reiniciar el servicio de red", - "Restart Web UI proxy": "Reinicie el proxy de la interfaz de usuario web", + "Restart Web UI proxy": "Reiniciar el proxy de la interfaz web", "Restart aMule automatically on a schedule (true or false)": "Reiniciar aMule automáticamente según una programación (true o false)", "Restart and enable Samba:": "Reinicie y habilite Samba:", "Restart container to activate mount?": "¿Reiniciar el contenedor para activar el montaje?", @@ -5367,9 +5370,9 @@ "Run GGUF LLMs locally with GPU acceleration": "Ejecuta LLM en formato GGUF en local con aceleración por GPU", "Run Now": "Ejecutar ahora", "Run PVE 8 to 9": "Ejecuta PVE 8 a 9", - "Run PVE 8 to 9 check": "Ejecute la verificación PVE 8 a 9", + "Run PVE 8 to 9 check": "Ejecutar la comprobación de PVE 8 a 9", "Run \\\"Install NVIDIA Drivers on Host\\\" first so the installer is cached.": "Primero ejecute \\\"Instalar controladores NVIDIA en el host\\\" para que el instalador se almacene en caché.", - "Run a full security audit": "Ejecute una auditoría de seguridad completa", + "Run a full security audit": "Ejecutar una auditoría de seguridad completa", "Run a job now": "Ejecute un trabajo ahora", "Run apt-get install -f to complete any pending package configurations": "Ejecutar apt-get install -f para completar las configuraciones de paquetes pendientes", "Run as root on the Proxmox node; the registry contains private data": "Ejecutar como root en el nodo Proxmox; el registro contiene datos privados", @@ -5580,7 +5583,7 @@ "Select Virtual Machine": "Seleccionar máquina virtual", "Select a Custom Logo": "Seleccione un logotipo personalizado", "Select a VirtIO ISO to use:": "Seleccione una ISO de VirtIO para usar:", - "Select a category of useful commands:": "Seleccione una categoría de comandos útiles:", + "Select a category of useful commands:": "Elige una categoría de comandos útiles:", "Select a category or search for applications:": "Seleccione una categoría o busque aplicaciones:", "Select a category or search for scripts:": "Seleccione una categoría o busque scripts:", "Select a custom ISO to use:": "Seleccione una ISO personalizada para usar:", @@ -5622,7 +5625,7 @@ "Select conversion guide:": "Seleccione la guía de conversión:", "Select conversion option:": "Seleccione la opción de conversión:", "Select destination": "Seleccionar destino", - "Select disk interface type:": "Seleccione el tipo de interfaz de disco:", + "Select disk interface type:": "Elige el tipo de interfaz del disco:", "Select driver version": "Seleccione la versión del controlador", "Select export format:": "Seleccione el formato de exportación:", "Select export permissions:": "Seleccione permisos de exportación:", @@ -5832,6 +5835,7 @@ "Should show pve-manager/9.x.x": "Debería mostrar pve-manager/9.x.x", "Shoutrrr addresses for the notifications (optional)": "Direcciones de Shoutrrr para las notificaciones (opcional)", "Show All Scripts": "Mostrar todos los scripts", + "Show CT users and their UID/GID on the host": "Ver usuarios del CT y su UID/GID en el host", "Show CT users in table format": "Mostrar usuarios de CT en formato de tabla", "Show Container Privilege Status": "Mostrar estado de privilegios de los contenedores", "Show DNS resolution status": "Mostrar estado de resolución DNS", @@ -5845,14 +5849,14 @@ "Show Proxmox version": "Mostrar versión de Proxmox", "Show Routing Table": "Mostrar tabla de enrutamiento", "Show UUID and filesystem type of block devices": "Mostrar UUID y tipo de sistema de archivos de dispositivos de bloque", - "Show VM configuration. Use the correct ": "Mostrar la configuración de la máquina virtual. Utilice el correcto", + "Show VM configuration. Use the correct ": "Mostrar la configuración de la VM. Usa el correcto", "Show Version Information": "Mostrar información de versión", "Show ZFS pool status": "Mostrar el estado del grupo ZFS", "Show active firewall rules (iptables)": "Mostrar las reglas activas del cortafuegos (iptables)", "Show all active mounts from the kernel": "Mostrar todos los montajes activos del kernel", "Show available Proxmox upgrades": "Mostrar actualizaciones de Proxmox disponibles", "Show configured network bridges": "Mostrar puentes de red configurados", - "Show container configuration. Use the correct ": "Mostrar la configuración del contenedor. Utilice el correcto", + "Show container configuration. Use the correct ": "Mostrar la configuración del contenedor. Usa el correcto", "Show detailed keyfile info": "Mostrar información detallada del archivo de claves", "Show disk usage by mount point": "Mostrar uso del disco por punto de montaje", "Show jobs and last run status": "Mostrar tareas y estado de la última ejecución", @@ -5974,8 +5978,8 @@ "Start VM": "Iniciar máquina virtual", "Start VM after creation": "Iniciar VM después de la creación", "Start VM after creation?": "¿Iniciar VM después de la creación?", - "Start a container. Use the correct ": "Inicie un contenedor. Utilice el correcto", - "Start a virtual machine. Use the correct ": "Inicie una máquina virtual. Utilice el correcto", + "Start a container. Use the correct ": "Iniciar un contenedor. Usa el correcto", + "Start a virtual machine. Use the correct ": "Iniciar una VM. Usa el correcto", "Start each LXC with Proxmox (no coordinated startup)": "Iniciar cada LXC con Proxmox (sin arranque coordinado)", "Start long self-test (hours)": "Iniciar autotest largo (horas)", "Start long test now?": "¿Iniciar una prueba larga ahora?", @@ -6274,6 +6278,7 @@ "The Paperless persistent volumes need at least 8 GB": "Los volúmenes persistentes de Paperless necesitan al menos 8 GB", "The PostgreSQL volume needs at least 4 GB": "El volumen de PostgreSQL necesita al menos 4 GB", "The PostgreSQL volume needs at least 8 GB": "El volumen de PostgreSQL necesita al menos 8 GB", + "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.": "La actualización de Proxmox VE 8 no ha terminado. No se ha iniciado la actualización a Proxmox VE 9.", "The Proxmox archive keyring is missing; Ceph installation cannot continue safely": "Falta el conjunto de claves de archivo Proxmox; La instalación de Ceph no puede continuar de forma segura", "The Proxmox inventory and the local configurations differ": "El inventario de Proxmox y las configuraciones locales difieren", "The ROCm image has no support for the AMD GPU of this host:": "La imagen de ROCm no tiene soporte para la GPU AMD de este host:", diff --git a/lang/fr.json b/lang/fr.json index 81f4f302..cbb436d4 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -4908,6 +4908,7 @@ "Proxmox System Update": "Mise à jour du système Proxmox", "Proxmox Update": "Mise à jour Proxmox", "Proxmox VE": "Proxmox VE", + "Proxmox VE 8 package upgrade failed. Review the APT output before retrying.": "La mise à jour des paquets de Proxmox VE 8 a échoué. Vérifiez la sortie d’APT avant de réessayer.", "Proxmox VE 8 system update completed successfully": "La mise à jour du système Proxmox VE 8 s'est terminée avec succès", "Proxmox VE 8 to 9 Manual Upgrade Guide": "Guide de mise à niveau manuelle Proxmox VE 8 vers 9", "Proxmox VE 9.x no-subscription repository created": "Création d'un référentiel sans abonnement Proxmox VE 9.x", @@ -5182,6 +5183,8 @@ "Remove saved credentials": "Supprimer les informations d'identification enregistrées", "Remove subscription banner": "Supprimer la bannière d'abonnement", "Remove the application? Its container disks are deleted, and only a backup can bring them back.": "Supprimer l'application ?Ses disques conteneurs sont supprimés et seule une sauvegarde peut les restaurer.", + "Remove the lock left on a VM by an interrupted task": "Supprimer le verrou laissé sur une VM par une tâche interrompue", + "Remove the lock left on a container by an interrupted task": "Supprimer le verrou laissé sur un conteneur par une tâche interrompue", "Remove the saved credentials for {registry}?\nRunning apps will keep working.": "Supprimer les informations d'identification enregistrées pour {registry} ?\nLes applications en cours d’exécution continueront de fonctionner.", "Remove the unprivileged flag from configuration:": "Supprimez l'indicateur sans privilèges de la configuration :", "Remove unused packages and their config": "Supprimer les packages inutilisés et leur configuration", @@ -5848,6 +5851,7 @@ "Should show pve-manager/9.x.x": "Devrait afficher pve-manager/9.x.x", "Shoutrrr addresses for the notifications (optional)": "Adresses Shoutrrr pour les notifications (facultatif)", "Show All Scripts": "Afficher tous les scripts", + "Show CT users and their UID/GID on the host": "Utilisateurs du CT et leurs UID/GID sur l’hôte", "Show CT users in table format": "Afficher les utilisateurs CT sous forme de tableau", "Show Container Privilege Status": "Afficher l'état des privilèges du conteneur", "Show DNS resolution status": "Afficher l'état de la résolution DNS", @@ -6288,6 +6292,7 @@ "The Paperless persistent volumes need at least 8 GB": "Les volumes persistants sans papier nécessitent au moins 8 Go", "The PostgreSQL volume needs at least 4 GB": "Le volume PostgreSQL nécessite au moins 4 Go", "The PostgreSQL volume needs at least 8 GB": "Le volume PostgreSQL nécessite au moins 8 Go", + "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.": "La mise à jour de Proxmox VE 8 n’a pas abouti. La mise à niveau vers Proxmox VE 9 n’a pas été lancée.", "The Proxmox archive keyring is missing; Ceph installation cannot continue safely": "Le trousseau de clés d'archive Proxmox est manquant ;L'installation de Ceph ne peut pas continuer en toute sécurité", "The Proxmox inventory and the local configurations differ": "L'inventaire Proxmox et les configurations locales diffèrent", "The ROCm image has no support for the AMD GPU of this host:": "L'image ROCm ne prend pas en charge le GPU AMD de cet hôte :", diff --git a/lang/it.json b/lang/it.json index 74e297a0..676c1fea 100644 --- a/lang/it.json +++ b/lang/it.json @@ -4908,6 +4908,7 @@ "Proxmox System Update": "Aggiornamento sistema Proxmox", "Proxmox Update": "Aggiornamento Proxmox", "Proxmox VE": "Proxmox VE", + "Proxmox VE 8 package upgrade failed. Review the APT output before retrying.": "L’aggiornamento dei pacchetti di Proxmox VE 8 non è riuscito. Controlla l’output di APT prima di riprovare.", "Proxmox VE 8 system update completed successfully": "Aggiornamento sistema Proxmox VE 8 completato", "Proxmox VE 8 to 9 Manual Upgrade Guide": "Guida aggiornamento manuale Proxmox VE da 8 a 9", "Proxmox VE 9.x no-subscription repository created": "Repository senza abbonamento Proxmox VE 9.x creato", @@ -5182,6 +5183,8 @@ "Remove saved credentials": "Rimuovi le credenziali salvate", "Remove subscription banner": "Rimuovi il banner di abbonamento", "Remove the application? Its container disks are deleted, and only a backup can bring them back.": "Rimuovere l’applicazione? I dischi dei suoi container vengono eliminati e solo un backup può ripristinarli.", + "Remove the lock left on a VM by an interrupted task": "Rimuovere il blocco lasciato su una VM da un’attività interrotta", + "Remove the lock left on a container by an interrupted task": "Rimuovere il blocco lasciato su un container da un’attività interrotta", "Remove the saved credentials for {registry}?\nRunning apps will keep working.": "Rimuovere le credenziali salvate per {registry}?\nLe app in esecuzione continueranno a funzionare.", "Remove the unprivileged flag from configuration:": "Rimuovi il flag unprivileged dalla configurazione:", "Remove unused packages and their config": "Rimuovi i pacchetti non utilizzati e la loro configurazione", @@ -5848,6 +5851,7 @@ "Should show pve-manager/9.x.x": "Dovrebbe mostrare pve-manager/9.x.x", "Shoutrrr addresses for the notifications (optional)": "Indirizzi Shoutrrr per le notifiche (facoltativi)", "Show All Scripts": "Mostra tutti gli script", + "Show CT users and their UID/GID on the host": "Utenti del CT e loro UID/GID sull’host", "Show CT users in table format": "Mostra utenti CT in tabella", "Show Container Privilege Status": "Mostra stato privilegi container", "Show DNS resolution status": "Mostra stato risoluzione DNS", @@ -6289,6 +6293,7 @@ "The Paperless persistent volumes need at least 8 GB": "I volumi persistenti di Paperless richiedono almeno 8 GB", "The PostgreSQL volume needs at least 4 GB": "Il volume PostgreSQL richiede almeno 4 GB", "The PostgreSQL volume needs at least 8 GB": "Il volume PostgreSQL richiede almeno 8 GB", + "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.": "L’aggiornamento di Proxmox VE 8 non è stato completato. L’aggiornamento a Proxmox VE 9 non è stato avviato.", "The Proxmox archive keyring is missing; Ceph installation cannot continue safely": "Manca il portachiavi dell’archivio Proxmox; l’installazione di Ceph non può continuare in sicurezza", "The Proxmox inventory and the local configurations differ": "L'inventario Proxmox e le configurazioni locali differiscono", "The ROCm image has no support for the AMD GPU of this host:": "L’immagine ROCm non supporta la GPU AMD di questo host:", diff --git a/lang/pt.json b/lang/pt.json index 00269efe..6d95f583 100644 --- a/lang/pt.json +++ b/lang/pt.json @@ -4908,6 +4908,7 @@ "Proxmox System Update": "Atualização do sistema Proxmox", "Proxmox Update": "Atualização Proxmox", "Proxmox VE": "Proxmox VE", + "Proxmox VE 8 package upgrade failed. Review the APT output before retrying.": "A atualização de pacotes do Proxmox VE 8 falhou. Reveja a saída do APT antes de tentar novamente.", "Proxmox VE 8 system update completed successfully": "Atualização do sistema Proxmox VE 8 concluída com sucesso", "Proxmox VE 8 to 9 Manual Upgrade Guide": "Guia de atualização manual do Proxmox VE 8 a 9", "Proxmox VE 9.x no-subscription repository created": "Repositório sem assinatura Proxmox VE 9.x criado", @@ -5182,6 +5183,8 @@ "Remove saved credentials": "Remover credenciais salvas", "Remove subscription banner": "Remover banner de assinatura", "Remove the application? Its container disks are deleted, and only a backup can bring them back.": "Remover o aplicativo? Seus discos contêineres são excluídos e somente um backup pode recuperá-los.", + "Remove the lock left on a VM by an interrupted task": "Remover o bloqueio deixado numa VM por uma tarefa interrompida", + "Remove the lock left on a container by an interrupted task": "Remover o bloqueio deixado num contentor por uma tarefa interrompida", "Remove the saved credentials for {registry}?\nRunning apps will keep working.": "Remover as credenciais salvas para {registry}?\nOs aplicativos em execução continuarão funcionando.", "Remove the unprivileged flag from configuration:": "Remova o sinalizador sem privilégios da configuração:", "Remove unused packages and their config": "Remova pacotes não utilizados e suas configurações", @@ -5848,6 +5851,7 @@ "Should show pve-manager/9.x.x": "Deve mostrar pve-manager/9.x.x", "Shoutrrr addresses for the notifications (optional)": "Endereços Shoutrrr para as notificações (opcional)", "Show All Scripts": "Mostrar todos os scripts", + "Show CT users and their UID/GID on the host": "Utilizadores do CT e UID/GID no host", "Show CT users in table format": "Mostrar usuários do CT em formato de tabela", "Show Container Privilege Status": "Mostrar status de privilégio do contêiner", "Show DNS resolution status": "Mostrar status de resolução DNS", @@ -6289,6 +6293,7 @@ "The Paperless persistent volumes need at least 8 GB": "Os volumes persistentes sem papel precisam de pelo menos 8 GB", "The PostgreSQL volume needs at least 4 GB": "O volume PostgreSQL precisa de pelo menos 4 GB", "The PostgreSQL volume needs at least 8 GB": "O volume PostgreSQL precisa de pelo menos 8 GB", + "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.": "A atualização do Proxmox VE 8 não terminou. A atualização para o Proxmox VE 9 não foi iniciada.", "The Proxmox archive keyring is missing; Ceph installation cannot continue safely": "O chaveiro de arquivo Proxmox está faltando;A instalação do Ceph não pode continuar com segurança", "The Proxmox inventory and the local configurations differ": "O inventário Proxmox e as configurações locais diferem", "The ROCm image has no support for the AMD GPU of this host:": "A imagem ROCm não tem suporte para a GPU AMD deste host:", diff --git a/lang/sk.json b/lang/sk.json index ae7dd52b..ba7500a6 100644 --- a/lang/sk.json +++ b/lang/sk.json @@ -4910,6 +4910,7 @@ "Proxmox System Update": "Aktualizácia systému Proxmox", "Proxmox Update": "Aktualizácia Proxmoxu", "Proxmox VE": "Proxmox VE", + "Proxmox VE 8 package upgrade failed. Review the APT output before retrying.": "Aktualizácia balíkov Proxmox VE 8 zlyhala. Pred ďalším pokusom skontrolujte výstup APT.", "Proxmox VE 8 system update completed successfully": "Aktualizácia systému Proxmox VE 8 bola úspešne dokončená", "Proxmox VE 8 to 9 Manual Upgrade Guide": "Ručný sprievodca aktualizáciou Proxmox VE 8 na 9", "Proxmox VE 9.x no-subscription repository created": "Proxmox VE 9.x no-subscription repozitár vytvorený", @@ -5184,6 +5185,8 @@ "Remove saved credentials": "Odstráňte uložené poverenia", "Remove subscription banner": "Odstrániť hlásenie o predplatnom", "Remove the application? Its container disks are deleted, and only a backup can bring them back.": "Odstrániť aplikáciu? Jeho kontajnerové disky sa vymažú a iba záloha ich môže vrátiť späť.", + "Remove the lock left on a VM by an interrupted task": "Odstrániť zámok, ktorý na VM zanechala prerušená úloha", + "Remove the lock left on a container by an interrupted task": "Odstrániť zámok, ktorý na kontajneri zanechala prerušená úloha", "Remove the saved credentials for {registry}?\nRunning apps will keep working.": "Odstrániť uložené poverenia pre {registry}?\nSpustené aplikácie budú naďalej fungovať.", "Remove the unprivileged flag from configuration:": "Odstrániť príznak neprivilegovaného kontajnera z nastavenia:", "Remove unused packages and their config": "Odstrániť nepoužívané balíky aj ich nastavenia", @@ -5850,6 +5853,7 @@ "Should show pve-manager/9.x.x": "Malo by sa zobraziť pve-manager/9.x.x", "Shoutrrr addresses for the notifications (optional)": "Adresy Shoutrrr pre upozornenia (voliteľné)", "Show All Scripts": "Zobraziť všetky skripty", + "Show CT users and their UID/GID on the host": "Používatelia CT a ich UID/GID na hostiteľovi", "Show CT users in table format": "Zobraziť používateľov CT v tabuľke", "Show Container Privilege Status": "Zobraziť stav oprávnení kontajnerov", "Show DNS resolution status": "Zobraziť stav DNS prekladu", @@ -6290,6 +6294,7 @@ "The Paperless persistent volumes need at least 8 GB": "Trvalé objemy bez dokumentov potrebujú najmenej 8 GB", "The PostgreSQL volume needs at least 4 GB": "Objem PostgreSQL potrebuje najmenej 4 GB", "The PostgreSQL volume needs at least 8 GB": "Objem PostgreSQL potrebuje najmenej 8 GB", + "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.": "Aktualizácia Proxmox VE 8 sa nedokončila. Prechod na Proxmox VE 9 sa nespustil.", "The Proxmox archive keyring is missing; Ceph installation cannot continue safely": "Chýba zväzok kľúčov archívu Proxmox;Inštalácia Ceph nemôže bezpečne pokračovať", "The Proxmox inventory and the local configurations differ": "Súpis Proxmox a miestne konfigurácie sa líšia", "The ROCm image has no support for the AMD GPU of this host:": "Obraz ROCm nemá podporu pre AMD GPU tohto hostiteľa:", diff --git a/lang/sv.json b/lang/sv.json index 25db3060..752a7ff8 100644 --- a/lang/sv.json +++ b/lang/sv.json @@ -4908,6 +4908,7 @@ "Proxmox System Update": "Proxmox systemuppdatering", "Proxmox Update": "Proxmox-uppdatering", "Proxmox VE": "Proxmox VE", + "Proxmox VE 8 package upgrade failed. Review the APT output before retrying.": "Paketuppgraderingen av Proxmox VE 8 misslyckades. Granska APT-utdata innan du försöker igen.", "Proxmox VE 8 system update completed successfully": "Systemuppdateringen av Proxmox VE 8 slutfördes framgångsrikt", "Proxmox VE 8 to 9 Manual Upgrade Guide": "Proxmox VE 8 till 9 Manuell uppgraderingsguide", "Proxmox VE 9.x no-subscription repository created": "Proxmox VE 9.x arkiv utan prenumeration skapat", @@ -5182,6 +5183,8 @@ "Remove saved credentials": "Ta bort sparade autentiseringsuppgifter", "Remove subscription banner": "Ta bort prenumerationsbanner", "Remove the application? Its container disks are deleted, and only a backup can bring them back.": "Vill du ta bort programmet? Dess containerdiskar raderas och endast en säkerhetskopia kan ta tillbaka dem.", + "Remove the lock left on a VM by an interrupted task": "Ta bort låset som en avbruten uppgift lämnat på en VM", + "Remove the lock left on a container by an interrupted task": "Ta bort låset som en avbruten uppgift lämnat på en container", "Remove the saved credentials for {registry}?\nRunning apps will keep working.": "Ta bort de sparade referenserna för {registry}?\nAppar som körs fortsätter att fungera.", "Remove the unprivileged flag from configuration:": "Ta bort den oprivilegierade flaggan från konfigurationen:", "Remove unused packages and their config": "Ta bort oanvända paket och deras konfiguration", @@ -5848,6 +5851,7 @@ "Should show pve-manager/9.x.x": "Bör visa pve-manager/9.x.x", "Shoutrrr addresses for the notifications (optional)": "Shoutrrr-adresser för aviseringarna (valfritt)", "Show All Scripts": "Visa alla skript", + "Show CT users and their UID/GID on the host": "CT-användare och deras UID/GID på värden", "Show CT users in table format": "Visa CT-användare i tabellformat", "Show Container Privilege Status": "Visa status för containerprivilegier", "Show DNS resolution status": "Visa DNS-upplösningsstatus", @@ -6289,6 +6293,7 @@ "The Paperless persistent volumes need at least 8 GB": "De papperslösa ihållande volymerna behöver minst 8 GB", "The PostgreSQL volume needs at least 4 GB": "PostgreSQL-volymen behöver minst 4 GB", "The PostgreSQL volume needs at least 8 GB": "PostgreSQL-volymen behöver minst 8 GB", + "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.": "Uppdateringen av Proxmox VE 8 slutfördes inte. Uppgraderingen till Proxmox VE 9 startades inte.", "The Proxmox archive keyring is missing; Ceph installation cannot continue safely": "Proxmox arkivnyckelringen saknas;Ceph-installationen kan inte fortsätta på ett säkert sätt", "The Proxmox inventory and the local configurations differ": "Proxmox-inventeringen och de lokala konfigurationerna skiljer sig åt", "The ROCm image has no support for the AMD GPU of this host:": "ROCm-avbilden har inget stöd för AMD GPU på denna värd:", diff --git a/scripts/global/update-pve8.sh b/scripts/global/update-pve8.sh index 3db8cfd9..34f36267 100644 --- a/scripts/global/update-pve8.sh +++ b/scripts/global/update-pve8.sh @@ -188,7 +188,8 @@ EOF pmx_record_execution "Remove unused packages" "apt-get -y autoremove" apt-get -y autoremove > /dev/null 2>&1 || true apt-get -y autoclean > /dev/null 2>&1 || true - return 0 + # Not an error, but the system was not updated. + return 3 elif [[ $MENU_RESULT -eq 2 ]]; then msg_ok "$(translate "System is already up to date. No update needed.")" echo -e "\nSystem is already up to date." >> "$log_file" @@ -280,6 +281,12 @@ EOF tput ed tput cnorm msg_ok "$(translate "System upgrade completed")" + else + tput rc + tput ed + tput cnorm + msg_error "$(translate "Proxmox VE 8 package upgrade failed. Review the APT output before retrying.")" + return 1 fi diff --git a/scripts/help_info_menu.sh b/scripts/help_info_menu.sh index cb1c02a9..2808a0cd 100644 --- a/scripts/help_info_menu.sh +++ b/scripts/help_info_menu.sh @@ -95,6 +95,7 @@ show_system_commands() { echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" # Check for Esc key press if [[ "$user_input" == $'\x1b' ]]; then @@ -184,17 +185,24 @@ show_vm_ct_commands() { echo -e " 8) ${GREEN}pct config ${NC} - $(translate 'Show container configuration. Use the correct ')" echo -e " 9) ${GREEN}qm destroy ${NC} - $(translate 'Delete a VM (irreversible). Use the correct ')" echo -e "10) ${GREEN}pct destroy ${NC} - $(translate 'Delete a CT (irreversible). Use the correct ')" - echo -e "11) ${GN}[Only with menu] Show CT users for permission mapping${NC} - $(translate 'root and real users only')" - echo -e "12) ${GREEN}pct exec -- getent passwd | column -t -s :${NC} - $(translate 'Show CT users in table format')" - echo -e "13) ${GREEN}pct exec -- ps aux --sort=-%mem | head${NC} - $(translate 'Top memory processes in CT')" - echo -e "14) ${GREEN}cat /etc/pve/qemu-server/.conf${NC} - $(translate 'View raw VM configuration file')" - echo -e "15) ${GREEN}cat /etc/pve/lxc/.conf${NC} - $(translate 'View raw CT configuration file')" - echo -e "16) ${GREEN}nano /etc/pve/qemu-server/.conf${NC} - $(translate 'Edit raw VM configuration file')" - echo -e "17) ${GREEN}nano /etc/pve/lxc/.conf${NC} - $(translate 'Edit raw CT configuration file')" + echo -e "11) ${GREEN}qm unlock ${NC} - $(translate 'Remove the lock left on a VM by an interrupted task')" + echo -e "12) ${GREEN}pct unlock ${NC} - $(translate 'Remove the lock left on a container by an interrupted task')" + # Translated label: pad it so its description lines up with 14-19. + local users_label pad + users_label="$(translate 'Show CT users and their UID/GID on the host')" + pad=$((51 - ${#users_label})); (( pad < 1 )) && pad=1 + echo -e "13) ${GN}${users_label}${NC}$(printf '%*s' "$pad" '')- $(translate 'root and real users only')" + echo -e "14) ${GREEN}pct exec -- getent passwd | column -t -s :${NC} - $(translate 'Show CT users in table format')" + echo -e "15) ${GREEN}pct exec -- ps aux --sort=-%mem | head${NC} - $(translate 'Top memory processes in CT')" + echo -e "16) ${GREEN}cat /etc/pve/qemu-server/.conf${NC} - $(translate 'View raw VM configuration file')" + echo -e "17) ${GREEN}cat /etc/pve/lxc/.conf${NC} - $(translate 'View raw CT configuration file')" + echo -e "18) ${GREEN}nano /etc/pve/qemu-server/.conf${NC} - $(translate 'Edit raw VM configuration file')" + echo -e "19) ${GREEN}nano /etc/pve/lxc/.conf${NC} - $(translate 'Edit raw CT configuration file')" echo -e " ${DEF}0) $(translate ' Back to previous menu or Esc + Enter')" echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" # Check for Esc key press if [[ "$user_input" == $'\x1b' ]]; then @@ -212,7 +220,9 @@ show_vm_ct_commands() { 8) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter CT ID: ')${CL}"; read -r id; cmd="pct config $id" ;; 9) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter VM ID: ')${CL}"; read -r id; cmd="qm destroy $id" ;; 10) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter CT ID: ')${CL}"; read -r id; cmd="pct destroy $id" ;; - 11) + 11) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter VM ID: ')${CL}"; read -r id; cmd="qm unlock $id" ;; + 12) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter CT ID: ')${CL}"; read -r id; cmd="pct unlock $id" ;; + 13) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter CT ID: ')${CL}" read -r id @@ -236,34 +246,34 @@ show_vm_ct_commands() { done ;; - 12) + 14) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter CT ID: ')${CL}" read -r id cmd="pct exec $id -- getent passwd | column -t -s :" ;; - 13) + 15) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter CT ID: ')${CL}" read -r id cmd="pct exec $id -- ps aux --sort=-%mem | head" ;; - 14) + 16) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter VM ID: ')${CL}" read -r id cmd="cat /etc/pve/qemu-server/$id.conf" ;; - 15) + 17) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter CT ID: ')${CL}" read -r id cmd="cat /etc/pve/lxc/$id.conf" ;; - 16) + 18) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter VM ID: ')${CL}" read -r id cmd="nano /etc/pve/qemu-server/$id.conf" ;; - 17) + 19) echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter CT ID: ')${CL}" read -r id cmd="nano /etc/pve/lxc/$id.conf" @@ -272,8 +282,10 @@ show_vm_ct_commands() { *) cmd="$user_input" ;; esac - echo -e "\n${GREEN}> $cmd${NC}\n" - bash -c "$cmd" + if [[ -n "$cmd" ]]; then + echo -e "\n${GREEN}> $cmd${NC}\n" + bash -c "$cmd" + fi echo msg_success "$(translate 'Press ENTER to continue...')" read -r tmp @@ -324,6 +336,7 @@ show_storage_commands() { echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" # Esc key exit if [[ "$user_input" == $'\x1b' ]]; then @@ -550,8 +563,10 @@ show_storage_commands() { *) cmd="$user_input" ;; esac - echo -e "\n${GREEN}> $cmd${NC}\n" - bash -c "$cmd" + if [[ -n "$cmd" ]]; then + echo -e "\n${GREEN}> $cmd${NC}\n" + bash -c "$cmd" + fi echo msg_success "$(translate 'Press ENTER to continue...')" read -r tmp @@ -588,6 +603,7 @@ show_network_commands() { echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" if [[ "$user_input" == $'\x1b' ]]; then break @@ -630,8 +646,10 @@ show_network_commands() { *) cmd="$user_input" ;; esac - echo -e "\n${GREEN}> $cmd${NC}\n" - bash -c "$cmd" + if [[ -n "$cmd" ]]; then + echo -e "\n${GREEN}> $cmd${NC}\n" + bash -c "$cmd" + fi echo msg_success "$(translate 'Press ENTER to continue...')" read -r tmp @@ -658,6 +676,7 @@ show_update_commands() { echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" # Check for Esc key press if [[ "$user_input" == $'\x1b' ]]; then @@ -674,8 +693,10 @@ show_update_commands() { *) cmd="$user_input" ;; esac - echo -e "\n${GREEN}> $cmd${NC}\n" - bash -c "$cmd" + if [[ -n "$cmd" ]]; then + echo -e "\n${GREEN}> $cmd${NC}\n" + bash -c "$cmd" + fi echo msg_success "$(translate 'Press ENTER to continue...')" read -r tmp @@ -698,7 +719,7 @@ show_gpu_commands() { echo -e " 4) ${GREEN}dmesg -T | grep -Ei 'DMAR|IOMMU|vfio|pcie'${NC} - $(translate 'Inspect passthrough/kernel events')" echo -e " 5) ${GREEN}find /sys/kernel/iommu_groups -type l${NC} - $(translate 'List IOMMU group mapping')" echo -e " 6) ${GREEN}lsmod | grep -E 'vfio|nvidia|amdgpu|apex'${NC} - $(translate 'Check loaded GPU/TPU modules')" - echo -e " 7) ${GREEN}grep -R \"vfio-pci|blacklist\" /etc/modprobe.d${NC} - $(translate 'Review passthrough config files')" + echo -e " 7) ${GREEN}grep -R \"vfio-pci|blacklist\" /etc/modprobe.d${NC} - $(translate 'Review passthrough config files')" echo -e " 8) ${GREEN}nvidia-smi${NC} - $(translate 'Check NVIDIA driver and devices')" echo -e " 9) ${GREEN}qm config | grep 'hostpci|bios'${NC} - [T] $(translate 'Check VM passthrough settings')" echo -e "10) ${GREEN}pct config | grep 'dev|lxc.cgroup2'${NC} - [T] $(translate 'Check LXC GPU/TPU mapping')" @@ -713,6 +734,7 @@ show_gpu_commands() { echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" if [[ "$user_input" == $'\x1b' ]]; then break @@ -794,8 +816,10 @@ show_gpu_commands() { continue fi - echo -e "\n${GREEN}> $cmd${NC}\n" - bash -c "$cmd" + if [[ -n "$cmd" ]]; then + echo -e "\n${GREEN}> $cmd${NC}\n" + bash -c "$cmd" + fi echo msg_success "$(translate 'Press ENTER to continue...')" read -r tmp @@ -830,6 +854,7 @@ show_zfs_commands() { echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" # Detect ESC if [[ "$user_input" == $'\x1b' ]]; then @@ -883,8 +908,10 @@ show_zfs_commands() { *) cmd="$user_input" ;; esac - echo -e "\n${GREEN}> $cmd${NC}\n" - bash -c "$cmd" + if [[ -n "$cmd" ]]; then + echo -e "\n${GREEN}> $cmd${NC}\n" + bash -c "$cmd" + fi echo msg_success "$(translate 'Press ENTER to continue...')" read -r tmp @@ -916,6 +943,7 @@ show_backup_commands() { echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" # Check for Esc key press if [[ "$user_input" == $'\x1b' ]]; then @@ -967,8 +995,10 @@ show_backup_commands() { *) cmd="$user_input" ;; esac - echo -e "\n${GREEN}> $cmd${NC}\n" - bash -c "$cmd" + if [[ -n "$cmd" ]]; then + echo -e "\n${GREEN}> $cmd${NC}\n" + bash -c "$cmd" + fi echo msg_success "$(translate 'Press ENTER to continue...')" read -r tmp @@ -1001,6 +1031,7 @@ show_tools_commands() { echo echo -en "${TAB}${BOLD}${YW}${HOLD}$(translate 'Enter a number, or write or paste a command: ') ${CL}" read -r user_input + cmd="" # Check for Esc key press if [[ "$user_input" == $'\x1b' ]]; then @@ -1063,8 +1094,10 @@ show_tools_commands() { fi fi - echo -e "\n${GREEN}> $cmd${NC}\n" - bash -c "$cmd" + if [[ -n "$cmd" ]]; then + echo -e "\n${GREEN}> $cmd${NC}\n" + bash -c "$cmd" + fi echo msg_success "$(translate 'Press ENTER to continue...')" read -r tmp diff --git a/scripts/utilities/upgrade_pve8_to_pve9.sh b/scripts/utilities/upgrade_pve8_to_pve9.sh index 2ba2bade..6c0c7e89 100644 --- a/scripts/utilities/upgrade_pve8_to_pve9.sh +++ b/scripts/utilities/upgrade_pve8_to_pve9.sh @@ -36,8 +36,8 @@ # broken repo config). # - dist-upgrade with --force-confdef --force-confold in # unattended mode; user-driven dpkg prompts in interactive mode. -# - Post-upgrade: installs grub-efi-amd64 on EFI hosts, restarts -# pve-manager, re-runs pve8to9 to surface residual issues. +# - Post-upgrade: installs grub-efi-amd64 on EFI hosts and +# re-runs pve8to9 to surface residual issues. # - Reboot prompt at the end. # - Full log written to /var/log/pve8-a-pve9-.log. # ========================================================== @@ -117,7 +117,7 @@ ask_run_mode() { msg_ok "$(translate "Run mode: Unattended")" export DEBIAN_FRONTEND=noninteractive export APT_LISTCHANGES_FRONTEND=none - exit 0 + return 0 fi @@ -625,7 +625,14 @@ apt_upgrade() { exit 1 else - bash "$LOCAL_SCRIPTS/global/update-pve8.sh" + local update_rc=0 + bash "$LOCAL_SCRIPTS/global/update-pve8.sh" || update_rc=$? + if [[ $update_rc -eq 3 ]]; then + exit 0 + elif [[ $update_rc -ne 0 ]]; then + msg_error "$(translate "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.")" + exit 1 + fi hash -r fi @@ -641,10 +648,6 @@ regenerate_pve_cache() { mkdir -p /var/lib/pve-manager chmod 755 /var/lib/pve-manager - systemctl restart pve-manager 2>/dev/null || true - - sleep 2 - timeout 10 pvesh get /nodes/localhost/apt/update 2>/dev/null || true msg_ok "$(translate "PVE cache regenerated")" @@ -1009,6 +1012,13 @@ else bash -lc "apt-get dist-upgrade" fi +# pve-manager 9 ships pve-enterprise.sources during the upgrade. +if [[ "$REPO_MODE" == "no-subscription" && -f /etc/apt/sources.list.d/pve-enterprise.sources ]] \ + && ! grep -qi '^Enabled:[[:space:]]*\(false\|no\)' /etc/apt/sources.list.d/pve-enterprise.sources; then + disable_enterprise_repo_if_present + msg_ok "$(translate "Enterprise Proxmox repository disabled")" +fi + # ========================================================== @@ -1029,7 +1039,7 @@ if [[ -d /sys/firmware/efi ]]; then run_step \ "Installing grub-efi-amd64" \ "grub-efi-amd64 installed or already present" \ - "apt-get install grub-efi-amd64 >/dev/null 2>&1" + "apt-get install -y grub-efi-amd64 >/dev/null 2>&1" fi fi diff --git a/scripts/utils.sh b/scripts/utils.sh index 60255e40..1deb1dd6 100644 --- a/scripts/utils.sh +++ b/scripts/utils.sh @@ -271,6 +271,18 @@ translate() { echo "$cached" return fi + # The catalog stores texts trimmed; keep the caller's surrounding spaces. + local lead="${text%%[![:space:]]*}" + local core="${text#"$lead"}" + local trail="${core##*[![:space:]]}" + core="${core%"$trail"}" + if [ -n "$core" ] && [ "$core" != "$text" ]; then + cached=$(jq -r --arg text "$core" '.[$text] // .[($text | gsub("\\\\n"; "\n"))] // empty' "$lang_file" 2>/dev/null) + if [ -n "$cached" ]; then + echo "${lead}${cached}${trail}" + return + fi + fi fi echo "$text"