docs: review utility documentation in all seven translations

This commit is contained in:
Jonatan
2026-10-17 15:08:54 +02:00
parent ce1a3de719
commit 9f6296501a
58 changed files with 8588 additions and 224 deletions
+145
View File
@@ -0,0 +1,145 @@
{
"meta": {
"title": "Exporter une VM en OVA / OVF | Documentation ProxMenux",
"description": "Exportez une VM Proxmox vers une archive OVA portable ou un répertoire OVF avec le schéma DMTF standard. Disques VMDK au format streamOptimized et manifeste SHA1. Importable dans VMware ESXi / Workstation / Fusion, VirtualBox et à nouveau dans Proxmox.",
"ogTitle": "Exporter une VM en OVA / OVF | Documentation ProxMenux",
"ogDescription": "Convertissez une VM Proxmox en paquet OVA / OVF portable compatible avec VMware et VirtualBox."
},
"header": {
"title": "Exportation de VM vers OVA / OVF",
"description": "Convertit une VM Proxmox en paquet OVA portable (archive TAR unique) ou OVF (descripteur et fichiers VMDK) avec le schéma OVF standard de DMTF. Les disques sont convertis avec qemu-img en VMDK au format streamOptimized. Le résultat peut être importé dans VMware (ESXi / Workstation / Fusion), VirtualBox et à nouveau dans Proxmox avec l’outil d’importation.",
"section": "Utilitaires"
},
"intro": {
"title": "Ce que ça fait",
"body": "Lit la configuration d’une VM arrêtée, convertit chaque disque en VMDK au format streamOptimized, génère un descripteur OVF et un manifeste SHA1, puis regroupe le tout dans un fichier <code>.ova</code> unique ou un répertoire <code>-ovf</code>. La VM source n’est jamais modifiée."
},
"picker": {
"heading": "Sélecteur de VM",
"body": "Au lancement, le script affiche toutes les VM de <code>qm list</code> avec leur VMID, leur nom et leur état. Choisissez celle à exporter :",
"imgAlt": "Boîte de dialogue de sélection de la VM à exporter, avec la liste de toutes les VM"
},
"stopped": {
"heading": "La VM doit être arrêtée",
"intro": "Une image disque cohérente nécessite une VM arrêtée. Si la VM sélectionnée est en cours d’exécution, ProxMenux propose de l’arrêter :",
"items": [
"Arrêt normal via <code>qm shutdown $VMID --timeout 120</code> (attend 2 minutes l’arrêt ACPI du système invité).",
"Si le délai expire, propose un arrêt forcé : <code>qm stop $VMID</code> (équivalent à une coupure d’alimentation).",
"Si vous refusez les deux, l’export est annulé et aucune donnée n’est modifiée."
],
"warnTitle": "L’arrêt forcé équivaut à une coupure d’alimentation",
"warnBody": "<code>qm stop</code> équivaut à débrancher l’alimentation. Le système invité peut nécessiter une réparation du système de fichiers au prochain démarrage. Privilégiez l’arrêt normal et réservez l’arrêt forcé aux systèmes invités qui ne répondent plus."
},
"format": {
"heading": "Sélecteur de format : OVA vs OVF",
"headerFormat": "Format",
"headerOutput": "Sortie",
"headerPros": "Avantages",
"headerCons": "Inconvénients",
"rows": [
{
"format": "OVA",
"output": "name-vmid-ts.ova",
"pros": "Un seul fichier autonome, facile à déplacer, à transférer par sftp ou à joindre à un ticket.",
"cons": "Nécessite ~220 % de la taille virtuelle du disque (espace supplémentaire pour l’archive TAR pendant sa création)."
},
{
"format": "OVF",
"output": "name-vmid-ts-ovf/",
"pros": "~120 % de la taille virtuelle du disque. Plus facile à examiner, car le descripteur est en XML texte. Modifiable avant l’import.",
"cons": "Plusieurs fichiers, à transférer tous ensemble."
}
]
},
"destination": {
"heading": "Répertoire de destination",
"body": "Choisissez un chemin prédéfini (<code>/var/lib/vz/dump</code>, <code>/var/lib/vz/template/iso</code>) ou saisissez un chemin personnalisé. Le script vérifie que le répertoire est accessible en écriture et avertit si l’espace libre semble insuffisant avant de commencer.",
"calloutTitle": "Estimation de l’espace libre nécessaire",
"calloutBody": "Pour exporter en OVF une VM dont les disques totalisent 100 Go virtuels, prévoyez ~120 Go libres ; pour OVA, ~220 Go. L’espace réellement utilisé peut être inférieur pour des disques presque vides. L’archive OVA est créée en TAR non compressé alors que les fichiers VMDK temporaires sont encore présents : prévoyez donc de la place pour les deux. Si l’espace manque pendant l’export, le gestionnaire EXIT nettoie le répertoire temporaire et vous devez recommencer."
},
"package": {
"heading": "Ce qui finit dans le paquet",
"intro": "Pour une OVA / OVF nommée <code>myvm-100-2026-04-26_18-30-15</code>:",
"code": "# OVA mode (single .ova file is a TAR of):\nmyvm-100-2026-04-26_18-30-15.ovf # XML descriptor (DMTF OVF 1.0 + RASD + VSSD)\nmyvm-100-2026-04-26_18-30-15.mf # SHA1 manifest\nmyvm-100-2026-04-26_18-30-15-disk0.vmdk\nmyvm-100-2026-04-26_18-30-15-disk1.vmdk\n...\n\n# OVF mode (a directory):\nmyvm-100-2026-04-26_18-30-15-ovf/\n├── myvm-100-2026-04-26_18-30-15.ovf\n├── myvm-100-2026-04-26_18-30-15.mf\n├── myvm-100-2026-04-26_18-30-15-disk0.vmdk\n└── myvm-100-2026-04-26_18-30-15-disk1.vmdk"
},
"exported": {
"heading": "Ce qui est exporté",
"items": [
"<strong>Disques :</strong> toutes les entrées <code>scsi*</code>, <code>sata*</code>, <code>virtio*</code> et <code>ide*</code> de la configuration de la VM, converties en VMDK au format streamOptimized.",
"<strong>Nombre de vCPU</strong> (RASD ResourceType 3) et <strong>mémoire</strong> en MiB (ResourceType 4).",
"<strong>Nombre de cartes réseau</strong> (ResourceType 10 : uniquement le nombre, sans le pont ni le modèle).",
"<strong>Nom de la VM</strong> et indication du type de système d’exploitation."
],
"notTitle": "Ce qui n'est pas exporté",
"notItems": [
"Montages CD-ROM / ISO (volontairement exclus).",
"Lecteurs cloud-init (volontairement exclus).",
"Pont et modèle précis de carte réseau (seul le nombre est conservé).",
"Choix BIOS / UEFI, à configurer à nouveau lors de l’import.",
"Configuration du passthrough PCI.",
"Snapshots — seul l'état actuel est capturé.",
"Options de niveau VM (NUMA, pages géantes, hotplug, ...)."
]
},
"conversion": {
"heading": "Conversion du disque",
"intro": "Chaque disque est converti avec :",
"code": "qemu-img convert -p -O vmdk -o subformat=streamOptimized \\\n \"$source_path\" \\\n \"$work_dir/<base_name>-disk<N>.vmdk\"",
"outro": "<code>streamOptimized</code> est le format VMware lisible en une seule passe, pris en charge par ESXi 6.7+, VMware Workstation, VirtualBox et Proxmox lui-même. C’est le sous-format VMDK le plus largement compatible, adapté à la portabilité. En contrepartie, il ne permet pas l’accès aléatoire et ne peut donc pas être monté directement sans conversion."
},
"manifest": {
"heading": "Manifeste SHA1",
"intro": "Chaque paquet contient un fichier <code>.mf</code> avec les empreintes SHA1 du descripteur OVF et de chaque VMDK :",
"code": "SHA1(myvm-100-2026-04-26_18-30-15.ovf)= 3a7bd3e2360a3d29eea436fcfb7e44c735d117c9\nSHA1(myvm-100-2026-04-26_18-30-15-disk0.vmdk)= b7e23ec29af22b0b4e41da31e868d57226121c84\nSHA1(myvm-100-2026-04-26_18-30-15-disk1.vmdk)= a87ff679a2f3e71d9181a67b7542122c",
"outro": "Facultatif dans la spécification OVF et ignoré par de nombreux outils, le manifeste permet toutefois de vérifier que le paquet a été transféré intact. Vérifiez-le manuellement avec <code>sha1sum -c file.mf</code>."
},
"import": {
"heading": "Importation du résultat",
"intro": "Le paquet exporté peut être importé dans :",
"items": [
{
"href": "/docs/utils/import-vm",
"preRich": "<strong>Proxmox</strong> — utilisez l’outil correspondant ",
"linkLabel": "Importer une VM depuis OVA / OVF",
"tailRich": "."
},
{
"tailRich": "<strong>VMware ESXi</strong> — Datacenter → Deploy OVF Template ; sélectionnez le fichier .ova ou .ovf."
},
{
"tailRich": "<strong>VMware Workstation / Fusion</strong> — File → Open ; sélectionnez le fichier .ova ou .ovf."
},
{
"tailRich": "<strong>VirtualBox</strong> — File → Import Appliance ; sélectionnez le fichier .ova ou .ovf."
}
]
},
"troubleshoot": {
"heading": "Dépannage",
"noSpaceTitle": "qemu-img convert échoue en cours de conversion avec \"No space left on device\"",
"noSpaceBody": "Le répertoire de destination n’a plus d’espace libre. Le gestionnaire EXIT nettoie automatiquement le répertoire temporaire. Choisissez une destination avec davantage d’espace libre (voir l’estimation ci-dessus) et relancez l’export.",
"unsupportedHwTitle": "L’export se termine, mais VMware refuse l’import : \"Unsupported hardware family\"",
"unsupportedHwBody": "Certaines versions d’ESXi rejettent les descripteurs OVF qui déclarent une famille matérielle inconnue. Ouvrez le .ovf dans un éditeur de texte, ou extrayez d’abord le .ova, repérez <code>&lt;vssd:VirtualSystemType&gt;</code> et choisissez une valeur acceptée par ESXi, par exemple <code>vmx-13</code> pour ESXi 6.5+. Pour contourner rapidement le problème, essayez VirtualBox, qui est plus permissif.",
"nicTitle": "La VM importée utilise une carte réseau ou un contrôleur SCSI différent",
"nicBody": "L’OVF conserve le nombre de cartes réseau, pas leur modèle d’origine. Vérifiez les paramètres réseau de la VM importée dans l’hyperviseur de destination. L’export déclare un contrôleur SCSI lsilogic pour la compatibilité VMware. Lors d’un retour dans Proxmox, vous pouvez choisir <code>VirtIO SCSI</code> si le système invité possède les pilotes adaptés.",
"runningTitle": "La VM était en cours d’exécution et j’ai refusé de l’arrêter : export annulé",
"runningBody": "Le script ne peut pas produire une image cohérente pendant l’écriture sur les disques. Acceptez la demande d’arrêt la prochaine fois, ou arrêtez d’abord la VM manuellement (<code>qm shutdown $VMID</code>), puis relancez l’export.",
"slowTitle": "La conversion du disque est lente",
"slowBody": "<code>qemu-img convert</code> utilise un seul thread et lit la source à pleine vitesse. Pour un disque de 100 Go sur un disque dur mécanique, comptez 15 à 30 minutes. Un transfert de NVMe à NVMe est 5 à 10 fois plus rapide. Les disques d’une VM sont convertis l’un après l’autre ; la durée augmente linéairement avec la taille virtuelle totale."
},
"related": {
"heading": "Voir aussi",
"items": [
{
"href": "/docs/utils/import-vm",
"label": "Importer une VM depuis OVA / OVF",
"tail": " — l’outil complémentaire pour réimporter la VM."
},
{
"href": "/docs/utils",
"label": "Présentation des utilitaires",
"tail": " — retour à la présentation de la section."
}
]
}
}
+218
View File
@@ -0,0 +1,218 @@
{
"meta": {
"title": "Importer une VM depuis OVA / OVF | Documentation ProxMenux",
"description": "Importez une VM VMware ESXi / Workstation / Fusion / VirtualBox / ProxMenux dans Proxmox VE. Extrait automatiquement OVA, analyse les métadonnées OVF, crée la VM et importe chaque disque au format natif du stockage (qcow2 / raw).",
"ogTitle": "Importer une VM depuis OVA / OVF | Documentation ProxMenux",
"ogDescription": "Importez dans Proxmox des VM exportées depuis VMware, VirtualBox ou ProxMenux. Les disques sont convertis automatiquement au format natif du stockage."
},
"header": {
"title": "Importer une VM depuis OVA / OVF",
"description": "Importe un paquet OVA / OVF dans Proxmox VE : extrait les archives OVA, lit le descripteur OVF pour obtenir le nombre de vCPU, la mémoire, le nombre de cartes réseau et les références des disques, puis crée la VM et importe chaque disque avec qm importdisk vers le stockage choisi. Compatible avec les exports VMware (ESXi / Workstation / Fusion), VirtualBox et ProxMenux.",
"section": "Utilitaires"
},
"intro": {
"title": "Ce que ça fait",
"body": "Crée une VM complète dans Proxmox depuis un paquet portable. Après l’import, elle est prête à démarrer. Quelques vérifications et réglages du modèle réseau, du firmware et du type de système sont recommandés pour les performances et la compatibilité."
},
"picker": {
"heading": "Sélection de fichiers",
"intro": "Au lancement, le script propose deux répertoires prédéfinis ou un chemin manuel :",
"items": [
"<code>/var/lib/vz/dump</code> — le répertoire de sauvegarde par défaut Proxmox vzdump.",
"<code>/var/lib/vz/template/iso</code> — utile si vous y avez transféré l’OVA par sftp.",
"Chemin manuel — pour les fichiers OVA / OVF n'importe où ailleurs sur l'hôte."
],
"outro": "Il énumère ensuite chaque fichier <code>.ova</code> et <code>.ovf</code> dans le répertoire choisi.",
"imageAlt": "Dialogue de sélection du fichier de VM à importer"
},
"flow": {
"heading": "Comment fonctionne l'importation",
"nodes": [
{
"label": "Entrée OVA / OVF",
"detail": ".ova → tar xf vers\n /tmp/.proxmenux-import-*\n.ovf → utiliser sur place",
"variant": "source"
},
{
"label": "Analyse et dialogues",
"detail": "AWK lit OVF\n(nom, vCPU, RAM, NIC,\nles disques). Choix de l'utilisateur\nVMID / stockage / pont",
"variant": "bridge"
},
{
"label": "qm create + importdisk",
"detail": "qm create $VMID\nqm importdisk\n(VMDK → format du stockage)\nqm set --scsiN",
"variant": "target"
}
]
},
"ovf": {
"heading": "Analyse OVF",
"intro": "Un analyseur <strong>gawk</strong> lit le descripteur OVF et retire les métadonnées VM. L'analyseur utilise la forme d'argument 3 de <code>match()</code> spécifique à gawk (mawk, le <code>awk</code> par défaut sur Debian / Proxmox, ne le supporte pas). Lors de la première importation, le script auto-installe gawk via la paire canonique <code>ensure_repositories</code> + <code>install_single_package</code> s'il manque; les importations subséquentes commencent instantanément. Champs extraits:",
"headerField": "Champ",
"headerSource": "Source en OVF",
"headerDefault": "Par défaut si manquant",
"rows": [
{
"field": "Nom VM",
"source": "<Name> (première correspondance)",
"default": "imported-vm"
},
{
"field": "Nombre de vCPU",
"source": "RASD ResourceType 3 → VirtualQuantity",
"default": "1"
},
{
"field": "Mémoire (MiB)",
"source": "RASD ResourceType 4 → VirtualQuantity",
"default": "1024"
},
{
"field": "Nombre de NIC",
"source": "Nombre de ResourceType 10",
"default": "1"
},
{
"field": "Type de système d’exploitation",
"source": "/Linux/ ou /Windows/ dans la description",
"default": "other"
},
{
"field": "Références des disques",
"source": "attributs href se terminant par .vmdk / .qcow2 / .img / .raw",
"default": "aucun (importation avortée)"
}
]
},
"memWarn": {
"title": "Ambiguité de l'unité de mémoire",
"body": "L’analyseur convertit les unités mémoire reconnues en <strong>MiB</strong>, notamment les octets, KiB, MiB, GiB et les libellés textuels pris en charge. Les unités absentes ou inconnues sont <em>traitées comme des MiB</em>. Après l’import, comparez <code>qm config $VMID | grep memory</code> à la RAM documentée de la VM source et corrigez-la si nécessaire avec <code>qm set $VMID --memory &lt;MiB&gt;</code>."
},
"dialog": {
"heading": "Étapes des dialogues d’importation",
"items": [
"<strong>VMID</strong> — propose le prochain identifiant disponible (<code>pvesh get /cluster/nextid</code>).",
"<strong>Nom de la VM</strong> — reprend le nom lu dans l’OVF ; vous pouvez le modifier.",
"<strong>Stockage de destination</strong> — liste des stockages acceptant le contenu <code>images</code>, obtenue par <code>pvesm status -content images</code>.",
"<strong>Pont réseau</strong> — liste des ponts issue de <code>ip link show type bridge</code>. Un pont unique est choisi automatiquement ; la valeur par défaut est <code>vmbr0</code>.",
"<strong>Confirmation</strong> — boîte de dialogue sommaire avec VMID, nom, vCPU, mémoire, NIC, stockage, pont et la liste des disques à importer. Annuler ici = rien ne change."
]
},
"create": {
"heading": "Création de VM",
"intro": "Après confirmation, le script s'exécute :",
"code": "qm create $VMID \\\n --name \"$NAME\" \\\n --memory $MEMORY \\\n --cores $VCPU \\\n --ostype $OSTYPE \\\n --scsihw lsi \\\n --net0 e1000,bridge=$BRIDGE\n\n# For each additional NIC:\nqm set $VMID --netN e1000,bridge=$BRIDGE",
"outro": "Le contrôleur SCSI par défaut est <code>lsi</code> (LSI Logic) pour la compatibilité VMDK. NICs par défaut à <code>e1000</code> (compatibilité universelle) sur le pont choisi."
},
"diskLoop": {
"heading": "Boucle d'importation de disque",
"intro": "Pour chaque référence disque dans l'OVF:",
"items": [
"<code>qm importdisk $VMID $disk_path $STORAGE</code> — importe le disque dans un format accepté par le stockage de destination et crée une entrée <code>unusedN:</code> dans la configuration de la VM.",
"Le script recherche avec grep la référence <code>unusedN</code> qui vient d’être créée dans la configuration.",
"<code>qm set $VMID --scsiN $unused_disk</code> — fixe le disque comme <code>scsi0</code>, <code>scsi1</code>, ...",
"<code>qm set $VMID --delete unusedN</code> — efface le marqueur maintenant inutilisé."
],
"outro": "Le démarrage est réglé sur le premier disque SCSI : <code>qm set $VMID --boot c --bootdisk scsi0</code>."
},
"postImport": {
"heading": "Réglages recommandés après l’import",
"intro": "L’import utilise des réglages largement compatibles pour favoriser un premier démarrage réussi. Après l’avoir confirmé, choisissez des réglages plus performants depuis l’interface Proxmox ou la CLI :",
"headerSetting": "Réglage",
"headerDefault": "Par défaut après l'importation",
"headerRecommended": "Recommandé si le système invité le prend en charge",
"rows": [
{
"setting": "Modèle NIC",
"default": "e1000",
"recommended": "VirtIO (bien plus rapide, nécessite un pilote dans le système invité)"
},
{
"setting": "Contrôleur SCSI",
"default": "LSI",
"recommended": "VirtIO SCSI single (Linux récent ou Windows avec pilotes VirtIO)"
},
{
"setting": "Micrologiciel (BIOS / UEFI)",
"default": "Par défaut Proxmox (BIOS)",
"recommended": "Reprendre le firmware de la VM source ; un mauvais choix empêche le démarrage"
},
{
"setting": "QEMU agent invité",
"default": "Désactivé",
"recommendedRich": "Activer et installer <code>qemu-guest-agent</code> dans le système invité (meilleures sauvegardes, remontée des IP)"
},
{
"setting": "Type de système d’exploitation",
"default": "l26 / win10 / other (heuristique)",
"recommended": "Vérifier par rapport à l'OS client réel"
},
{
"setting": "Affichage",
"default": "Par défaut",
"recommended": "VirtIO-GPU ou SPICE (meilleure performance de la console)"
}
]
},
"fwWarn": {
"title": "Erreur de firmware = pas de démarrage",
"body": "Si la source VM était UEFI mais Proxmox la crée comme BIOS (ou vice-versa), l'invité ne trouvera pas de disque amorçable. Vérifiez les paramètres OVF ou VM d'origine pour <em>FirmwareType / firmware</em> et définissez la même chose dans Proxmox: <code>qm set $VMID --bios ovmf</code> pour UEFI; par défaut, <code>seabios</code> pour BIOS."
},
"notImported": {
"heading": "Ce qui n'est pas importé",
"items": [
"<strong>Ponts réseau précis</strong> — seul le nombre de cartes est conservé. Toutes utilisent le pont choisi lors de l’import.",
"<strong>Modèle NIC</strong> — par défaut pour e1000.",
"<strong>Type de firmware BIOS / UEFI</strong> — utilise la valeur Proxmox par défaut, BIOS.",
"<strong>Configuration du passthrough PCI</strong>.",
"<strong>TPM</strong> (vTPM).",
"Lecteurs <strong>cloud-init</strong>.",
"<strong>Snapshots</strong> — seul l'état actuel.",
"<strong>USB / série / dispositifs parallèles</strong> déclaré dans l'OVF.",
"<strong>VM tags / notes / options de démarrage</strong>."
]
},
"troubleshoot": {
"heading": "Dépannage",
"orphanTitle": "La VM est créée, mais l’import des disques échoue et laisse une VM partielle",
"orphanIntro": "Si l’import échoue, le script propose de supprimer la VM partielle et ses disques importés. Si vous avez refusé ou si la suppression automatique a échoué, examinez la VM et supprimez-la manuellement avec :",
"orphanCode": "qm destroy $VMID --destroy-unreferenced-disks 1",
"orphanOutro": "Ensuite, corrigez la cause sous-jacente (probablement l'espace disque sur le stockage cible) et réimportez.",
"memTitle": "La VM importée dispose de 8 Mo de RAM, ou de 8 To",
"memIntro": "L’analyseur convertit les AllocationUnits reconnues en MiB. Les unités absentes ou inconnues sont traitées comme des MiB. Examinez l’OVF et comparez la mémoire importée à celle de la VM source. Corrigez-la si nécessaire :",
"memCode": "qm set $VMID --memory 8192 # 8 GiB",
"bootTitle": "La VM importée ne démarre pas : \"No bootable device\"",
"bootIntro": "Cause fréquente : un mauvais choix BIOS / UEFI. La VM source utilisait UEFI, mais Proxmox l’a créée avec BIOS. Choisissez le firmware correspondant :",
"bootCode": "qm set $VMID --bios ovmf # UEFI\n# also add an EFI disk for the EFI vars:\nqm set $VMID --efidisk0 $STORAGE:1,format=qcow2,efitype=4m,pre-enrolled-keys=1",
"bootOutro": "Autre cause fréquente : l’ordre de démarrage vise scsi0 alors que le système est sur scsi1. Modifiez l’ordre dans l’onglet Options de la VM.",
"bsodTitle": "Une VM Windows exportée de VMware affiche un écran bleu au premier démarrage",
"bsodBody": "Windows est sensible au changement de contrôleur de disque. Installez les pilotes VirtIO <em>avant</em> l’export depuis VMware, ou conservez le contrôleur <code>lsi</code> par défaut. Passez à VirtIO SCSI seulement après un démarrage réussi et l’installation des pilotes VirtIO dans Windows.",
"zeroTitle": "L’analyseur OVF indique 0 disque",
"zeroBody": "L’OVF peut utiliser des références de disque inconnues de l’analyseur. Ouvrez-le et cherchez pour chaque disque une entrée <code>&lt;File ovf:href=\"...vmdk\" ...&gt;</code>. Si le disque est réellement VMDK, mais porte une extension inhabituelle comme <code>.dat</code>, renommez-le en <code>.vmdk</code> et actualisez la référence OVF. Le renommage ne convertit pas le format.",
"awkTitle": "awk: erreur de syntaxe à ou près , — l'analyseur échoue sur chaque OVA / OVF",
"awkIntro": "L’analyseur OVF utilise la syntaxe gawk de <code>match()</code> à trois arguments, absente de mawk, le <code>awk</code> par défaut sur Debian / Proxmox. Les versions récentes installent gawk automatiquement au premier usage via <code>ensure_repositories</code> + <code>install_single_package</code>. Avec une ancienne copie, installez-le manuellement :",
"awkCode": "apt-get install -y gawk",
"awkOutro": "Relancez ensuite l’import.",
"netTitle": "Réseau ne fonctionnant pas après le premier démarrage",
"netBody": "Le système invité peut ne pas avoir les pilotes du modèle réseau e1000, ou le pont choisi peut être incorrect. Dans l’onglet Hardware de la VM, changez Network Device → Model. Vérifiez aussi <code>ip a</code> dans le système invité : l’interface peut avoir changé de nom, par exemple ens18 au lieu d’eth0, alors que sa configuration utilise encore l’ancien."
},
"files": {
"heading": "Fichiers concernés",
"code": "scripts/utilities/import_vm_ova_ovf.sh # this script\n/tmp/.proxmenux-import-*/ # temp extraction dir for OVA\n/etc/pve/nodes/<node>/qemu-server/<vmid>.conf # created by qm create\n<storage>/<vmid>/<vmid>-disk-<n>.<fmt> # disk images, format depends on storage"
},
"related": {
"heading": "Voir aussi",
"items": [
{
"href": "/docs/utils/export-vm",
"label": "Exportation de VM vers OVA / OVF",
"tail": " — l’outil complémentaire pour exporter la VM."
},
{
"href": "/docs/utils",
"label": "Présentation des utilitaires",
"tail": " — retour à la présentation de la section."
}
]
}
}
+115
View File
@@ -0,0 +1,115 @@
{
"meta": {
"title": "Utilitaires Proxmox — UUP Dump, migration de PVE 8 vers 9, export/import OVA | ProxMenux",
"description": "Utilitaires du quotidien pour Proxmox VE : créer des ISO Windows avec UUP Dump, installer une sélection d’outils CLI, mettre à jour le système Proxmox en toute sécurité, passer de PVE 8 à PVE 9, exporter des VM en OVA / OVF et importer des VM OVA / OVF depuis VMware ou VirtualBox.",
"ogTitle": "Utilitaires Proxmox — UUP Dump, migration de PVE 8 vers 9, export/import OVA",
"ogDescription": "Créez des ISO Windows, installez des outils CLI, lancez une mise à jour sûre, passez de PVE 8 à PVE 9 et exportez ou importez des VM OVA / OVF.",
"twitterTitle": "Utilitaires Proxmox | ProxMenux",
"twitterDescription": "Création d’ISO, outils CLI, mise à jour Proxmox, migration PVE 8→9 et portabilité des VM OVA / OVF."
},
"header": {
"title": "Utilitaires et outils",
"description": "Six outils complètent les tâches quotidiennes dans Proxmox VE : création d’ISO, maintenance du système et portabilité des VM. Chaque option est indépendante : choisissez celle qui vous convient ; rien n’est installé sans votre demande.",
"section": "Utilitaires"
},
"intro": {
"title": "À quoi sert ce menu",
"body": "Trois groupes d’outils indépendants mais souvent utiles : <strong>créer une ISO Windows</strong> avec UUP Dump, <strong>entretenir l’hôte Proxmox</strong> (outils CLI, mises à jour et changement de version majeure) et <strong>importer et exporter des VM</strong> dans Proxmox au format standard OVA / OVF."
},
"opening": {
"heading": "Ouverture du menu",
"body": "Dans le menu principal de ProxMenux, sélectionnez <strong>Utilities</strong>. Voici ce qui s’affiche :",
"imageAlt": "Menu des utilitaires avec UUP Dump, outils système, mise à jour, changement de version, export et import"
},
"groups": {
"heading": "Trois groupes d'outils",
"intro": "Les six outils se divisent en trois groupes indépendants. Cliquez sur une carte ci-dessous pour passer à la section correspondante.",
"iso": {
"title": "Création ISO",
"body": "Créez des ISO Windows officielles avec UUP Dump directement sur l’hôte Proxmox.",
"bullets": [
"Lien partagé UUP Dump → ISO amorçable",
"Dépendances installées automatiquement",
"Le résultat est enregistré dans le répertoire des modèles ISO de Proxmox"
]
},
"maintenance": {
"title": "Entretien du système",
"body": "Maintenez l’hôte en bon état : outils CLI, mises à jour régulières et passage à la version majeure suivante le moment venu.",
"bullets": [
"Installateur d’utilitaires système (25 outils CLI)",
"Mise à jour du système Proxmox (apt + dist-upgrade)",
"PVE 8 → PVE 9 mise à jour majeure"
]
},
"portability": {
"title": "Portabilité des VM",
"body": "Importez et exportez des VM dans Proxmox au format standard OVA / OVF.",
"bullets": [
"Exporter une VM Proxmox → OVA / OVF",
"Importer OVA / OVF → VM Proxmox",
"Compatible avec VMware et VirtualBox"
]
}
},
"upgradeWarn": {
"title": "La mise à jour PVE 8 → 9 est destructrice et non réversible",
"body": "Un changement de version majeure remplace sur place la base Debian (Bookworm → Trixie) et les composants Proxmox. Aucun retour arrière n’est prévu : vous devez disposer de <strong>sauvegardes vérifiées</strong> de chaque VM et CT et d’un <strong>accès console / IPMI / iKVM</strong> avant de commencer. C’est pourquoi l’outil refuse de s’exécuter depuis le terminal web Proxmox."
},
"isoSection": {
"heading": "Création ISO",
"body": "Créez une nouvelle ISO d’installation de Windows à jour directement sur l’hôte Proxmox. Le script automatise tout le processus UUP Dump : installation des dépendances (aria2c, cabextract, wimlib-imagex, …), téléchargement parallèle des fichiers de mise à jour avec aria2 et conversion en une ISO amorçable. Elle est enregistrée dans <code>/var/lib/vz/template/iso</code>, prête à être associée à une VM.",
"options": [
{
"title": "Créateur d’ISO UUP Dump",
"description": "Créez une ISO d’installation de Windows à jour depuis un lien partagé UUP Dump. Les dépendances, le téléchargement et la conversion sont entièrement automatisés ; l’ISO obtenue est enregistrée dans /var/lib/vz/template/iso, prête pour la création d’une VM.",
"href": "/docs/utils/UUp-Dump-ISO-Creator"
}
]
},
"maintenanceSection": {
"heading": "Entretien du système",
"body": "Trois outils couvrent les tâches quotidiennes et occasionnelles sur l’hôte. L’<strong>Installateur d’utilitaires système</strong> installe les outils CLI utiles après une nouvelle installation. La <strong>Mise à jour du système Proxmox</strong> assure l’entretien hebdomadaire ou mensuel. Le <strong>Passage de PVE 8 à PVE 9</strong> est le grand changement de chaque cycle de version majeure, avec des contrôles de sécurité supplémentaires car il n’est pas réversible.",
"options": [
{
"title": "Installateur des utilitaires système",
"description": "Sélecteur de 25 outils CLI choisis (htop, btop, iperf3, jq, tmux, ncdu, ...) avec sélection personnalisée ou groupes prédéfinis (base, développement, compression, multiplexeurs, analyse, réseau). Utilise le processus standard avec dépôt et commande de vérification.",
"href": "/docs/utils/system-utils"
},
{
"title": "Mise à jour du système Proxmox",
"description": "Vérification des dépôts + apt update + apt dist-upgrade, avec confirmation avant le redémarrage. Détecte la version majeure de PVE (8 ou 9), conserve les dépôts configurés et demande confirmation avant de faire passer un hôte sans abonnement au dépôt no-subscription, puis exécute autoremove.",
"href": "/docs/utils/system-update"
},
{
"title": "Mettre à niveau le PVE 8 vers le PVE 9",
"description": "Changement de version majeure (Debian Bookworm → Trixie + PVE 8 → 9). Vérifications préalables, migration des dépôts, mode automatisé ou interactif, validation après la migration et redémarrage. Refuse de s’exécuter depuis le terminal web.",
"href": "/docs/utils/upgrade-pve8-pve9"
}
]
},
"portabilitySection": {
"heading": "Portabilité VM (OVA / OVF)",
"body": "OVA et OVF sont des formats de paquetage entre hyperviseurs définis par la norme DMTF et pris en charge par VMware, VirtualBox et Proxmox. Les deux outils permettent un aller-retour : une VM exportée de Proxmox peut y être réimportée, et inversement. Utilisez-les pour migrer des charges depuis ESXi, créer une sauvegarde portable d’une VM ou partager une VM préparée avec un utilisateur de VirtualBox.",
"options": [
{
"title": "Exportation de VM vers OVA / OVF",
"description": "Convertissez une VM Proxmox en archive OVA portable ou en répertoire OVF. Schéma DMTF standard, manifeste SHA1 et disques VMDK au format streamOptimized. Importable dans VMware (ESXi / Workstation / Fusion), VirtualBox et à nouveau dans Proxmox.",
"href": "/docs/utils/export-vm"
},
{
"title": "Importer une VM depuis OVA / OVF",
"description": "Importez dans Proxmox une exportation VMware / VirtualBox / ProxMenux. L’outil extrait automatiquement l’archive OVA, analyse les métadonnées OVF, crée la VM et importe chaque disque au format natif du stockage.",
"href": "/docs/utils/import-vm"
}
]
},
"diskSpaceCallout": {
"title": "Une note sur l'espace disque pour l'exportation / l'importation",
"body": "Les deux outils convertissent les formats de disque : l’export utilise <code>qemu-img convert -O vmdk -o subformat=streamOptimized</code> et l’import utilise <code>qm importdisk</code> pour revenir au format natif du stockage (qcow2 / raw). Pour l’export, prévoyez <strong>~120 % de la taille virtuelle du disque</strong> pour OVF et <strong>~220 %</strong> pour OVA. L’archive OVA utilise un TAR non compressé et est créée alors que les fichiers VMDK temporaires sont encore présents. Vérifiez que le répertoire de destination dispose de suffisamment d’espace avant de commencer."
},
"fitsTogether": {
"heading": "Organisation du menu",
"body": "Chaque outil possède un script dédié dans <code>scripts/utilities/</code>. La mise à jour du système Proxmox appelle un seul script sécurisé dans <code>scripts/global/</code>, update-pve-safe.sh, qui détecte la version majeure et gère PVE 8 et PVE 9. Le passage PVE 8 → 9 propose deux actions supplémentaires dans son propre menu : une <em>Vérification avant migration</em> indépendante (exécute <code>pve8to9 --full</code>) et un <em>Guide de migration manuelle</em> en lecture seule (procédure en 17 étapes), pour contrôler le processus ou l’effectuer manuellement."
}
}
@@ -0,0 +1,168 @@
{
"meta": {
"title": "Mise à jour du système Proxmox | Documentation ProxMenux",
"description": "Met à jour les paquets dans la version majeure actuelle de Proxmox avec apt-get update et apt full-upgrade -y. Vérifie l’espace disque et les dépôts configurés, tente de récupérer les clés GPG, vérifie et répare les anciens en-têtes PV LVM, reconstruit les pilotes DKMS gérés si nécessaire, exécute autoremove/autoclean et propose un redémarrage lorsque nécessaire.",
"ogTitle": "Mise à jour du système Proxmox | Documentation ProxMenux",
"ogDescription": "apt full-upgrade avec vérification des dépôts, autoremove/autoclean et proposition de redémarrage si nécessaire."
},
"header": {
"title": "Mise à jour du système Proxmox",
"description": "Appelle un seul script d’exécution (<code>update-pve-safe.sh</code>) qui détecte la version majeure de Proxmox. Les dépôts configurés sont lus via l’API Proxmox et conservés ; un hôte sans abonnement utilisant uniquement Enterprise doit confirmer avant le passage à no-subscription. Le script met à jour les paquets et reconstruit les pilotes DKMS gérés par ProxMenux pour un noyau en attente de démarrage. Le script principal propose un redémarrage si le marqueur système existe ou si le dernier noyau installé diffère du noyau en cours. Le processus est aussi accessible depuis <em>Update Now</em> dans l’en-tête de ProxMenux Monitor lorsque des mises à jour sont détectées.",
"section": "Utilitaires"
},
"calloutWhat": {
"title": "Ce que ça fait",
"body": "Met l’hôte au dernier niveau de correctifs de sa version majeure actuelle. Il ne change <strong>pas</strong> de version majeure ; pour PVE 8 → PVE 9, consultez <link>Passer de PVE 8 à PVE 9</link>."
},
"official": {
"heading": "La recommandation officielle de Proxmox",
"intro": "Pour mettre à jour un hôte dans la même version majeure, Proxmox recommande d’exécuter :",
"code": "apt update && apt full-upgrade -y",
"outro": "Cette ligne est la commande officielle pour les versions actuelles de Proxmox. Il faut également vérifier que les dépôts sont propres, que les bons sont activés et que l’hôte reste dans un état cohérent après la mise à jour."
},
"onTop": {
"heading": "Ce que ProxMenux ajoute : vérifié dans le script",
"intro": "Utilise <strong>la même opération apt full-upgrade</strong>, avec vérification des dépôts, reconstruction DKMS et nettoyage après mise à jour. Les étapes suivantes correspondent à <code>scripts/utilities/proxmox_update.sh</code> et à son unique script d’exécution <code>scripts/global/update-pve-safe.sh</code> :",
"items": [
"<strong>Détecte la version majeure de PVE</strong> dans le script d’exécution (<code>pveversion | grep -oP ''pve-manager/\\K[0-9]+''</code>). Un seul script gère PVE 8 et PVE 9 ; les dépôts configurés sont conservés, sauf si un hôte sans abonnement accepte le changement proposé.",
"<strong>Conserve les dépôts configurés.</strong> <code>ensure_repositories</code> lit les dépôts via l’API Proxmox et vérifie l’abonnement. Avec un abonnement actif ou un dépôt no-subscription ou test déjà utilisé, rien ne change. Un hôte sans abonnement actif utilisant uniquement Enterprise doit confirmer le passage à no-subscription. Un refus arrête la mise à jour sans modifier les sources.",
"<strong>Exécute la mise à jour sans interaction</strong> avec <code>DEBIAN_FRONTEND=noninteractive</code> et <code>--force-confdef --force-confold</code>. Pour les fichiers de configuration dpkg, l’action par défaut est acceptée si elle existe ; sinon, le fichier actuel est conservé.",
"<strong>N’impose pas les utilitaires facultatifs.</strong> Le script n’installe pas de force <code>zfsutils-linux</code>, <code>chrony</code>, <code>ifupdown2</code> ou des paquets similaires. Une installation Proxmox qui a choisi de s’en passer conserve ce choix. Les paquets manquants sont signalés dans les processus d’installation supérieurs, pas lors de la mise à jour.",
"<strong>Vérification et réparation des métadonnées LVM.</strong> Détecte les anciens en-têtes PV et exécute vgck --updatemetadata et vgchange -ay sur les groupes de volumes concernés. Cela peut modifier les métadonnées LVM ; il ne s’agit pas d’une simple vérification avec avertissement.",
"<strong>Nettoye ensuite:</strong> <code>apt-get autoremove -y</code> + <code>apt-get autoclean -y</code>.",
"<strong>Reconstruction DKMS avant la proposition de redémarrage.</strong> Le script d’exécution appelle <code>pmx_rebuild_dkms_after_kernel</code> lorsqu’un noyau installé plus récent est en attente. Le script principal vérifie <code>/var/run/reboot-required</code> et utilise <code>dpkg-query</code> pour comparer le noyau indiqué par <code>uname -r</code> avec le dernier paquet <code>proxmox-kernel-*-pve-signed</code> / <code>pve-kernel-*-pve</code> installé. Le marqueur peut manquer sur les hôtes sans <code>needrestart</code> ; la comparaison des noyaux fonctionne tout de même."
]
},
"calloutOneSentence": {
"title": "En une phrase",
"body": "Met à jour les paquets de l’hôte, conserve les dépôts sauf changement accepté, vérifie les métadonnées LVM, reconstruit les pilotes DKMS gérés, nettoie avec autoremove/autoclean et propose un redémarrage si nécessaire."
},
"confirm": {
"heading": "Boîte de dialogue de confirmation",
"intro": "La sélection de l’option ouvre un résumé des actions prévues et demande une confirmation explicite :",
"imageAlt": "Boîte de dialogue de confirmation de mise à jour Proxmox avec vérification des dépôts, mise à jour des paquets et nettoyage"
},
"routes": {
"heading": "Comment le script principal délègue l’exécution",
"nodes": {
"source": {
"label": "proxmox_update.sh",
"detail": "pveversion |\ngrep -oP ''pve-manager/\\K[0-9]+''"
},
"bridge": {
"label": "Un seul script d’exécution",
"detail": "update-pve-safe.sh\n(détecte PVE 8 / 9\nen interne)"
},
"target": {
"label": "Après la mise à jour",
"detail": "apt-get autoremove\napt-get autoclean\nRedémarrage proposé si nécessaire"
}
}
},
"worker": {
"heading": "Ce que fait le script d’exécution",
"intro": "Un seul script (<code>scripts/global/update-pve-safe.sh</code>) gère PVE 8 (<code>bookworm</code>) et PVE 9 (<code>trixie</code>). Il détecte la version majeure et vérifie les dépôts existants sans réécrire les sources Debian de base. Les étapes sont les suivantes :",
"items": [
"<strong>Vérifications préalables.</strong> Vérifie qu’il reste au moins ~1 Go dans <code>/var/cache/apt/archives</code>. Sinon, le processus s’arrête immédiatement avec un message clair afin d’éviter un échec au milieu d’une opération apt.",
"<strong>Vérification des dépôts.</strong> <code>ensure_repositories</code> lit les dépôts et l’état de l’abonnement. Avec un dépôt Proxmox utilisable, rien ne change. Sur un hôte sans abonnement actif utilisant uniquement Enterprise, le passage à no-subscription doit être confirmé ; un refus arrête la mise à jour.",
"<strong>apt update avec récupération automatique GPG.</strong> En cas de <code>NO_PUBKEY</code> pour un dépôt, y compris tiers, le script importe la clé manquante et réessaie automatiquement avant de signaler un échec.",
"<strong>Mises à jour en attente et de sécurité.</strong> Indique combien de paquets vont changer et combien proviennent de la suite de sécurité, afin d’afficher des chiffres concrets dans le dialogue de confirmation.",
"<strong>Boîte de dialogue de confirmation.</strong> Après l’actualisation des listes de paquets, le script demande un oui explicite avant de mettre à jour les paquets.",
"<strong>apt full-upgrade.</strong> Utilise <code>DEBIAN_FRONTEND=noninteractive</code> et <code>--force-confdef --force-confold</code>. Dpkg suit son action par défaut pour les fichiers de configuration lorsqu’elle existe ; sinon, il conserve le fichier actuel.",
"<strong>Vérification LVM.</strong> <code>lvm_repair_check</code> actualise les métadonnées des groupes de volumes lorsque des disques transmis directement à des VM invitées (DSM, TrueNAS ou appliances de stockage) reviennent avec d’anciens en-têtes PV.",
"<strong>Reconstruction DKMS des pilotes gérés par ProxMenux.</strong> Lorsqu’un nouveau noyau est en attente de démarrage, <code>pmx_rebuild_dkms_after_kernel</code> lit les pilotes installés par ProxMenux dans <code>components_status.json</code> (actuellement <code>nvidia_driver</code> → module <code>nvidia</code> et <code>coral_driver</code> → module <code>gasket</code>), installe les en-têtes correspondants (<code>proxmox-headers-&lt;newkver&gt;</code> si disponible, sinon <code>pve-headers-&lt;newkver&gt;</code>) et exécute <code>dkms autoinstall -k &lt;newkver&gt;</code>. Si <code>dkms status</code> ne montre pas les modules construits pour le nouveau noyau, les installateurs sont relancés avec <code>--auto-reinstall</code>. Les échecs sont consignés sans interrompre la mise à jour, qui atteint tout de même la proposition de redémarrage.",
"<strong>Nettoyage final.</strong> <code>apt-get autoremove</code> + <code>apt-get autoclean</code> avant de rendre la main au script principal."
]
},
"post": {
"heading": "Nettoyage et redémarrage après mise à jour",
"intro": "Après la fin du script d’exécution, le script principal exécute :",
"code": "apt-get autoremove -y # drop unused dependencies pulled in by old packages\napt-get autoclean # drop downloaded .deb files no longer in the index",
"afterCode": "Le script principal vérifie aussi si un redémarrage est nécessaire. Chacun de ces signaux déclenche la proposition :",
"items": [
"<code>/var/run/reboot-required</code> existe : un paquet ou un outil système a indiqué qu’un redémarrage est nécessaire.",
"Le dernier paquet de noyau Proxmox installé diffère du noyau en cours, selon <code>dpkg-query</code> et uname -r."
],
"outro": "Si l’une des conditions est remplie, une boîte de dialogue whiptail demande <em>« Certains changements nécessitent un redémarrage. Voulez-vous redémarrer maintenant ? »</em>. Refusez pour continuer avec le noyau en cours jusqu’au redémarrage manuel, par exemple pendant une fenêtre de maintenance prévue."
},
"end": {
"heading": "Ce que vous voyez à la fin",
"intro": "À la fin du script d’exécution, le terminal affiche le résultat du nettoyage et, si nécessaire, la proposition de redémarrage :",
"imageAlt": "Résumé final de la mise à jour Proxmox avec résultat du nettoyage et proposition de redémarrage"
},
"calloutDeclineReboot": {
"title": "Reportez le redémarrage seulement pour une raison précise",
"body": "Installer un nouveau paquet <code>proxmox-kernel-*</code> ne remplace pas le noyau en cours avant le redémarrage. Le nouveau noyau et ses modules correspondants deviennent actifs au démarrage suivant. Prévoyez une fenêtre de maintenance adaptée et examinez auparavant les avertissements de compilation DKMS."
},
"noSub": {
"heading": "Traitement du dépôt Enterprise par le script",
"intro": "Proxmox active par défaut le dépôt Enterprise. Sans abonnement actif, ce dépôt renvoie 401 lors de <code>apt-get update</code>. Le script ne modifie les dépôts que dans ce cas et après confirmation, via l’API Proxmox utilisée par <em>Node → Updates → Repositories</em>. Voici les différents cas :",
"items": [
"Avec un <strong>abonnement actif</strong>, les dépôts sont conservés et Enterprise fournit les mises à jour.",
"Si le <strong>dépôt no-subscription ou test est déjà activé</strong>, les dépôts sont conservés, quelles que soient les autres sources configurées.",
"Avec <strong>aucun abonnement actif et uniquement le dépôt Enterprise</strong>, un dialogue propose le changement. Accepter désactive Enterprise, active no-subscription et actualise les listes de paquets. Le changement est consigné dans la vue <em>Changes</em> d’Audit & Report. Refuser arrête la mise à jour sans modifier les sources.",
"Les <strong>sources Ceph Enterprise</strong> présentes sont désactivées lors du même changement, sans choisir un autre canal Ceph. Sur un hôte utilisant Ceph, son canal se configure séparément.",
"Si <strong>aucun terminal ne permet de demander confirmation</strong>, aucune source n’est modifiée et la mise à jour s’arrête avec un message renvoyant à <em>Node → Updates → Repositories</em>."
],
"outro": "Les sources Debian et tous les autres fichiers de dépôts ne sont jamais modifiés par ce processus. Une entrée mêlant Enterprise à d’autres composants n’est pas changée : la mise à jour s’arrête et demande de séparer cette entrée depuis la vue des dépôts Proxmox."
},
"cluster": {
"heading": "Précautions pour les clusters",
"calloutTitle": "Sur les clusters : mettre à jour un noeud à la fois",
"calloutBody": "Dans un cluster Proxmox, exécutez cette option sur <strong>un nœud à la fois</strong> et attendez la fin du redémarrage avant de passer au suivant. Migrez d’abord les systèmes invités hors du nœud pour éviter une interruption de service dans le cluster. Des versions mineures différentes, comme 8.4.1 et 8.4.5, peuvent cohabiter pendant quelques heures ; des noyaux en cours différents peuvent entraîner un comportement inattendu pour les systèmes invités gérés par HA."
},
"doesnt": {
"heading": "Ce qu'il ne fait pas",
"items": [
"<strong>Changement de version majeure.</strong> Le passage 8 → 9 est une opération distincte ; voir <link>Passer de PVE 8 à PVE 9</link>.",
"<strong>Sauvegarde.</strong> Aucune capture d’état ni retour arrière. Les opérations apt ne sont pas transactionnelles. Conservez vos sauvegardes habituelles (PBS, vzdump, instantanés ZFS).",
"<strong>Mises à jour des conteneurs / VM.</strong> Seul l’hôte est mis à jour ; les systèmes invités restent inchangés.",
"<strong>Écriture dédiée de firmware.</strong> Cet outil ne sert pas à flasher le BIOS ou le firmware des appareils. Les paquets de firmware ou de microcode CPU déjà installés peuvent néanmoins être mis à jour par apt."
]
},
"troubleshooting": {
"heading": "Dépannage",
"items": [
{
"title": "apt update échoue avec 401 Unauthorized",
"body": "Le dépôt Enterprise est activé sans abonnement actif. Avant <code>apt-get update</code>, le script propose le passage à no-subscription. Si vous avez refusé, relancez la mise à jour et acceptez, ou désactivez Enterprise dans <em>Node → Updates → Repositories</em> et activez no-subscription."
},
{
"title": "dist-upgrade reste bloqué sur \"Configuring grub-pc\"",
"body": "Si une question interactive GRUB est visible, elle demande les appareils où installer le chargeur de démarrage. L’option <code>--force-confold</code> concerne les fichiers de configuration, pas ce choix d’appareils. Sélectionnez les disques de démarrage appropriés avec <kbd>Tab</kbd> + <kbd>Space</kbd>, puis OK. Vous pouvez configurer ce choix à l’avance avec <code>dpkg-reconfigure grub-pc</code>."
},
{
"title": "Le noyau a été mis à jour, mais les nouveaux modules d’un pilote externe manquent",
"body": "Pour les pilotes gérés (<code>nvidia_driver</code> et <code>coral_driver</code>), la fonction exécute <code>dkms autoinstall -k &lt;newkver&gt;</code> et peut relancer leurs installateurs avec <code>--auto-reinstall</code>. Vérifiez le résultat avec <code>dkms status</code>. La commande autoinstall peut aussi reconstruire d’autres modules DKMS enregistrés ; la relance des installateurs se limite aux entrées gérées de <code>components_status.json</code>. Examinez les modules tiers encore manquants et reconstruisez-les si nécessaire avec <code>dkms autoinstall</code>."
},
{
"title": "L'invite de redémarrage n'est pas apparue mais je suis sûr que le noyau a changé",
"body": "Les signaux sont alternatifs : <code>/var/run/reboot-required</code> ou une différence entre le noyau en cours et le dernier noyau Proxmox installé. Le script principal ne recherche pas les entrées linux-image dans le journal apt. Vérifiez la version en cours avec <code>uname -r</code> et les paquets de noyau installés avec <code>dpkg-query</code>. Prévoyez le redémarrage nécessaire ou exécutez <code>shutdown -r now</code> au moment voulu."
}
]
},
"files": {
"heading": "Fichiers concernés",
"code": "scripts/utilities/proxmox_update.sh # this script (wrapper)\nscripts/global/update-pve-safe.sh # single safe worker (PVE 8 + PVE 9)\nscripts/global/repository-functions.sh # ensure_repositories\nscripts/global/repository_policy.py # reads and switches repositories through the Proxmox API\nscripts/global/utils-install-functions.sh # pmx_rebuild_dkms_after_kernel\n/usr/local/share/proxmenux/components_status.json # ProxMenux-managed DKMS driver registry\n/etc/apt/sources.list.d/proxmox.sources # no-subscription source, written by Proxmox when the switch is accepted\n/var/run/reboot-required # read to decide on reboot prompt\n# Reboot fallback when needrestart isn't installed:\n# dpkg-query -W 'proxmox-kernel-*-pve-signed' 'pve-kernel-*-pve' vs. uname -r"
},
"related": {
"heading": "Voir aussi",
"items": [
{
"href": "/docs/utils/upgrade-pve8-pve9",
"label": "Mettre à niveau le PVE 8 vers le PVE 9",
"tail": "— pour la mise à niveau de la version majeure (outil différent, modèle de sécurité différent)."
},
{
"href": "/docs/utils/system-utils",
"label": "Installateur des utilitaires système",
"tail": " — pour installer des outils CLI utiles pendant les mises à jour (htop / btop / ncdu)."
},
{
"href": "/docs/utils",
"label": "Présentation des utilitaires",
"tail": " — retour à la présentation de la section."
}
]
}
}
@@ -0,0 +1,252 @@
{
"meta": {
"title": "Installateur d’utilitaires système | Documentation ProxMenux",
"description": "Installateur d’outils CLI pour Proxmox VE, avec 25 paquets dans la liste de référence (htop, btop, iperf3, tmux, ...). Sélection personnalisée, installation complète et groupes prédéfinis (base, développement, compression, multiplexeurs, analyse, réseau). Les groupes peuvent inclure d’autres paquets. Utilise ensure_repositories + install_single_package.",
"ogTitle": "Installateur d’utilitaires système | Documentation ProxMenux",
"ogDescription": "Installez une sélection d’outils CLI sur Proxmox VE en un clic ou par sélection personnalisée."
},
"header": {
"title": "Installateur des utilitaires système",
"description": "Sélecteur des 25 utilitaires CLI de la liste de référence PROXMENUX_UTILS. Propose une sélection personnalisée, une installation complète, six groupes prédéfinis et une vérification des installations. Les groupes peuvent inclure des outils hors de la liste. Utilise les fonctions communes ensure_repositories() + install_single_package() pour une gestion cohérente des dépôts et des messages par paquet.",
"section": "Utilitaires"
},
"info": {
"title": "Ce que ça fait",
"body": "Installe des outils CLI depuis une liste de 25 paquets. Chaque installation suit le même processus : <code>ensure_repositories</code> vérifie que l’hôte dispose d’un dépôt Proxmox utilisable pour sa version majeure de PVE, puis <code>install_single_package</code> installe le paquet et vérifie que sa commande est dans PATH."
},
"opening": {
"heading": "Ouverture de l'installateur",
"intro": "Dans le menu Utilities, choisissez <strong>System Utilities Installer</strong>. Le menu principal propose neuf options :",
"imageAlt": "Menu d’installation des utilitaires système avec sélection personnalisée, ALL, groupes prédéfinis et vérification"
},
"actions": {
"heading": "Les 9 actions du menu",
"headerOption": "Option",
"headerBehaviour": "Comportement",
"rows": [
{
"option": "1. Sélection personnalisée",
"behaviourRich": "Liste de sélection des 25 paquets. Utilisez SPACE pour cocher et ENTER pour confirmer ; seuls les paquets sélectionnés sont installés."
},
{
"option": "2. Installer TOUS les utilitaires",
"behaviourRich": "Installe en une fois tous les paquets de <code>PROXMENUX_UTILS</code>. À utiliser après une nouvelle installation Proxmox."
},
{
"option": "3. Niveau de base",
"behaviourRich": "<code>grc</code>, <code>htop</code>, <code>tree</code>, <code>curl</code>, <code>wget</code>"
},
{
"option": "4. Développement",
"behaviourRich": "<code>git</code>, <code>vim</code>, <code>nano</code>"
},
{
"option": "5. Compression",
"behaviourRich": "<code>zip</code>, <code>unzip</code>, <code>rsync</code>"
},
{
"option": "6. Multiplexeurs terminaux",
"behaviourRich": "<code>screen</code>, <code>tmux</code>"
},
{
"option": "7. Analyse",
"behaviourRich": "<code>jq</code>, <code>ncdu</code>, <code>iotop</code>"
},
{
"option": "8. Réseau",
"behaviourRich": "<code>iperf3</code>, <code>nethogs</code>, <code>nmap</code>, <code>tcpdump</code>, <code>lsof</code>"
},
{
"option": "9. Vérifier les installations",
"behaviourRich": "Parcourt chaque entrée de <code>PROXMENUX_UTILS</code>, vérifie la présence de la commande dans PATH et affiche un résumé Disponible / Manquant."
}
]
},
"packages": {
"heading": "Les 25 paquets",
"intro": "Définis dans le fichier commun <code>scripts/global/utils-install-functions.sh</code> sous le nom <code>PROXMENUX_UTILS</code> (format : <code>package:verify_command:description</code>). Les autres scripts ProxMenux, notamment les lanceurs réseau iftop / iptraf-ng / iperf3, réutilisent ces entrées pour garder les paquets et leurs commandes de vérification synchronisés.",
"headerPackage": "Paquet",
"headerVerify": "Commande de vérification",
"headerDescription": "Description",
"rows": [
{
"package": "axel",
"verify": "axel",
"description": "Accélérateur de téléchargement"
},
{
"package": "aria2",
"verify": "aria2c",
"description": "Téléchargeur multisource"
},
{
"package": "btop",
"verify": "btop",
"description": "Outil moderne de suivi des ressources"
},
{
"package": "cabextract",
"verify": "cabextract",
"description": "Extraire les fichiers CAB"
},
{
"package": "chntpw",
"verify": "chntpw",
"description": "Modifier le registre Windows / mots de passe"
},
{
"package": "dos2unix",
"verify": "dos2unix",
"description": "Convertir les fichiers texte DOS / Unix"
},
{
"package": "genisoimage",
"verify": "genisoimage",
"description": "Créer des images ISO"
},
{
"package": "grc",
"verify": "grc",
"description": "Coloriseur de journal générique"
},
{
"package": "htop",
"verify": "htop",
"description": "Affichage interactif des processus"
},
{
"package": "iftop",
"verify": "iftop",
"description": "Utilisation en temps réel du réseau"
},
{
"package": "intel-gpu-tools",
"verify": "intel_gpu_top",
"description": "Outils Intel GPU"
},
{
"package": "iotop",
"verify": "iotop",
"description": "Surveillance des entrées/sorties disque"
},
{
"package": "iperf3",
"verify": "iperf3",
"description": "Essai de bande passante réseau"
},
{
"package": "ipset",
"verify": "ipset",
"description": "Gérer les ensembles IP"
},
{
"package": "iptraf-ng",
"verify": "iptraf-ng",
"description": "Outil de surveillance du réseau"
},
{
"package": "libguestfs-tools",
"verify": "virt-filesystems",
"description": "Utilitaires de disque VM"
},
{
"package": "msr-tools",
"verify": "rdmsr",
"description": "Accès aux MSR du CPU"
},
{
"package": "net-tools",
"verify": "netstat",
"description": "Outils de réseautage hérités"
},
{
"package": "plocate",
"verify": "locate",
"description": "Localiser les fichiers rapidement"
},
{
"package": "s-tui",
"verify": "s-tui",
"description": "Stress-Terminal UI"
},
{
"package": "sshpass",
"verify": "sshpass",
"description": "Connexion SSH non interactive"
},
{
"package": "tmux",
"verify": "tmux",
"description": "Multiplexeur terminal"
},
{
"package": "unzip",
"verify": "unzip",
"description": "Extraire les fichiers ZIP"
},
{
"package": "wimtools",
"verify": "wimlib-imagex",
"description": "Gérer les images WIM"
},
{
"package": "zip",
"verify": "zip",
"description": "Créer des fichiers ZIP"
}
]
},
"howItWorks": {
"heading": "Comment fonctionne l’installation d’un paquet",
"items": [
"<code>ensure_repositories</code> détecte PVE 8 ou 9 et lit les dépôts via l’API Proxmox. Avec un dépôt Proxmox utilisable, rien ne change. Un hôte sans abonnement actif utilisant uniquement Enterprise doit confirmer le passage à no-subscription ; <code>apt-get update</code> s’exécute après le changement accepté.",
"<code>install_single_package \"pkg\" \"verify_cmd\" \"description\"</code> exécute <code>apt-get install -y \"$pkg\"</code> avec rétroaction (<code>msg_info</code> / <code>msg_ok</code> / <code>msg_error</code>)."
],
"verifyIntro": "Après l’installation, la commande est vérifiée avec <code>command -v \"$verify_cmd\"</code>. Trois résultats possibles :",
"verifyOutcomes": [
"<strong>0 (succès):</strong> commande disponible, paquet compté comme <em>Succès</em>.",
"<strong>1 (échec):</strong> apt a échoué, compté comme <em> Échec</em>.",
"<strong>2 (avertissement) :</strong> apt a réussi, mais la commande attendue n’a pas été trouvée dans PATH ; le paquet est compté comme <em>Avec avertissements</em>."
],
"summary": "À la fin d’une installation personnalisée ou par groupe, un dialogue affiche les nombres de paquets <em>Réussis / Avec avertissements / En échec</em>."
},
"verify": {
"heading": "Vérifier les installations",
"intro": "L’option 9 est en lecture seule : elle parcourt <code>PROXMENUX_UTILS</code> et exécute <code>command -v</code> pour chaque commande de vérification. Voici la sortie :",
"code": "Total: 26\nAvailable: 18\nMissing: 8\n\n✓ axel - Download accelerator\n✓ aria2c - Multi-source downloader\n✓ btop - Modern resource monitor\n✗ cabextract - Extract CAB files\n✓ dos2unix - Convert DOS / Unix text files\n✗ genisoimage - Create ISO images\n✓ grc - Generic log colorizer\n...",
"outro": "Utile avant d’exécuter des scripts qui dépendent de ces outils. Par exemple, <code>uup_dump_iso_creator.sh</code> nécessite <code>aria2c</code> + <code>cabextract</code> + <code>wimlib-imagex</code>. S’il manque un outil, installez le groupe correspondant ou sélectionnez les paquets manquants."
},
"troubleshoot": {
"heading": "Dépannage",
"reposTitle": "« Impossible de configurer les dépôts. Installation annulée. »",
"reposBody": "La vérification des dépôts a échoué : le passage à no-subscription a été refusé, l’état de l’abonnement est illisible ou une entrée nécessite une intervention. Le message précédent indique la cause. Consultez <em>Node → Updates → Repositories</em> et lancez <code>apt-get update</code> dans une console pour voir l’erreur apt.",
"warningsTitle": "Un paquet est signalé \"Avec avertissements\" mais la commande fonctionne après que je ferme le menu",
"warningsBody": "Après <code>apt-get install</code>, la fonction exécute <code>hash -r</code>, attend brièvement et vérifie la commande attendue avec <code>command -v</code>. Un avertissement signifie que la vérification échoue encore, sans en identifier la cause. Essayez un nouveau shell, puis vérifiez le paquet installé et PATH si la commande manque toujours.",
"hangsTitle": "Une installation apt reste bloquée",
"hangsBody": "Il est fort probable que l'invite debconf soit bloquée derrière la sortie silencieuse. Le script enveloppe tous les appels apt avec <code>DEBIAN_FRONTEND=noninteractive</code>, ce qui supprime généralement les invites, mais quelques paquets nécessitent toujours une entrée utilisateur. Annuler avec <kbd>Ctrl</kbd>+<kbd>C</kbd>, exécuter <code>apt-get install -y &lt;pkg&gt;</code> manuellement à partir d'un shell pour voir l'invite et décider."
},
"files": {
"heading": "Fichiers concernés",
"code": "scripts/utilities/system_utils.sh # this script\nscripts/global/utils-install-functions.sh # PROXMENUX_UTILS, install_single_package\nscripts/global/repository-functions.sh # ensure_repositories\nscripts/global/repository_policy.py # reads and switches repositories through the Proxmox API\n/etc/apt/sources.list.d/proxmox.sources # no-subscription source, written by Proxmox when the switch is accepted"
},
"related": {
"heading": "Voir aussi",
"items": [
{
"href": "/docs/utils/system-update",
"label": "Mise à jour du système Proxmox",
"tailRich": "— pour le <code>apt dist-upgrade</code> réel sur l'hôte."
},
{
"href": "/docs/network/monitoring",
"label": "Outils de surveillance en direct (réseau)",
"tailRich": "— utilise iftop / iptraf-ng / iperf3 de cette même liste."
},
{
"href": "/docs/utils",
"label": "Présentation des utilitaires",
"tailRich": " — retour à la présentation de la section."
}
]
}
}
@@ -0,0 +1,335 @@
{
"meta": {
"title": "Passer de PVE 8 à PVE 9 | Documentation ProxMenux",
"description": "Trois méthodes pour passer de Proxmox VE 8 à 9 (Debian Bookworm vers Trixie et PVE 8 vers 9) : automatique, interactive ou manuelle, selon la procédure officielle Proxmox. Contrôle pve8to9, migration des dépôts, dist-upgrade et vérification finale. Refuse de démarrer depuis le terminal web.",
"ogTitle": "Passer de PVE 8 à PVE 9 | Documentation ProxMenux",
"ogDescription": "Trois méthodes (automatique, interactive, manuelle) pour passer de Proxmox VE 8 à 9."
},
"header": {
"title": "Mettre à niveau le PVE 8 vers le PVE 9",
"description": "Effectue le passage de Proxmox VE 8 à 9 selon la procédure officielle : Debian Bookworm vers Trixie et PVE 8 vers 9. Trois méthodes sont disponibles, ainsi qu’un contrôle préalable indépendant. Le terminal web est refusé, car une déconnexion pendant l’opération peut laisser l’hôte inutilisable.",
"section": "Utilitaires"
},
"dangerCallout": {
"title": "Un changement de version majeure est irréversible",
"intro": "Cette opération remplace sur place la base Debian (Bookworm → Trixie) et les composants Proxmox. Il n’existe <strong>aucune procédure de retour en arrière</strong>. Avant de commencer :",
"items": [
"<strong>Sauvegardes vérifiées</strong> de chaque VM et CT (PBS, vzdump, instantanés ZFS — vérifiez aussi leur restauration).",
"<strong>Accès console / IPMI / iKVM</strong> à l’hôte en cas de coupure SSH pendant la mise à niveau.",
"L'hôte déjà mis à jour sur PVE 8.4.x (le script l'applique).",
"Ceph (le cas échéant) sur la version 19.x Squid.",
"Au moins <strong>5 Go libres</strong> sur le système de fichiers racine."
]
},
"modeMenu": {
"heading": "Le menu mode",
"intro": "L’option ouvre un menu à quatre entrées : Automatique, Interactif, Contrôle préalable et Guide manuel. Trois choix <em>effectuent</em> la mise à niveau ou expliquent comment procéder ; le contrôle indépendant <em>vérifie</em> les prérequis et peut proposer des réparations.",
"imageAlt": "Menu de passage de PVE 8 à 9 : Automatique, Interactif, Contrôle préalable et Guide manuel"
},
"threeWays": {
"heading": "Trois façons de mettre à niveau",
"intro": "Les modes Automatique et Interactif suivent le même déroulement, avec contrôles préalables et vérification finale. Ils diffèrent dans les réponses aux questions de dpkg pendant <code>dist-upgrade</code>. Le guide manuel affiche les commandes et les contrôles ; vous devez exécuter chaque étape.",
"auto": {
"title": "Automatique / Sans surveillance",
"summary": "Définit <code>ASSUME_YES=1</code> + <code>DEBIAN_FRONTEND=noninteractive</code>. Pour les fichiers de configuration modifiés, dpkg utilise son action par défaut si elle existe ; sinon, il <strong>conserve le fichier actuel</strong> (<code>--force-confold</code>).",
"items": [
"Le plus rapide — aucune attente des réponses",
"Adapté aux installations standard sans fichiers de configuration personnalisés",
"Risque : une configuration personnalisée est conservée sans question et peut masquer les nouvelles valeurs par défaut"
]
},
"interactive": {
"title": "Interactif",
"summary": "Même déroulement, mais vous répondez à chaque question de dpkg sur les conflits de configuration. Plus lent, avec une visibilité maximale.",
"items": [
"Vous voyez chaque conflit de config et décidez",
"Meilleure quand vous avez personnalisé <code>/etc/lvm</code>, <code>/etc/ssh</code>, etc.",
"Consulter le tableau des réponses recommandées dans la procédure manuelle ci-dessous"
]
},
"manual": {
"title": "Guide de mise à jour manuelle",
"summary": "Affiche la procédure en 17 étapes conforme au wiki officiel Proxmox, sans l’exécuter. Lancez vous-même les commandes dans un autre shell.",
"items": [
"Contrôle maximal — vous tapez chaque commande",
"Mieux quand vous voulez apprendre la procédure ou vous ne faites confiance à rien",
"Le script affiche les étapes; rien n'est exécuté automatiquement"
]
}
},
"precheckCallout": {
"title": "Plus une vérification préalable séparée",
"body": "L’option 3 — <strong>Exécuter le contrôle PVE 8 vers 9</strong> — lance l’outil officiel <code>pve8to9 --full</code>, propose des réparations guidées pour les problèmes courants, puis <strong>s’arrête</strong>. Utilisez-la avant la mise à niveau ou après des réparations manuelles. Les modes Automatique et Interactif la lancent aussi ; le guide manuel vous indique de l’exécuter."
},
"webTerminal": {
"heading": "Pourquoi le terminal web est bloqué",
"body": "Les trois modes détectent <code>termproxy</code> / <code>vncshell</code> dans la chaîne des processus parents et refusent de démarrer. Le terminal web dépend de <code>pveproxy</code>, un service mis à jour pendant l’opération. Au redémarrage de <code>pveproxy</code>, la session se ferme, ainsi que le script lancé dedans. L’hôte peut rester partiellement mis à niveau.",
"warningTitle": "Utilisez SSH ou une console physique / IPMI / iKVM",
"warningBody": "SSH est le choix habituel. Lancez-le dans <code>tmux</code> ou <code>screen</code> pour résister aux brèves coupures réseau. Si le script détecte un simple shell SSH, il affiche d’abord un rappel concernant tmux/screen."
},
"auto": {
"heading": "Mode automatique / sans surveillance",
"intro": "Les confirmations et les questions habituelles sur les fichiers de configuration utilisent les réponses par défaut. Des échecs bloquants du contrôle préalable peuvent encore demander une intervention. Réservez ce mode aux installations standard, ou examinez d’abord l’effet des réponses sur vos fichiers personnalisés.",
"behaviourHeading": "Comportement propre au mode automatique",
"behaviourTable": {
"settingHeader": "Réglage",
"effectHeader": "Effet",
"rows": [
{
"settingRich": "<code>ASSUME_YES=1</code>",
"effectRich": "Option interne — confirme automatiquement les questions oui/non du script"
},
{
"settingRich": "<code>DEBIAN_FRONTEND=noninteractive</code>",
"effectRich": "apt / dpkg s’exécutent sans ouvrir de question debconf"
},
{
"settingRich": "<code>--force-confdef</code>",
"effectRich": "Pour les fichiers de configuration intacts: installez la nouvelle version du responsable"
},
{
"settingRich": "<code>--force-confold</code>",
"effectRich": "Pour les fichiers modifiés : action par défaut de dpkg si elle existe ; sinon, <strong>conservation de votre version</strong>."
}
]
},
"flowHeading": "Déroulement du mode automatique",
"flowIntro": "Six phases successives. Les premières peuvent mettre à jour des paquets PVE 8 et écrire la configuration des dépôts. Un échec arrête le déroulement sans annuler ces modifications. La phase 5 lance <code>dist-upgrade</code> vers PVE 9.",
"flowDiagram": "1. CONTRÔLES\nBloque termproxy / vncshell ; refuse PVE 9 ; vérifie espace et connectivité.\nExige Ceph 19.x Squid s’il est installé.\npve8to9 --full (peut proposer des réparations).\n\n2. PRÉPARER PVE 8\nscripts/global/update-pve8.sh\nMet à jour les paquets PVE 8 ; systemctl restart pve-manager.\n\n3. MIGRER LES DÉPÔTS\nBookworm → Trixie ; écrit les fichiers deb822 .sources.\nCommente les anciens fichiers .list ; apt-get update.\n\n4. VALIDER LE CANDIDAT PVE 9\napt-cache policy proxmox-ve\napt-get -s dist-upgrade\nArrêt si le candidat n’est pas 9.x ou si proxmox-ve serait supprimé.\n\n5. METTRE À NIVEAU\napt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' dist-upgrade\nJournal : /var/log/pve8-a-pve9-'<'timestamp'>'.log\n\n6. VÉRIFIER ET REDÉMARRER\nEFI : apt install grub-efi-amd64\npve8to9 --full ; examiner le résultat et la demande de redémarrage.",
"preflightHeading": "Contrôles avant la mise à niveau",
"preflightTable": {
"checkHeader": "Vérifier",
"whyHeader": "Pourquoi ça compte ?",
"rows": [
{
"checkRich": "<strong>Blocage du terminal web</strong>",
"whyRich": "Empêche la mise à niveau de fermer le shell qui l’exécute"
},
{
"checkRich": "<strong>Déjà sur 9.x</strong>",
"whyRich": "Avorte si l'hôte exécute déjà PVE 9 (rien à faire)"
},
{
"checkRich": "<strong>Dernière version de PVE 8.4.x</strong>",
"whyRich": "Met d’abord PVE 8 à jour avec son script dédié ; les anciennes versions 8.x ont des prérequis différents"
},
{
"checkRich": "<strong>pve8to9 --full</strong>",
"whyRich": "Contrôle des prérequis fourni par Proxmox ; les erreurs FAIL bloquent la mise à niveau jusqu’à leur correction"
},
{
"checkRich": "<strong>Espace disque</strong>",
"whyRich": "≥ 1024 Mo libres dans <code>/var/cache/apt/archives</code> pour les fichiers .deb téléchargés"
},
{
"checkRich": "<strong>Connectivité</strong>",
"whyRich": "Ping vers <code>download.proxmox.com</code> — en cas d’échec, l’opération ne démarre pas"
},
{
"checkRich": "<strong>Ceph 19.x Squid</strong>",
"whyRich": "Si Ceph est installé, il doit déjà être en 19.x. PVE 9 ne fonctionne pas avec Ceph 17/18. Les options <code>--ignore-ceph-check</code> et <code>--warn-ceph-check</code> contournent le contrôle ; utilisez-les seulement en connaissance de cause."
}
]
},
"distUpgradeHeading": "La commande dist-upgrade (mode automatique)",
"distUpgradeCode": "apt-get -y \\\n -o Dpkg::Options::='--force-confdef' \\\n -o Dpkg::Options::='--force-confold' \\\n dist-upgrade",
"distUpgradeOutro": "La sortie apparaît en temps réel sur stdout et est aussi enregistrée dans <code>/var/log/pve8-a-pve9-&lt;timestamp&gt;.log</code>. Tout reste visible ; seules les questions sont supprimées.",
"postHeading": "Tâches après mise à niveau (mode automatique)",
"postItems": [
"<strong>Hôtes EFI :</strong> installe <code>grub-efi-amd64</code>, conformément au problème connu décrit par Proxmox. La mise à niveau ne l’installe pas automatiquement et il peut être nécessaire au prochain démarrage.",
"<strong>Moment du redémarrage de <code>pve-manager</code>.</strong> Ce redémarrage explicite intervient pendant la préparation de PVE 8, avant la mise à niveau des paquets vers Trixie/PVE 9.",
"<strong>Relance <code>pve8to9 --full</code>.</strong> Signale les problèmes restants. Des erreurs FAIL affichent le même menu de réparation que le contrôle préalable.",
"<strong>Demande de redémarrage.</strong> Il est recommandé de redémarrer pour charger le nouveau noyau et les services. Ne refusez que pour une raison précise : garder l’ancien noyau après un changement de version majeure présente un risque."
]
},
"interactive": {
"heading": "Mode interactif",
"intro": "Même déroulement que le <autolink>mode automatique</autolink> : mêmes contrôles, migration des dépôts et vérification finale. La différence concerne <code>dist-upgrade</code> : <strong>vous répondez vous-même à chaque conflit de configuration signalé par dpkg</strong>. ProxMenux lance <code>apt-get dist-upgrade</code> sans les options <code>--force-conf*</code>.",
"distUpgradeHeading": "La commande dist-upgrade (mode interactif)",
"distUpgradeCode": "apt-get dist-upgrade\n# (user answers each dpkg config-file conflict prompt as it appears)",
"whenHeading": "Quand interactif est le bon choix",
"whenItems": [
"Vous avez personnalisé <code>/etc/lvm/lvm.conf</code>, <code>/etc/ssh/sshd_config</code>, <code>/etc/default/grub</code> ou tout autre fichier de configuration qui est touché par la mise à jour.",
"Vous souhaitez voir les paquets responsables des conflits et décider pour chaque fichier.",
"Vous mettez à niveau un hôte de production où tout changement caché est inacceptable."
],
"promptCalloutTitle": "Que répondre à chaque fois",
"promptCalloutBody": "Les mêmes recommandations que pour la procédure manuelle s’appliquent : voir <dpkglink>Réponses recommandées aux questions de dpkg</dpkglink> ci-dessous. Saisissez <strong>D</strong> pour examiner les différences, ou <strong>Z</strong> pour ouvrir un shell."
},
"manual": {
"heading": "Procédure de mise à niveau manuelle",
"intro": "Voici ce qu’affiche l’option <strong>Guide de mise à niveau manuelle</strong> : le <wikilink>wiki officiel Proxmox de passage de 8 à 9</wikilink>, organisé en quatre phases. Le script <em>affiche</em> les commandes ; vous les exécutez dans un autre shell root. Chaque étape reste visible.",
"rootCalloutTitle": "Toutes les commandes ont besoin de root",
"rootCalloutBody": "Utilisez un shell root pour ces commandes, y compris les redirections et les documents here-document. Avec <code>sudo</code>, assurez-vous que la commande entière bénéficie des privilèges root.",
"phase1Heading": "Phase 1 — Préparation",
"phase1Intro": "Mettez l’hôte à jour vers la dernière PVE 8.4.x, vérifiez la version et Ceph si utilisé, lancez le contrôle Proxmox, puis un multiplexeur de terminal pour résister aux déconnexions.",
"phase1Code": "# Step 1 — Update PVE 8 to the latest 8.4+\napt update && apt dist-upgrade -y\n\n# Step 2 — Verify version (must be 8.4.1 or newer)\npveversion\n\n# Step 2.1 — Hyper-converged Ceph: must already be on 19.x Squid\nceph --version\n# If older, follow https://pve.proxmox.com/wiki/Ceph_Reef_to_Squid\n\n# Step 3 — Run the official upgrade-readiness check\npve8to9 --full\n# If it warns about systemd-boot meta-package, remove it:\n# apt remove systemd-boot\n\n# Step 4 — Start tmux or screen (so SSH disconnect doesn't kill the upgrade)\ntmux new-session -s upgrade\n# or\nscreen -S upgrade",
"phase2Heading": "Phase 2 — Migration des dépôts",
"phase2Intro": "Remplacez Bookworm par Trixie dans tous les dépôts Debian et Proxmox, puis convertissez les sources Proxmox au format deb822. <strong>Choisissez l’étape 7 OU 8</strong> selon votre abonnement Enterprise. Ignorez l’étape 9 sans Ceph.",
"phase2Code": "# Step 5 — Debian: bookworm → trixie\nsed -i 's/bookworm/trixie/g' /etc/apt/sources.list\n\n# Step 6 — Same for the legacy enterprise list (only if you use enterprise)\nsed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list\n\n# Step 7 — Add the new PVE 9 enterprise repo (deb822) — Enterprise users only\ncat > /etc/apt/sources.list.d/pve-enterprise.sources << EOF\nTypes: deb\nURIs: https://enterprise.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-enterprise\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg\nEOF\n\n# Step 8 — OR add the no-subscription repo (most home / lab users)\ncat > /etc/apt/sources.list.d/proxmox.sources << EOF\nTypes: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg\nEOF\n\n# Step 8.1 — Refresh and verify proxmox-ve candidate is 9.x\napt update && apt policy | sed -n '1,120p'\n\n# Step 9 — Update Ceph repo (only if you run Ceph)\ncat > /etc/apt/sources.list.d/ceph.sources << EOF\nTypes: deb\nURIs: http://download.proxmox.com/debian/ceph-squid\nSuites: trixie\nComponents: no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg\nEOF\n\n# Step 10 — Remove old .list files now superseded by deb822 .sources\nrm -f /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/ceph.list\n\n# Step 11 — Final apt update\napt update",
"phase3Heading": "Phase 3 — Le dist-upgrade",
"phase3Intro": "La mise à niveau elle-même. L’étape 12, facultative mais recommandée, réduit les messages d’audit. L’étape 13 est longue : répondez aux questions de dpkg avec le tableau ci-dessous. L’étape 13.1 concerne uniquement EFI et suit les problèmes connus officiels.",
"phase3Code": "# Step 12 — Disable kernel audit messages (optional)\nsystemctl disable --now systemd-journald-audit.socket\n\n# Step 13 — The main upgrade (this takes a while)\napt dist-upgrade\n# (answer prompts using the table below)\n\n# Step 13.1 — EFI hosts: install grub for EFI (per known issues)\n[ -d /sys/firmware/efi ] && apt install grub-efi-amd64",
"dpkgHeading": "Réponses recommandées pour les invites dpkg",
"dpkgIntro": "Réponses préconisées par Proxmox : <strong>Y</strong> installe le nouveau fichier du responsable du paquet et remplace le vôtre ; <strong>N</strong> conserve votre fichier. En cas de doute, examinez d’abord les différences :",
"dpkgTable": {
"fileHeader": "Fichier / invite",
"answerHeader": "Réponse recommandée",
"whyHeader": "Pourquoi",
"rows": [
{
"fileRich": "/etc/issue",
"answerRich": "<strong>N</strong> (conserver le fichier actuel)",
"whyRich": "Bannière que vous voyez habituellement",
"fileFont": true
},
{
"fileRich": "/etc/lvm/lvm.conf",
"answerRich": "<strong>Y</strong> (version du responsable du paquet)",
"whyRich": "PVE 9 a besoin des nouvelles valeurs LVM par défaut",
"fileFont": true
},
{
"fileRich": "/etc/ssh/sshd_config",
"answerRich": "<strong>Y</strong> pour les seuls changements par défaut ; examinez les fichiers personnalisés",
"whyRich": "Vérifiez les réglages SSH locaux et préservez l’accès avant de remplacer le fichier. Les changements par défaut incluent des options renommées et des commentaires.",
"fileFont": true
},
{
"fileRich": "/etc/default/grub",
"answerRich": "<strong>N</strong> si personnalisé",
"whyRich": "Contient les paramètres de démarrage, notamment IOMMU et le passthrough PCI",
"fileFont": true
},
{
"fileRich": "/etc/chrony/chrony.conf",
"answerRich": "<strong>Y</strong> si non modifié ; préservez d’abord vos réglages locaux",
"whyRich": "Trixie actualise les réglages de synchronisation horaire. Déplacez les réglages locaux dans conf.d / sources.d de chrony avant d’accepter le nouveau fichier.",
"fileFont": true
},
{
"fileRich": "Redémarrages de services pendant la mise à niveau",
"answerRich": "<strong>Oui</strong> (par défaut)",
"whyRich": "Relance la plupart des services sans redémarrer l’hôte",
"fileFont": false
},
{
"fileRich": "<code>apt-listchanges</code>",
"answerRich": "Appuyez sur <kbd>q</kbd>",
"whyRich": "Quitte uniquement le pager ; les informations affichées résument le journal des modifications",
"fileFont": false
}
]
},
"inspectCalloutTitle": "Inspection d'un conflit dpkg spécifique",
"inspectCalloutBody": "À une question de dpkg sur un fichier de configuration, saisissez <strong>D</strong> pour comparer les versions ou <strong>Z</strong> pour ouvrir un shell et examiner le problème. Cela permet de décider plutôt que de deviner.",
"phase4Heading": "Phase 4 — après la mise à niveau",
"phase4Intro": "Vérifiez la réussite de la mise à niveau, redémarrez sur le noyau PVE 9 et confirmez la version. Vous pouvez ensuite convertir les anciens fichiers <code>.list</code> restants au format deb822.",
"phase4Code": "# Step 14 — Re-run the readiness check (should be much cleaner now)\npve8to9 --full\n\n# Step 15 — Reboot to load the new kernel and PVE 9 daemons\nreboot\n\n# Step 16 — After reboot, confirm PVE 9.x\npveversion\n# Should show pve-manager/9.x.x\n\n# Step 17 — Optional: modernise the remaining legacy .list files to deb822\napt modernize-sources\n# (keeps .list backups as .bak)"
},
"clusterCeph": {
"heading": "Cluster & Ceph",
"clusterCalloutTitle": "Cluster: mise à niveau des nœuds un à la fois",
"clusterCalloutBody": "Détecté par <code>pvecm status</code>. <strong>Ne mettez pas</strong> plusieurs nœuds à niveau simultanément. Déplacez les invités, mettez le nœud à niveau, redémarrez et vérifiez son appartenance au cluster avant de continuer. Pendant l’opération, la migration à chaud d’une ancienne version de PVE vers une plus récente fonctionne ; le sens inverse n’est généralement pas pris en charge. Les groupes HA deviennent automatiquement des règles HA lorsque tous les nœuds utilisent PVE 9.",
"cephCalloutTitle": "Ceph : mettre Ceph à niveau D’ABORD, puis Proxmox",
"cephCalloutBody": "Ceph doit déjà utiliser 19.x Squid avant la mise à niveau Proxmox. Suivez l’ordre officiel Quincy 17 → Reef 18 → Squid 19, avec mise à jour des paquets et redémarrages échelonnés des démons Ceph dans l’ordre documenté. Vérifiez <code>ceph --version</code> avant chaque nœud Proxmox. Procédure complète : <cephlink>wiki de passage de Ceph Reef à Squid</cephlink>."
},
"troubleshooting": {
"heading": "Dépannage",
"items": [
{
"title": "Le script s’arrête : \"This script cannot be executed from the Proxmox web terminal\"",
"bodyRich": "Utilisez une connexion SSH ou une console / IPMI / iKVM, puis relancez le script. Lancez d’abord <code>tmux new -s pveupgrade</code> pour résister aux courtes coupures réseau."
},
{
"title": "pve8to9 signale FAIL et l’option 1 de réparation produit \"command not found\"",
"bodyRich": "Si l’erreur mentionne <code>configure_repositories</code>, la copie du script est ancienne : la réparation actuelle utilise cleanup_duplicate_repos et ensure_repositories. Actualisez-la ou examinez les commandes manuelles avec l’option 2. <code>apt-get update</code> actualise les listes de paquets sans résoudre tous les contrôles bloquants."
},
{
"title": "La simulation apt signale \"proxmox-ve will be REMOVED\"",
"bodyRich": "Les nouveaux dépôts sont inaccessibles ou le nom de version n’a pas changé. Vérifiez <code>cat /etc/apt/sources.list.d/proxmox.sources</code> : la ligne <code>Suites:</code> doit contenir <code>trixie</code>, et non <code>bookworm</code>. <code>apt-cache policy proxmox-ve</code> doit proposer une version 9.x du nouveau dépôt."
},
{
"title": "dist-upgrade échoue en cours d’exécution",
"bodyRich": "Exécutez <code>apt-get -f install</code> pour résoudre les dépendances cassées, puis réexécutez la mise à jour. Si cela échoue, vérifiez le journal à <code>/var/log/pve8-a-pve9-&lt;timestamp&gt;.log</code> — les dernières lignes indiquent habituellement le paquet offensif. Ne redémarrez pas avant que <code>dpkg -l | grep ^iU</code> ne retourne vide (pas de paquets semi-installés)."
},
{
"title": "L'hôte EFI ne démarre pas après le redémarrage",
"bodyRich": "L’installation de <code>grub-efi-amd64</code> après la mise à niveau traite ce problème. Si elle a été omise ou a échoué, démarrez sur l’ISO Proxmox en mode secours, montez la racine, utilisez chroot et lancez <code>apt-get install grub-efi-amd64 &amp;&amp; update-grub</code>."
},
{
"title": "GUI ne se charge pas après la mise à niveau",
"bodyRich": "Exécutez <code>systemctl status pveproxy</code> et <code>systemctl restart pveproxy</code>. Si le problème persiste, cherchez l’erreur dans <code>journalctl -u pveproxy -b</code>."
},
{
"title": "Le réseau ne fonctionne pas après le redémarrage",
"bodyRich": "Vérifiez que <code>/etc/network/interfaces</code> référence des périphériques existants et que <code>ifupdown2</code> est installé : <code>apt install ifupdown2</code>. Si les noms ont changé, voir <netlink>Noms d’interfaces persistants</netlink>."
},
{
"title": "Split-brain du cluster après la mise à niveau d’un nœud",
"bodyRich": "Les clusters mixtes PVE 8 / PVE 9 sont pris en charge pendant la mise à niveau. La migration à chaud d’une ancienne version vers une plus récente fonctionne ; le sens inverse n’est généralement pas pris en charge. Si un nœud apparaît hors ligne, vérifiez <code>corosync</code> et la configuration QDevice / réseau. Exécutez <code>pvecm status</code> sur chaque nœud pour confirmer le quorum."
}
]
},
"files": {
"heading": "Fichiers concernés",
"code": "scripts/utilities/upgrade_pve8_to_pve9.sh # main upgrade orchestrator\nscripts/utilities/pve8to9_check.sh # pre-check (separate menu option)\nscripts/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh # 17-step runbook\nscripts/global/update-pve8.sh # PVE 8 worker (final patches)\n/etc/apt/sources.list # bookworm → trixie sed\n/etc/apt/sources.list.d/proxmox.sources # created (deb822 PVE 9)\n/etc/apt/sources.list.d/debian.sources # created (deb822 trixie)\n/etc/apt/sources.list.d/ceph.sources # created if Ceph\n/etc/apt/sources.list.d/*.list # legacy files commented out / removed\n/var/log/pve8-a-pve9-'<'timestamp'>'.log # full upgrade log"
},
"references": {
"heading": "Références officielles",
"intro": "La procédure manuelle du script suit ces sources officielles. En cas de doute pendant une mise à niveau, suivez le wiki officiel : ProxMenux facilite l’exécution, Proxmox fait référence.",
"items": [
{
"href": "https://pve.proxmox.com/wiki/Upgrade_from_8_to_9",
"title": "Mise à niveau de 8 à 9",
"desc": "La page wiki Proxmox principale pour la mise à jour 8 → 9. Source de vérité pour chaque commande dans la procédure manuelle ci-dessus."
},
{
"href": "https://pve.proxmox.com/wiki/Ceph_Reef_to_Squid",
"title": "Mise à niveau vers Ceph Squid (19.x)",
"desc": "Étape préalable obligatoire pour les nœuds Ceph hyperconvergés. Ceph doit être en 19.x Squid avant PVE 9."
},
{
"href": "https://pve.proxmox.com/wiki/Roadmap",
"title": "Feuille de route Proxmox VE",
"desc": "Notes de version PVE 9 et changements depuis 8.x : à lire avant la mise à niveau."
},
{
"href": "https://www.debian.org/releases/trixie/releasenotes",
"title": "Notes de publication de Debian Trixie",
"desc": "PVE 9 repose sur Debian Trixie. Consultez les notes Debian pour les changements du système d’exploitation qui concernent aussi votre hôte."
},
{
"href": "https://forum.proxmox.com/forums/proxmox-ve-installation-and-configuration.16/",
"title": "Forum d'installation Proxmox VE",
"desc": "En cas de problème pendant la mise à niveau, cherchez d’abord dans ce forum : le même cas a peut-être déjà été rencontré."
},
{
"href": "https://pve.proxmox.com/wiki/Backup_and_Restore",
"title": "Sauvegarde et restauration",
"desc": "Une mise à jour en version majeure n'est pas réversible. Vérifiez votre discipline de sauvegarde avant de commencer."
}
]
},
"video": {
"heading": "Visite vidéo",
"intro": "Vous préférez regarder la mise à jour de bout en bout avant de le faire vous-même ? Ce parcours démontre le flux de mise à niveau ProxMenux en temps réel.",
"title": "ProxMenux — Mise à niveau de Proxmox VE 8 à 9",
"caption": "Vidéo externe YouTube. Lecture en mode de confidentialité avancée ; aucun cookie avant de lancer la lecture."
},
"related": {
"heading": "Voir aussi",
"items": [
{
"href": "/docs/utils/system-update",
"label": "Mise à jour du système Proxmox",
"tail": " — pour les mises à jour ordinaires au sein d’une même version majeure (8.4.1 → 8.4.5, etc.)."
},
{
"href": "/docs/utils",
"label": "Présentation des utilitaires",
"tail": " — retour à la présentation de la section."
}
]
}
}
@@ -0,0 +1,161 @@
{
"meta": {
"title": "Créateur d’ISO UUP Dump | Documentation ProxMenux",
"description": "Créez une ISO d’installation de Windows à jour sur l’hôte Proxmox avec le créateur d’ISO UUP Dump de ProxMenux. Il automatise l’installation des dépendances, le téléchargement et la conversion des fichiers UUP en ISO amorçable pour créer une VM.",
"ogTitle": "Créateur d’ISO UUP Dump | Documentation ProxMenux",
"ogDescription": "Créez une ISO Windows à jour avec UUP Dump et ProxMenux. Dépendances, téléchargement et conversion entièrement automatisés.",
"ogImageAlt": "ProxMenux — Créateur d’ISO UUP Dump"
},
"header": {
"title": "Créateur d’ISO UUP Dump",
"description": "Créez une ISO d’installation de Windows à jour sur l’hôte Proxmox avec UUP Dump. ProxMenux gère les dépendances, télécharge les fichiers UUP en parallèle, exécute le convertisseur UUP Dump et déplace l’ISO vers le répertoire de sortie choisi. Par défaut, il s’agit du stockage ISO Proxmox détecté.",
"section": "Utilitaires"
},
"intro": {
"title": "Ce que ce script fait",
"body": "Fournissez l’URL générée par uupdump.net après le choix de la version, de la langue et de l’édition. Le script installe les dépendances manquantes, télécharge le convertisseur UUP Dump et les fichiers UUP, crée une ISO Windows amorçable et la déplace vers le répertoire de sortie choisi. Le stockage ISO Proxmox détecté est proposé par défaut."
},
"hero": {
"imageAlt": "UUP Dump ISO Creator entrée dans ProxMenux",
"caption": "UUP Dump ISO Creator entrée dans ProxMenux"
},
"what": {
"heading": "Qu'est-ce que UUP Dump?",
"intro": "UUP Dump est un service communautaire qui permet de télécharger les fichiers bruts de la plateforme Unified Update Platform (UUP), utilisés par Windows Update pour distribuer Windows. Ces fichiers peuvent être assemblés en une ISO amorçable standard. Vous pouvez ainsi obtenir :",
"items": [
"La toute dernière version de Windows (y compris les canaux Insider Preview).",
"Une version précise plus ancienne qui n’apparaît plus sur la page de téléchargement Microsoft.",
"Des fichiers intacts et non modifiés, provenant directement des serveurs Microsoft.",
"La combinaison exacte d'éditions et de langues que vous voulez en une seule ISO."
],
"learnMore": "En savoir plus sur la page de projet <extlink>UUP Dump</extlink>."
},
"automates": {
"heading": "Ce que le script automatise"
},
"dependencies": {
"heading": "Dépendances",
"intro": "La première chose que le script fait est de vérifier les outils nécessaires pour télécharger les charges utiles UUP et assembler l'ISO. Tous ceux qui manquent sont installés avec <code>apt-get</code>:",
"headerPackage": "Paquet",
"headerRole": "Rôle",
"rows": [
{
"pkg": "curl",
"roleRich": "Téléchargements HTTP pour initialiser le convertisseur."
},
{
"pkg": "aria2",
"roleRich": "Téléchargeur parallèle utilisé pour chaque charge utile UUP."
},
{
"pkg": "cabextract",
"roleRich": "Extrait les paquets Microsoft CAB."
},
{
"pkg": "wimtools",
"roleRich": "Construit <code>install.wim</code> (wimlib-imagex)."
},
{
"pkg": "genisoimage",
"roleRich": "Écrit l’ISO amorçable finale (ou <code>mkisofs</code>)."
},
{
"pkg": "chntpw",
"roleRich": "Modifie les ruches du registre Windows pendant la création."
}
],
"manualIntro": "Équivalent manuel — si vous avez besoin de les installer vous-même:",
"manualCode": "apt-get install curl aria2 cabextract wimtools genisoimage chntpw"
},
"flow": {
"heading": "Téléchargement et conversion",
"steps": [
"Détecte le stockage ISO Proxmox via <code>pvesm status -content iso</code>, ou utilise <code>/var/lib/vz/template/iso</code> en repli.",
"Demande un dossier de base pour les fichiers temporaires (<code>/root/uup-temp</code> par défaut).",
"Téléchargez le convertisseur UUP Dump de <code>git.uupdump.net</code>.",
"Extrait <code>id</code>, <code>pack</code> et <code>edition</code> de l’URL collée.",
"Appelle <code>https://uupdump.net/get.php?…&aria2=2</code> pour générer une liste de téléchargement aria2.",
"Télécharge tous les fichiers UUP dans <code>UUPs/</code> avec aria2, en parallèle et avec reprise possible.",
"Exécute <code>convert.sh wim UUPs 1</code> à partir du convertisseur pour produire l'ISO finale.",
"Déplace l’ISO vers le répertoire de sortie choisi et nettoie les fichiers temporaires."
]
},
"aria2": {
"heading": "Options de téléchargement aria2 utilisées",
"code": "aria2c --no-conf --console-log-level=warn --log-level=info \\\n --log=aria2_download.log \\\n -x16 -s16 -j5 -c -R \\\n -d\"$destDir\" -i\"$tempScript\"",
"flags": [
"<code>-x16</code> — jusqu'à 16 connexions par serveur.",
"<code>-s16</code> — divise chaque fichier en 16 segments.",
"<code>-j5</code> — télécharge 5 fichiers en parallèle.",
"<code>-c</code> — reprend les téléchargements partiels.",
"<code>-R</code> — applique au fichier téléchargé l’horodatage du fichier distant, s’il est disponible."
],
"runtime": "La durée habituelle est d’environ 10 minutes et dépend surtout du débit Internet et de la charge des serveurs de téléchargement UUP Dump."
},
"step1": {
"heading": "Étape 1 · Obtenez une URL UUP Dump",
"intro": "Avant d'exécuter le script, vous avez besoin d'une URL UUP Dump qui inclut les paramètres de requête <code>id</code>, <code>pack</code> et <code>edition</code>. Générer sur <extlink>uupdump.net</extlink>:",
"stepBadge": "Étape",
"items": [
{
"title": "Choisissez une version Windows",
"img": "/iso-creator/step-1-select-version-windows.png",
"caption": "UUP Dump page principale — choisissez une version Windows",
"body": "Ouvrez la page d'accueil UUP Dump et choisissez la version Windows que vous voulez."
},
{
"title": "Choisissez une version précise",
"img": "/iso-creator/step-2-select-version-windows.png",
"caption": "Choisissez une version précise",
"body": "Choisissez la version : la plus récente, un canal Insider Preview ou une version plus ancienne encore répertoriée."
},
{
"title": "Choisir une langue",
"img": "/iso-creator/step-3-select-version-windows.png",
"caption": "Choisir une langue",
"body": "Choisissez la langue à inclure dans l’ISO."
},
{
"title": "Choisir les éditions",
"img": "/iso-creator/step-4-select-version-windows.png",
"caption": "Choisissez les éditions à inclure",
"body": "Choisissez les éditions à regrouper dans l'ISO (Home, Pro, Enterprise, ...). Vous pouvez en combiner plusieurs."
},
{
"title": "Copier l'URL",
"img": "/iso-creator/step-5-select-version-windows.png",
"caption": "Copier l'URL de la barre d'adresses",
"bodyRich": "Sur la dernière page, copiez l’URL <em>depuis la barre d’adresse du navigateur</em>. Elle doit contenir <code>id=…</code>, <code>pack=…</code> et <code>edition=…</code>. C’est cette chaîne que le script analyse."
}
]
},
"step2": {
"heading": "Étape 2 · Exécuter le créateur",
"intro": "Avec l'URL en main, ouvrez ProxMenux et lancez le créateur :",
"stepBadge": "Étape",
"items": [
{
"title": "Démarrer UUP Dump ISO Creator",
"img": "/iso-creator/start-uupdump-iso-creator.png",
"caption": "Démarrer UUP Dump ISO Creator à partir de ProxMenux",
"bodyRich": "Dans ProxMenux, ouvrez <strong>Utilities → UUP Dump ISO Creator</strong>. Le script vérifie les dépendances et le répertoire ISO avant de demander les informations."
},
{
"title": "Coller l'URL UUP Dump",
"img": "/iso-creator/add-url-iso-creator.png",
"caption": "Coller l'URL que vous avez copiée depuis uupdump.net",
"body": "Collez l’URL dans le champ de saisie. Le script vérifie la présence des trois paramètres requis et s’arrête proprement s’il en manque un."
},
{
"title": "Attendez la fin de la création",
"img": "/iso-creator/end-uupdump-iso-creator.png",
"caption": "Création terminée : l’ISO est prête dans le stockage ISO Proxmox",
"bodyRich": "La console affiche la progression aria2 puis la sortie du convertisseur. L’ISO terminée est déplacée vers le répertoire de sortie choisi. Si elle se trouve dans un stockage ISO Proxmox configuré, vous pouvez la sélectionner dans <strong>Create VM → System Windows → Install with ISO from UUP Dump</strong>."
}
]
},
"tempFiles": {
"title": "Fichiers temporaires",
"body": "Le dossier temporaire par défaut est <code>/root/uup-temp</code>, avec les téléchargements dans <code>UUPs/</code> et le convertisseur dans <code>converter/</code>. Un chemin de base personnalisé reçoit un sous-dossier de session distinct. Les branches de création réussie et d’absence d’ISO générée suppriment la session temporaire. Une erreur ou une annulation plus tôt peut laisser des fichiers temporaires."
}
}