Actualités¶
Incus 6.22 est maintenant disponible¶
27 févr. 2026
Introduction¶
L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.22 !
Cette nouvelle version est assez dense, avec de nombreux changements aux quatre coins du projet, ainsi qu’un grand nombre de corrections de bugs. Tout le monde devrait y trouver son compte !
Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/
Nouvelles fonctionnalités¶
Support de VSOCK dans l’agent Windows¶
Lorsque nous avons ajouté le support de l’agent Incus pour les VM Windows, le driver Windows pour VirtIO VSOCK n’était toujours pas signé par Microsoft et le support dans Go pour VSOCK sur les systèmes Windows était absent.
Ces deux limitations étant à présent levées, nous utilisons désormais VSOCK au lieu de TCP pour le transport des données de l’agent Windows. Le comportement est ainsi similaire à celui des systèmes Linux, permettant d’interagir avec l’agent même lorsqu’Incus ne connaît pas l’adresse IP de la VM ou n’a pas la permission de s’y connecter.
stgraber@castiana:~ (incus:dev-cluster01/default)$ incus list Windows
+-------------+---------+---------------------------+-------------------------------------------------------------------------+-----------------+-----------+----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | LOCATION |
+-------------+---------+---------------------------+-------------------------------------------------------------------------+-----------------+-----------+----------+
| Windows2016 | RUNNING | 172.17.45.252 (Ethernet0) | 2602:fc62:c:1045:992a:86ac:bed4:7643 (Ethernet0) | VIRTUAL-MACHINE | 0 | incus03 |
| | | | 2001:0:14c9:dc0e:c7f:1835:53ee:d203 (Teredo Tunneling Pseudo-Interface) | | | |
+-------------+---------+---------------------------+-------------------------------------------------------------------------+-----------------+-----------+----------+
| Windows2025 | RUNNING | 172.17.45.215 (Ethernet0) | 2602:fc62:c:1045:db35:1adc:89f5:5e9e (Ethernet0) | VIRTUAL-MACHINE | 0 | incus03 |
+-------------+---------+---------------------------+-------------------------------------------------------------------------+-----------------+-----------+----------+
stgraber@castiana:~ (incus:dev-cluster01/default)$ incus info Windows2025
Name: Windows2025
Description: Auto-imported from VMware
Status: RUNNING
Type: virtual-machine
Architecture: x86_64
Location: incus03
PID: 2658
Created: 2026/02/25 01:36 EST
Last Used: 2026/02/26 16:36 EST
Started: 2026/02/26 16:36 EST
Operating System:
OS: Windows Server 2025 Datacenter Evaluation
OS Version: 26100
Kernel Version: 6.3
Hostname: WIN-QVHTSU4SGJK
FQDN: WIN-QVHTSU4SGJK
Resources:
Processes: 87
CPU usage:
CPU usage (in seconds): 57366
Memory usage:
Memory (current): 1.58GiB
Network usage:
Ethernet0:
Type: broadcast
State: UP
Host interface: Ethernet0
MAC address: 00:50:56:a9:12:b0
MTU: 1500
Bytes received: 14.34MB
Bytes sent: 3.48MB
Packets received: 13036
Packets sent: 8992
IP addresses:
inet6: 2602:fc62:c:1045:db35:1adc:89f5:5e9e/64 (global)
inet6: fe80::78a1:5e60:236:58a2/64 (link)
inet: 172.17.45.215/24 (global)
Loopback Pseudo-Interface 1:
Type: loopback
State: UP
Host interface: Loopback Pseudo-Interface 1
MTU: -1
Bytes received: 0B
Bytes sent: 0B
Packets received: 0
Packets sent: 0
IP addresses:
inet6: ::1/128 (local)
inet: 127.0.0.1/8 (local)
NOTE : Pour que le nouvel agent fonctionne correctement, vous devez vous assurer que les drivers VirtIO VSOCK sont installés sur l’instance Windows, de même que le service correspondant. Dans la plupart des cas, cela demande de trouver le bon driver VSOCK dans l’ISO contenant les drivers VirtIO, faire un clic droit sur le fichier .inf, et l’installer (pour le moment, l’installateur VirtIO ne semble pas le faire).
Récupération directe de sauvegardes¶
Incus embarque une API de sauvegarde, permettant la création de sauvegardes d’instances et de volumes de stockage personnalisés. Cette API a pour but d’être intégrée dans des systèmes automatisés de sauvegarde.
Côté utilisateur, ce mécanisme est utilisé dans incus export et incus storage volume export. Dans les deux cas, ces commandes créaient une sauvegarde côté serveur, la téléchargeaient, et la supprimaient ensuite.
La situation n’était pas idéale, dans la mesure où les données étaient stockées sur disque dans le seul but d’être téléchargées et supprimées tout de suite après. Incus 6.22 permet désormais de streamer de bout en bout les sauvegardes du client au serveur.
stgraber@dakara:~$ incus launch images:alpine/edge a1
Launching a1
stgraber@dakara:~$ incus export a1
Backup exported successfully!
stgraber@dakara:~$ ls -lh a1.tar.gz
-rw-rw-r-- 1 stgraber stgraber 4.0M Feb 27 10:43 a1.tar.gz
Restauration des données seules depuis des instantanés¶
Les instantanés dans Incus capturent bien plus d’informations que le seul état du disque (configuration de l’instance, et, lorsque demandé, état de fonctionnement de celle-ci). Cependant, un cas d’usage fréquent est de ne souhaiter restaurer que les données du disque et rien de plus, ce qui est désormais supporté.
stgraber@dakara:~$ incus snapshot restore a1 snap0 --diskonly
Volume de stockage dédié aux journaux serveur¶
Les journaux d’Incus peuvent grossir avec le temps, en particulier sur des systèmes comportant des centaines ou des milliers de VM. Incus dispose d’un mécanisme de rotation des journaux pour rester maître de la situation, mais ceux-ci peuvent toutefois prendre plusieurs Go de stockage.
Une nouvelle clef de configuration, storage.logs_volume, permet de stocker les journaux d’Incus sur un volume de stockage personnalisé dédié, comme c’était le cas pour les images et les sauvegardes.
stgraber@dakara:~$ incus storage volume create default logs
Storage volume logs created
stgraber@dakara:~$ incus config set storage.logs_volume default/logs
Error: Failed validation of "storage.logs_volume": `storage.logs_volume` cannot be changed if there are running instances
stgraber@dakara:~$ incus stop --all
stgraber@dakara:~$ incus config set storage.logs_volume default/logs
stgraber@dakara:~$ incus start --all
Documentation : https://linuxcontainers.org/incus/docs/main/server_config/#miscellaneous-options
Améliorations dans le stockage QCOW2¶
Pour rappel, Incus utilise QCOW2 pour la prise d’instantanés des volumes de stockage en bloc sur lvmcluster. Incus peut à présent créer et gérer ces instantanés pour des instances, avec un support complet des instances en fonctionnement et de la migration à chaud.
Les volumes de stockage personnalisés en bloc utilisent désormais également QCOW2 par défaut, avec un support pour la prise d’instantanés. D’autres fonctionnalités cependant (prise d’instantanés des volumes attachés à des VM en fonctionnement) arriveront avec Incus 6.23.
Redimensionnement de pools de stockage lvmcluster¶
Les clusters Incus partageant du stockage en bloc avec le driver lvmcluster peuvent désormais redimensionner les périphériques en bloc sous-jacents, permettant à Incus d’accroître la capacité du stockage LVM qui s’y trouve.
Il est possible de définir la propriété size sur un pool lvmcluster à la valeur de sa nouvelle taille souhaitée, ou à max, pour accroître sa taille à la taille maximale disponible sur le stockage sous-jacent.
Documentation : https://linuxcontainers.org/incus/docs/main/reference/storage_lvm/
Suppression automatique d’instantanés à la restauration avec lvmcluster¶
Toujours avec lvmcluster, le driver a une restriction commune à de nombreux autres backends de stockage, à savoir le fait qu’il est uniquement possible de restaurer le dernier instantané (demandant ainsi la suppression de tous les instantanés plus récents que celui que nous souhaitons restaurer).
Nous avons donc rajouté une clef de configuration lvmcluster.remove_snapshots pour supprimer automatiquement les instantanés intermédiaires durant la restauration.
Documentation : https://linuxcontainers.org/incus/docs/main/reference/storage_lvm/
Passthrough de contrôleurs USB entiers¶
Le périphérique unix-hotplug a été étendu avec une nouvelle clef de configuration pci, permettant de sélectionner un contrôleur USB particulier, rajoutant dynamiquement à une instance tous les périphériques s’y connectant.
stgraber@dakara:~$ incus launch images:debian/13 c1
Launching c1
stgraber@dakara:~$ incus config device add c1 usb-controller unix-hotplug pci=0000:24:00.0
Device usb-controller added to c1
stgraber@dakara:~$ incus exec c1 bash
root@c1:~# find /dev/bus
/dev/bus
/dev/bus/usb
/dev/bus/usb/005
/dev/bus/usb/005/023
Documentation : https://linuxcontainers.org/incus/docs/main/reference/devices_unix_hotplug/
Accès aux certificats TLS depuis le scriptlet d’autorisation¶
Dans les environnements où une intégration à OpenID Connect et OpenFGA n’est pas pratique, Incus supporte un mécanisme d’autorisation plus simple au travers d’un scriptlet.
Il s’agit d’un script dans un langage similaire à Python, qui est exécuté dans Incus à chaque fois qu’un accès doit être validé pour une opération donnée. L’implémentation initiale exposait au scriptlet l’empreinte du certificat TLS ainsi que l’opération et l’objet concerné.
Désormais, toutes les informations dont Incus dispose au sujet du certificat sont également exposées au scriptlet.
Cela permet d’implémenter des politiques d’accès plus complexes, reposant sur des propriétés du certificat, comme son nom ou les restrictions qui lui sont appliquées dans Incus.
Documentation : https://linuxcontainers.org/incus/docs/main/authorization/#scriptlet-authorization
Redémarrage rapide des VM¶
Incus prend en charge un grand nombre de fonctionnalités et d’intégrations avec les VM, lesquelles requièrent parfois une configuration assez poussée de l’hôte en-dehors de QEMU.
Pour cette raison, Incus a toujours redémarré complètement QEMU à chaque redémarrage des VM, afin de pouvoir démarrer dans un état sain.
Bien que cela garantisse la sûreté des opérations, le redémarrage de QEMU entraîne une déconnexion de la console et un délai. Pour améliorer cette situation, Incus surveille désormais si un redémarrage complet est souhaitable (par exemple, à la suite d’une opération de hotplug), et le cas échéant uniquement, redémarre QEMU. Dans les autres cas, le redémarrage des VM s’effectue de manière beaucoup plus rapide et sans déconnexion de la console.
Restrictions sur les URL des serveurs d’images dans les projets¶
Les personnes administrant des clusters Incus avec des projets restreints peuvent vouloir limiter les domaines depuis lesquels leurs utilisateurs peuvent télécharger des images.
Nous avons ajouté une nouvelle clef de configuration pour les projets, restricted.images.servers, à cet effet. Elle prend une liste de domaines depuis lesquels les téléchargements d’images sont autorisés. Les requêtes vers les autres serveurs seront rejetées.
Enfin, les projets restreints ne peuvent dorénavant plus faire de migration en mode pull, uniquement en mode push.
stgraber@dakara:~$ incus project set foo restricted=true restricted.images.servers=example.net
stgraber@dakara:~$ incus launch images:alpine/edge a1
Launching a1
Error: Failed instance creation: Image server "images.linuxcontainers.org" isn't allowed in this project
stgraber@dakara:~$ incus project set foo restricted=true restricted.images.servers=images.linuxcontainers.org
stgraber@dakara:~$ incus launch images:alpine/edge a1
Launching a1
Documentation : https://linuxcontainers.org/incus/docs/main/reference/projects/
Import d’URL dans incus-migrate¶
incus-migrate est notre outil de migration prenant en charge de nombreux scénarios, allant de la migration de machines physiques vers Incus à l’import d’images de VM et de conteneurs externes.
L’outil a été mis à jour pour permettre l’import direct d’images via des URL, rendant trivial l’import d’images QCOW2 ou VMDK depuis le web.
stgraber@dakara:~$ incus-migrate
The local Incus server is the target [default=yes]:
What would you like to create?
1) Container
2) Virtual Machine
3) Virtual Machine (from .ova)
4) Custom Volume
Please enter the number of your choice: 2
Project to create the instance in [default=default]:
Name of the new instance: talos
Please provide the path or URL to a disk, partition, or qcow2/raw/vmdk image file: https://factory.talos.dev/image/9ed5fecdacb36b5c5427b87d409f1065cfb2df69b0f71c58b868d9d466d8dab3/v1.12.4/metal-amd64.qcow2
Downloading "https://factory.talos.dev/image/9ed5fecdacb36b5c5427b87d409f1065cfb2df69b0f71c58b868d9d466d8dab3/v1.12.4/metal-amd64.qcow2"
Does the VM support UEFI booting? [default=yes]:
Does the VM support UEFI Secure Boot? [default=yes]: no
Instance to be created:
Name: talos
Project: default
Type: virtual-machine
Source: /tmp/3948685006
Source format: qcow2
Config:
security.secureboot: "false"
Additional overrides can be applied at this stage:
1) Begin the migration with the above configuration
2) Override profile list
3) Set additional configuration options
4) Change instance storage pool or volume size
5) Change instance network
6) Add additional disk
7) Change additional disk storage pool
Please pick one of the options above [default=1]: 4
Please provide the storage pool to use: default
Do you want to change the storage size? [default=no]: yes
Please specify the storage size: 50GiB
Instance to be created:
Name: talos
Project: default
Type: virtual-machine
Source: /tmp/3948685006
Source format: qcow2
Storage pool: default
Storage pool size: 50GiB
Config:
security.secureboot: "false"
Additional overrides can be applied at this stage:
1) Begin the migration with the above configuration
2) Override profile list
3) Set additional configuration options
4) Change instance storage pool or volume size
5) Change instance network
6) Add additional disk
7) Change additional disk storage pool
Please pick one of the options above [default=1]: 1
Converting image "/tmp/3948685006" to raw format before importing
Instance talos successfully created
stgraber@dakara:~$ incus start talos
Documentation : https://linuxcontainers.org/incus/docs/main/howto/import_machines_to_instances/
Certificats multidomaines via ACME¶
Incus supporte l’utilisation d’ACME/Let’s Encrypt pour obtenir des certificats HTTPS.
Jusqu’à présent, nous étions limités à des certificats portant sur des hôtes uniques, mais supportons désormais l’utilisation de plusieurs domaines séparés par des virgules dans la clef de configuration acme.domain.
stgraber@dakara:~ (incus:dev-cluster01/default)$ incus config set acme.domain=cluster01.dev.stgraber.org,foo.dev.stgraber.org
Documentation : https://linuxcontainers.org/incus/docs/main/server_config/#server-options-acme
Contrôle de la propriété trusted pour les cartes réseau SR-IOV¶
L’usage des cartes réseau SR-IOV dans Incus se faisait jusqu’à présent dans le mode untrusted, empêchant de changer leur adresse MAC ou leur VLAN.
Pour les environnements de confiance, nous avons rajouté la propriété security.trusted, permettant de désactiver ces restrictions.
stgraber@dakara:~$ incus create images:alpine/edge a1
Creating a1
stgraber@dakara:~$ incus config device add a1 eth0 nic nictype=sriov parent=enp1s0 name=eth0 security.trusted=true
Device eth0 added to a1
stgraber@dakara:~$ incus start a1
Documentation : https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#nictype-sriov
Nouveaux états pour les membres évacués des clusters¶
Pour mieux suivre l’état des clusters, nous avons ajouté deux états supplémentaires à leurs membres, EVACUATING et RESTORING, selon respectivement si ceux-ci sont en cours d’évacuation ou de restauration.
stgraber@dakara:~ (incus:dev-cluster01/default)$ incus cluster list
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus01 | https://[2602:fc62:b:8007:1266:6aff:fe46:8bd]:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus02 | https://[2602:fc62:b:8007:1266:6aff:fe02:fa52]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus03 | https://[2602:fc62:b:8007:1266:6aff:fed2:70e9]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
stgraber@dakara:~ (incus:dev-cluster01/default)$ incus cluster list
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+------------+--------------------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+------------+--------------------------------+
| incus01 | https://[2602:fc62:b:8007:1266:6aff:fe46:8bd]:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+------------+--------------------------------+
| incus02 | https://[2602:fc62:b:8007:1266:6aff:fe02:fa52]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+------------+--------------------------------+
| incus03 | https://[2602:fc62:b:8007:1266:6aff:fed2:70e9]:8443 | database | x86_64 | default | | EVACUATING | Unavailable due to maintenance |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+------------+--------------------------------+
stgraber@dakara:~ (incus:dev-cluster01/default)$ incus cluster list
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
| incus01 | https://[2602:fc62:b:8007:1266:6aff:fe46:8bd]:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
| incus02 | https://[2602:fc62:b:8007:1266:6aff:fe02:fa52]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
| incus03 | https://[2602:fc62:b:8007:1266:6aff:fed2:70e9]:8443 | database | x86_64 | default | | EVACUATED | Unavailable due to maintenance |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
stgraber@dakara:~ (incus:dev-cluster01/default)$ incus cluster list
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
| incus01 | https://[2602:fc62:b:8007:1266:6aff:fe46:8bd]:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
| incus02 | https://[2602:fc62:b:8007:1266:6aff:fe02:fa52]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
| incus03 | https://[2602:fc62:b:8007:1266:6aff:fed2:70e9]:8443 | database | x86_64 | default | | RESTORING | Unavailable due to maintenance |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+-----------+--------------------------------+
stgraber@dakara:~ (incus:dev-cluster01/default)$ incus cluster list
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus01 | https://[2602:fc62:b:8007:1266:6aff:fe46:8bd]:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus02 | https://[2602:fc62:b:8007:1266:6aff:fe02:fa52]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus03 | https://[2602:fc62:b:8007:1266:6aff:fed2:70e9]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+-----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
Restauration de cluster sans migration d’instance¶
Toujours sur le thème de l’évacuation de cluster, il est à présent possible de restaurer un serveur sans toutefois y migrer ou redémarrer d’instance.
stgraber@dakara:~ (incus:dev-cluster01/default)$ incus cluster evacuate incus02
Are you sure you want to evacuate cluster member "incus02"? (yes/no) [default=no]: yes
stgraber@dakara:~ (incus:dev-cluster01/default)$ incus cluster restore incus02 --action=skip
Are you sure you want to restore cluster member "incus02"? (yes/no) [default=no]: yes
Métriques de démarrage des instances¶
Deux nouvelles métriques ont été ajoutées pour mesurer le temps d’utilisation des instances :
incus_boot_time_seconds, timestamp UNIX du démarrage de l’instanceincus_time_seconds, timestamp UNIX courant
Ce choix est inspiré des métriques provenant de node_exporter.
stgraber@dakara:~$ incus list a1
+------+---------+---------------------+---------------------------------------------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+---------+---------------------+---------------------------------------------+-----------+-----------+
| a1 | RUNNING | 172.17.0.177 (eth0) | 2602:fc62:c:1000:1266:6aff:fe2d:30e5 (eth0) | CONTAINER | 0 |
+------+---------+---------------------+---------------------------------------------+-----------+-----------+
stgraber@dakara:~$ incus query /1.0/metrics | grep a1 | grep time
incus_boot_time_seconds{name="a1",project="default",type="container"} 1.772214792e+09
incus_time_seconds{name="a1",project="default",type="container"} 1.772216491e+09
Documentation : https://linuxcontainers.org/incus/docs/main/reference/provided_metrics/
Liste complète des changements¶
Voici une liste complète de tous les changements apportés par cette version :
Liste complète des commits
- Translated using Weblate (French)
- incusd/device/nic: Fix connected logic for non-NIC QEMU devices
- doc: Update config
- incusd/instance/qmp: Prevent setting link up at initialization
- incusd/instance/qemu: Properly initialize connected status
- incusd/storage/zfs: Set IncusOS storage usage property
- Fix typo: Supported cConditions to Supported Conditions
- Translated using Weblate (Japanese)
- shared/util: Fix SingleQuote to actually quote
- Translated using Weblate (French)
- cmd/incus: Fix get-client-certificate ignoring per-remote certs
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- incusd/storage/lvm: Move IncusOS check to pool creation
- Translated using Weblate (French)
- Translated using Weblate (Portuguese)
- Translated using Weblate (French)
- incus-migrate: Allow running as non-root
- incus-migrate: Add URL imports
- doc: Ignore broken links on Alpine gitlab
- doc: Ignore broken links on docbook website
- github: Deal with new Github images
- tests: Fix SR-IOV attached key test
- incusd/device/nic_physical: Allow migration of managed devices
- shared/cliconfig: Don't pass scheme to OCI creds helper
- incusd/cluster: Allow restoring a cluster without its instances
- incus/cluster: Add --action for restore
- i18n: Update translation templates
- internal/instance; Correct doc for boot.autostart.priority
- doc: Update config
- incusd/cluster: Restrict join token to database servers
- incusd/storage/lvm: Prevent use of lvmcluster with loop files
- incusd/operations: Prevent concurrent access to metadata
- incusd/storage: Add support for renaming qcow2 volumes
- incusd/storage/drivers: Load NBD module for lvmcluster
- incusd/instance/drivers: Pass information about whether migration is live
- incusd/storage: Add support for qcow2 volume migration
- incusd/storage: Add snapshot mount paths parameter to the task function
- incusd/device/nic_riov: Retry MAC setting logic
- Translated using Weblate (Portuguese)
- doc/howto/instances: Mention keeping agent drive attached
- incusd/instances/agent-loader: Silence semanage
- incusd/cluster: Also transfer public key on join
- doc/cloud-init: Fix bad link
- incusd: Search OVS switch external_interfaces
- api: nic_sriov_security_trusted
- incusd/ip/link: Add support for virtual function trusted property
- incusd/device/nic: Add
security.trustedconfiguration key - internal/instance: Add
volatile.<name>.last_state.vf.trusted - tests: Add tests for SR-IOV
security.trustedproperty - doc: Update config for SR-IOV security.trusted
- doc/backup: Fix MarkdownLint warnings
- incusd/storage_volumes_snapshot: Treat pongo templates as unique
- incusd/instance/drivers: Propagate error when adding qcow2 backing block device
- incusd/instancewriter: Make signature more generic
- client/instances: Add direct backup capability
- client/storage_volumes: Add direct backup capability
- client/storage_buckets: Add direct backup capability
- incusd/response: Add pipe response
- incus/export: Add direct backup capability
- incus/storage_volume: Add direct backup capability
- incus/storage_bucket: Add direct backup capability
- incusd/backup: Refactor S3 upload
- incusd/instance_backup: Add direct backup capability
- incusd/storage_volumes_backup: Add direct backup capability
- incusd/storage_buckets_backup: Add direct backup capability
- doc/rest-api: Refresh swagger YAML
- api: direct_backup
- incusd/instance/qemu: gofumpt
- incusd/device/disk: Add IsSpecialDisk
- incusd/instance/lxc: Skip metrics on special disks
- github: Resolve /dev/scratch symlink when consumed
- api: instance_snapshot_disk_only_restore
- shared/api: Add DiskOnly option in InstancePut
- incusd/instance_put: Add DiskOnly option and check for mismatching options
- incusd/instance/qemu: Implement disk-only restore logic in qemu driver
- incusd/instance/lxc: Implement disk-only restore logic in lxc driver
- incusd/instance: Adjust interface for diskOnly parameter
- doc/rest-api: Refresh swagger YAML
- client: Check for diskOnly api extension when invoked
- incus/snapshot: Add disk only restore
- i18n: Update translation templates
- incusd/storage: Prevent moving shared storage volumes
- incus/image: Add generate-metadata
- i18n: Update translation templates
- doc: Update incus-migrate documentation
- incusd: Validate that instance can be migrated
- incusd/instance/drivers: Add writable argument to NBDBlockExportAdd
- incusd/instance/drivers/qmp: Add NBDUnixServerStart
- incusd/instance: Add ExportQcow2Disk
- incusd/storage: Support live migration of qcow2 volumes
- doc: Add information about lvmcluster limitations
- incusd/instance: Add QCOW2 live migration support for instances with snapshots
- incusd/storage: Add QCOW2 live migration support for instances with snapshots
- incusd: Remove ensureMigratable as checks are no longer valid
- doc: Remove outdated doc about live QCOW2 migration limitation
- incusd/instance/drivers: Propagate live migration information
- incusd/storage: Skip final filesystem sync for VMs during migration
- doc/requirements: Bump minimal requirements
- Validate requested storage pool during instance migration
- incusd/instance/qemu: Rename onDisconnectEvent to initialized
- incusd/instance/qemu: Add EventVMReset
- incusd/instance/qemu: Use standard QEMU actions and catch in handler
- internal/instance: Add volatile.vm.needs_reset
- incusd/instance/qemu: Implement fast reboot
- doc: Update config
- incusd/instance/qmp: Fix cross-server live-migration
- incusd/instance/qemu: Report QEMU error on VM restore
- incus-migrate: Fix URL detection
- incusd/instance/drivers: Remove instance volume on revert after failed live migration
- incusd/instance/drivers: Propagate target migration failure to source using context cancellation
- incusd/storage: Prevent concurrent QCOW2 snapshot deletions
- incusd/instance/qemu: Require full restart after eject
- incusd/storage: Prevent concurrent snapshot deletions
- incus: Refactor CLI usage strings
- i18n: Update translation templates
- incusd/instance/qemu: Force a real reboot after applying templates
- incusd/storage/ceph: Use the standard error for unsupported disk usage
- api: unix_hotplug_pci
- incusd/devices/unix_hotplug: Allow selecting by PCI bus
- doc: Update config
- incusd/instance/qmp: Fix gofumpt
- incusd/storage/qcow2: Wait for qemu-nbd to be ready
- incusd/instance/drivers: Fix backing block device ordering when fetching from QEMU
- internal/server/instance/drivers: Get vsock client for Windows
- cmd/incus-agent: Add serial communication for Windows
- incusd/storage/drivers: Delete mount paths when deleting snapshots
- cmd/incus-agent: Only use TCP agent for macOS
- cmd/incus-agent: Use vsock for Windows agent
- Use vsock fork
- incusd/fsmonitor: Read multiple fanotify events
- doc/instance_units: Mention common units
- incusd/instance/qemu: Clarify CPU hotplug error
- incusd/instance/qmp: Add MemoryConfiguration
- incusd/instance/qemu: Improve error message on memory hotplug
- doc/instance: Cover CPU and memory hotplug limits
- incusd/storage/drivers: Allow creation of qcow2 custom volumes
- incusd/instance/drivers: Support detaching qcow2 custom volumes
- incusd/storage: Add snapshot management for qcow2 custom volumes
- incusd/device: Pass backing path information for disk devices
- incusd/storage: Block custom volume snapshot create/delete when attached to an instance
- api: cluster_evacuating_restoring
- incusd/cluster: Implement evacuating and restoring states
- shared/api: Align JSON and YAML behavior for preseeding
- client: Update for InitPreseed change
- incus: Update for InitPreseed change
- incusd: Update for InitPreseed change
- doc/rest-api: Refresh swagger YAML
- incusd/device/nic_ovn: Fix nested NIC state
- incusd/metrics: Implement incus_boot_time_seconds and incus_time_seconds
- incus-agent: Implement incus_boot_time_seconds and incus_time_seconds
- incusd/instance/lxc: Implement time metrics
- doc: Add description of incus_boot_time_seconds and incus_time_seconds
- incusd/storage/linstor: Propagate error when volume filler fails
- shared/validate: Allow a specific set of compressors
- incusd: Validate CompressionAlgorithm everywhere it's received
- tests: Check compression algorithm validation
- incusd/project: Prevent restricted projects from pulling data
- api: projects_restricted_image_servers
- incusd/project: Introduce restricted.images.servers
- doc: Update config
- incusd/project: Implement image server restrictions
- incusd/images: Check project restrictions on image download
- incusd/db: Turn NodeSpecificStorageConfig into driver aware function
- incusd: Switch usages to NodeSpecificStorageConfig function
- incusd/storage: Add support for expanding lvmcluster storage pool
- incusd/storage: Add DisallowedStorageConfigForCreation and ClusterWideStorageConfig
- incusd: Add additional checks fro re-sizing lvmcluster pool
- api: Add storage_lvmcluster_size extension
- doc: Update config
- incusd/certificates: Store full API objects in the cache
- incusd/project: Update permissions test for new certificate cache
- incusd/certificate: Allow to retrieve a single API certificate
- incusd/auth/scriptlet: Expose API certificate and request TLS chain to the scriptlet
- doc/authorization: Document new scriptlet details fields
- api: authorization_scriptlet_cert
- incusd/images: Simplify image URL check
- api: lvmcluster_remove_snapshots
- incusd/storage/drivers: Add 'lvmcluster.remove_snapshots' config key
- incusd/storage: Handle snapshot restore when 'lvmcluster.remove_snapshots' is set
- doc: Update config
- incus: Add validation before starting sshSFTPserver
- tests: Add validation for sftp checks
- i18n: Update translation templates
- incusd: Pass volume type to daemonStorageValidate
- api: daemon_storage_logs
- incusd/config: Add storage logs_volume option
- incusd/daemon_storage: Add storage operation for 'storage.logs_volume'
- incusd/api: Add validation and management of 'storage.logs_volume'
- incusd/instance/common: Use logs folder when configured
- incusd/instance/lxc: Use LogPath for forkstart
- incusd/instance_logs: Use LogPath
- doc: Update config
- incus/server/network/util: Add ipInPoinerRanges util function
- incusd/network/bridge: Trigger dependency notifcation on changes
- incusd/network/ovn: Resetup network on change of uplink ovn range/gateway
- incusd/apparmor/instance: Fix logs volume handling
- incus/server/network/ovn/nb: Overwrite static mac bindings if it already exists
- incusd/api_cluster: Fix database-client count logic
- incusd/instances: Properly instruct to reset NVRAM when changing secure boot config
- incusd/instance/config: Propagate volatile.apply_nvram to copied instances
- incusd/network/acl: Use 'allow-related' instead of 'allow' for default egress action
- incusd/daemon_storage: Don't fail on log volume unmount failure
- incusd/cluster: Handle evacuation on single-node clusters
- internal/instance: Add volatile.hotplug.memory
- doc: Update config
- incusd/instance/qemu: Record and re-use base memory configuration
- incusd/device/nic_bridged: Lookup ACLs in the correct project
- ncusd/network/zone: Include records from all relevant projects
- tests: Update for network zone filtering
- incusd/response: Store original Host in forwardedResponse
- shared/tls: Support multiple domains in ACME functions
- incusd/acme: Support multiple domains
- incusd/network/zone: Allow wildcard records
- incusd/cluster: Don't stop local networking on healing
- incusd/db/networks: Set Project in getPartialNetworkByProjectAndName
- Makefile: Bump minimum to Go 1.25
- gomod: Update dependencies
Documentation¶
La documentation d’Incus peut être consultée sur :
https://linuxcontainers.org/incus/docs/main/
Paquets¶
Incus ne fournit pas de paquet d’installation mais bien un tarball à chaque version. Vous trouverez ci-dessous différentes solutions pour mettre Incus en service.
Installation du serveur Incus sous Linux¶
Incus est disponible sur la plupart des distributions Linux courantes. Vous trouverez des instructions d’installation détaillées dans notre documentation.
https://linuxcontainers.org/incus/docs/main/installing/
Paquet Homebrew du client Incus¶
Le client Incus est disponible sur Homebrew pour Linux et macOS.
https://formulae.brew.sh/formula/incus
Paquet Chocolatey du client Incus¶
Le client Incus est disponible sur Chocolatey pour les utilisateurs de Windows.
https://community.chocolatey.org/packages/incus/6.22.0
Paquet Winget du client Incus¶
Le client Incus est aussi disponible sur Winget pour les utilisateurs de Windows.
https://winstall.app/apps/LinuxContainers.Incus
Support¶
Les versions de fonctionnalité d’Incus ne sont supportées que jusqu’à la sortie de la suivante. Les personnes souhaitant un support plus long et des changements moins fréquents devraient plutôt envisager d’utiliser Incus 6.0 LTS.
Le support communautaire est disponible sur : https://discuss.linuxcontainers.org
Un support commercial est disponible sur : https://zabbly.com/incus
Les bugs peuvent être signalés sur : https://github.com/lxc/incus/issues
Incus 6.21 est maintenant disponible¶
23 janv. 2026
Introduction¶
L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.21 !
Nous démarrons 2026 avec des correctifs de sécurité, mais ce n’est pas tout : nous avons des améliorations attendues depuis longtemps dans notre CLI, une utilisation simplifiée du SR-IOV, de meilleures performances au démarrage, et plus encore !
Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/
Correctifs de sécurité¶
Rory McNamara, de snyk.io, a remonté deux problèmes de sécurité majeurs.
Ces deux problèmes permettent une élévation de privilèges à des utilisateurs aux droits restreints (utilisateurs locaux dans le groupe incus ou utilisateurs distants avec un certificat TLS restreint ou une configuration OpenFGA / un scriptlet équivalents).
- CVE-2026-23953 (injection de retour à la ligne dans une variable d’environnement)
- CVE-2026-23954 (lecture/écriture arbitraire de fichiers via des templates)
Ces deux problèmes sont corrigés dans cette version, des rétroportages sont disponibles dans la branche Incus 6.0.x, et des mises à jour de sécurité arrivent dans les diverses distributions Linux.
Nouvelles fonctionnalités¶
Commande incus wait¶
Une nouvelle commande, incus wait, a été ajoutée afin de permettre d’attendre que certains événements se produisent sur une instance donnée :
- L’arrivée de l’instance dans un état donné
- Le bon lancement de son agent
- L’obtention d’une adresse IP
La commande pourra être étendue dans le futur avec de nouvelles conditions utiles.
stgraber@castiana:~$ incus launch images:debian/13 v1 --vm && incus wait v1 agent && incus exec v1 -- echo "Hello world"
Launching v1
Hello world
Sélection automatique de fonctions SR-IOV pour les interfaces réseau¶
Les interfaces réseau SR-IOV ont à présent la même logique de sélection dynamique que les GPU, introduite il y a quelques versions.
Cela permet d’ajouter des interfaces réseau en spécifiant le constructeur et le modèle de la carte, peu importe le nombre d’interfaces physiques présentes sur le système. Incus choisira ensuite la carte optimale, en équilibrant les VF entre les différentes cartes et ports disponibles.
stgraber@dakara:~$ incus create images:debian/13 sriov
Creating sriov
stgraber@dakara:~$ incus config device add sriov eth0 nic nictype=sriov vendorid=8086 productid=10fb
Device eth0 added to sriov
stgraber@dakara:~$ incus start sriov
Documentation : https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#id2
Propriétés attached et connected pour les interfaces réseau¶
Deux nouvelles propriétés sont maintenant disponibles pour la plupart des interfaces réseau :
attachedcontrôle le fait que la carte soit attachée ou non à l’instance. Définir cette option àfalsepermet de conserver la configuration de la carte, tout en s’assurant que celle-ci soit pas vue par l’instance.connectedcontrôle l’état du lien réseau. Définir cette option àfalsepermet à l’instance de continuer à voir la carte réseau, mais celle-ci ne fournira aucune connectivité.
Voici un exemple de leur utilisation :
stgraber@dakara:~$ incus launch images:debian/13 v1 --vm
Launching v1
stgraber@dakara:~$ incus exec v1 -- ping6 -n ipv6.google.com -c1
PING ipv6.google.com (2607:f8b0:4023:1804::71) 56 data bytes
64 bytes from 2607:f8b0:4023:1804::71: icmp_seq=1 ttl=113 time=14.2 ms
--- ipv6.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 14.151/14.151/14.151/0.000 ms
stgraber@dakara:~$ incus config device override v1 eth0 connected=false
Device eth0 overridden for v1
stgraber@dakara:~$ incus exec v1 -- ping6 -n ipv6.google.com -c1
ping6: ipv6.google.com: Temporary failure in name resolution
stgraber@dakara:~$ incus config device set v1 eth0 connected=true
stgraber@dakara:~$ incus exec v1 -- ping6 -n ipv6.google.com -c1
PING ipv6.google.com (2607:f8b0:4023:1804::64) 56 data bytes
64 bytes from 2607:f8b0:4023:1804::64: icmp_seq=1 ttl=111 time=17.0 ms
--- ipv6.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 16.960/16.960/16.960/0.000 ms
stgraber@dakara:~$ incus config device set v1 eth0 attached=false
stgraber@dakara:~$ incus exec v1 -- ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
Démarrage d’instances en parallèle¶
Jusqu’à présent, toutes les instances marquées pour démarrer automatiquement au démarrage du système hôte étaient démarrées séquentiellement, en respectant les priorités et délais définis.
Pour accélérer leur démarrage sur des systèmes en comportant un grand nombre, Incus les sépare en deux catégories : celles avec une priorité de démarrage ou un délai, et celles sans. Ces dernières sont démarrées en parallèle, à raison d’une instance tous les 4 cœurs CPU, puis les autres démarrent en respectant leurs priorités.
Restrictions réseau via des claims OIDC¶
Une nouvelle fonctionnalité avancée à destination des personnes utilisant l’authentification OIDC est un claim nommé incus.allowed_subnets, qui peut contenir une liste de sous-réseaux CIDR séparée par des virgules depuis lesquels le client doit se connecter afin d’être autorisé à interagir avec l’API.
La fonctionnalité est particulièrement utile dans des environnements où un groupe d’utilisateurs donné doit nécessairement passer par un VPN ou se connecter en physique. L’IdP peut être configuré pour définir ce claim, et Incus en vérifie le respect à chaque requête.
Documentation : https://linuxcontainers.org/incus/docs/main/authentication/#openid-connect-authentication
Meilleur support pour le SOA dans les zones réseau¶
Les zones réseau DNS générées comportent à présent un enregistrement SOA plus standard, utilisant le premier serveur DNS configuré comme serveur primaire, et utilisant une nouvelle option de configuration dns.contact pour personnaliser le champ de contact pour la zone.
Documentation : https://linuxcontainers.org/incus/docs/main/howto/network_zones/
Support de la suppression forcée (récursive) de fichiers via l’API REST¶
Incus supporte deux API différentes pour l’accès aux fichiers dans les instances et les volumes personnalisés.
Les clients modernes utilisent notre nouvelle API SFTP, permettant de nombreuses opérations sur les fichiers, tandis que les clients plus simples ou anciens utilisent notre API REST plus basique.
Une fonctionnalité facilement disponible en SFTP mais pas en REST était la possibilité de supprimer de manière forcée un sous-arbre du système de fichiers, entraînant une suppression récursive.
Pour simplifier la tâche chez les clients n’utilisant pas l’API SFTP, nous avons ajouté un en-tête HTTP X-Incus-force pour l’opération DELETE qui déclenche la suppression récursive côté serveur, comme le ferait incus file delete -f.
Liste complète des changements¶
Voici une liste complète de tous les changements apportés par cette version :
Liste complète des commits
- doc/openfga: Improve required config keys
- incusd/network/ovn: Drop now obsolete DNS check
- incusd/storage/truenas: fix SetVolumeQuota issue when growing FS volumes
- cmd/incus-user: Don't reset setup if user has access
- api: oidc_allowed_subnets
- incusd/auth/oidc: Introduce incus.restricted_subnets
- doc/authentication: Mentioned incus.allowed_subnets claim
- internal/instance: Tweak handling of boot.autostart
- doc: Update configs
- incusd/instances: Support last-state value for boot.autostart
- incusd/network/physical: Allow parent re-use for bridges
- Translated using Weblate (Italian)
- Translated using Weblate (Italian)
- Translated using Weblate (Swedish)
- Translated using Weblate (Swedish)
- Translated using Weblate (Tamil)
- Translated using Weblate (Dutch)
- Translated using Weblate (Dutch)
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Spanish)
- Translated using Weblate (Spanish)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Russian)
- Translated using Weblate (Portuguese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Portuguese)
- incusd/network/physical: Allow vlan.tagged
- incusd/device: Add vlan.tagged to physical NICs
- doc: Update configs
- incusd/device/nic_physical: Fix internal bridge handling
- incusd: Add X-Incus-force header for file operations
- doc/rest-api: Refresh swagger YAML
- api: file_delete_force
- doc/network_ovn: Add note about advanced external_interfaces syntax
- incusd: Parallelize instance startup on daemon start
- incusd/instance/drivers: Add size parameter to UpdateBlockSize method
- incusd/storage/drivers: Export roundAbove function
- incusd/storage/drivers: Add Qcow2Resize and export isQcow2Block function
- Translated using Weblate (Swedish)
- incusd/storage: Add support for resizing qcow2 volumes
- generate-database: Respect "primary" config for Identifier in mappings
- Added a few more environment variables. PATHEXT and COMPUTERNAME were needed for 'shutdown.exe'. Meanwhile, I've connected as SYSTEM with PsExec to show the environment variables by default and added them.
- Add pires/go-proxyproto
- internal/server/endpoints/listeners: Use new proxyproto package
- generate-database: fix import type for association tables
- incusd/instance/drivers: Fix adding disk with a device name longer than 31 bytes
- incusd/instance/drivers: Add tests for hashName
- shared/validate: Don't allow $ in API names
- Translated using Weblate (Japanese)
- shared/util: Add SingleQuote
- incusd/instance/lxc: Use SingleQuote instead of Quote
- incusd/device/disk: Use isRequired
- incusd/device/disk: Move check for attached property
- incusd/device/disk: Handle required=false on custom volumes
- incusd/api_internal: Block instance hooks until daemon is ready
- incusd/instance_console: Align cleanup logic with exec
- incusd: pass firmware opt from device/pci to instance/qemu
- incusd/device: Move reusable code into getNumaNodeSet helper
- incusd/network: Add SRIOVCountFreeVirtualFunctions
- incusd/device: Add support for nic SR-IOV selection by vendorid, productid and pci
- doc: Update configs
- api: Add 'nic_sriov_select_ext' extension
- incusd/storage/drivers: Allow setting 'vg_name' for non-clustered LVM during init
- doc: Fix build failure
- incus: Implement "incus wait"
- i18n: Update translation templates
- internal/instance: Prevent line breaks in environment variables
- incusd/instance/drivers: Rename hashName to hashValue
- incusd/instance/drivers: Hash serial value if it exceeds the maximum length
- doc/linstor: Add documentation for
sourceparameter. - doc: Update configs
- incusd/network/bridge: Skip dnsmasq on non-routed IPv6
- Update Rocky Linux instructions
- incusd/network/zone: Use the standard SOA format
- incusd/network/zone: Allow setting DNS admin contact
- doc: Update configs
- api: network_zones_dns_contact
- Translated using Weblate (Portuguese)
- incusd/network: Remove automatic increasing of SR-IOV VF count
- doc: Add warning about long device names
- incusd/device/nic: Add
attachedconfiguration key - incusd/device/nic: Add
connectedconfiguration key - incusd/instance/qemu: Properly update detached devices
- incusd/instance/lxc: Properly update detached devices
- incusd/device/nic_ovn: Factor common options
- incusd/device/nic_p2p: Fix boot.priority spelling in gendoc
- incusd/instance/qemu: Implement NIC connected config key
- incusd/ip/link: Relax parent detection logic
- incusd/instance/lxc: Implement NIC connected config key
- api: nic_attached_connected
- doc: Update config
- incusd/instance/lxc: Restrict path of template files and targets
- tests: Add NIC tests for attached and connected keys
- Makefile: Bump to Go 1.24.12
- gomod: Update dependencies
- mini-oidc: Update for newer Zitadel
- incusd/cluster: Skip first re-balance
- incusd/auth/tls: Fix handling of GetPermissionChecker
- incusd/instance: Report clear error on concurent migrations
Documentation¶
La documentation d’Incus peut être consultée sur :
https://linuxcontainers.org/incus/docs/main/
Paquets¶
Incus ne fournit pas de paquet d’installation mais bien un tarball à chaque version. Vous trouverez ci-dessous différentes solutions pour mettre Incus en service.
Installation du serveur Incus sous Linux¶
Incus est disponible sur la plupart des distributions Linux courantes. Vous trouverez des instructions d’installation détaillées dans notre documentation.
https://linuxcontainers.org/incus/docs/main/installing/
Paquet Homebrew du client Incus¶
Le client Incus est disponible sur Homebrew pour Linux et macOS.
https://formulae.brew.sh/formula/incus
Paquet Chocolatey du client Incus¶
Le client Incus est disponible sur Chocolatey pour les utilisateurs de Windows.
https://community.chocolatey.org/packages/incus/6.21.0
Paquet Winget du client Incus¶
Le client Incus est aussi disponible sur Winget pour les utilisateurs de Windows.
https://winstall.app/apps/LinuxContainers.Incus
Support¶
Les versions de fonctionnalité d’Incus ne sont supportées que jusqu’à la sortie de la suivante. Les personnes souhaitant un support plus long et des changements moins fréquents devraient plutôt envisager d’utiliser Incus 6.0 LTS.
Le support communautaire est disponible sur : https://discuss.linuxcontainers.org
Un support commercial est disponible sur : https://zabbly.com/incus
Les bugs peuvent être signalés sur : https://github.com/lxc/incus/issues
Incus 6.20 est maintenant disponible¶
19 déc. 2025
Introduction¶
L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.20 !
C’est la dernière version de l’année 2025, et la durée de développement a été réduite afin de ne pas sortir une nouvelle version au milieu des vacances !
Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/
Nouvelles fonctionnalités¶
Une limitation ennuyeuse de notre implémentation des clusters LVM était que les instantanés ne fonctionnaient pas de manière sûre sur toutes les versions de LVM.
Les nouvelles versions de LVM ont apporté des restrictions sur la manière dont les volumes sont activés, nous empêchant de les monter sur deux serveurs à la fois, et ainsi d’effectuer des migrations à chaud.
Dans Incus 6.18, nous avions donc désactivé les instantanés pour tous les volumes en bloc stockés sur du LVM en cluster, afin d’avoir une expérience utilisateur cohérente et éviter des problèmes lors de la mise à jour des systèmes hôtes.
Nous avons à présent implémenté une nouvelle solution pour les instantanés sur LVM en cluster. Elle utilise le format QCOW2 pour les volumes logiques au lieu du format brut. Cela nous permet de gérer manuellement les instantanés et de composer leurs volumes logiques LVM pour retrouver le bon état de la VM.
Le nouveau format est celui par défaut pour les nouvelles VM. Les VM existantes resteront sur un format brut et ne supporteront donc toujours pas les instantanés. Il est possible de les convertir en QCOW2 en les déplaçant sur un autre pool de stockage puis en les remettant sur le pool initial.
Documentation : https://linuxcontainers.org/incus/docs/main/reference/storage_lvm/
Nouvelle commande incus cluster join¶
Cette nouvelle commande est née d’un besoin dans IncusOS, dans lequel les interactions doivent être faites depuis l’outil en ligne de commande ou l’interface web. Bien qu’il était possible d’initialiser un nouveau cluster avec incus cluster enable, l’ajout de serveurs IncusOS additionnels était assez difficile.
Pour simplifier la tâche, nous avons ajouté une nouvelle commande incus cluster join, qui prend en arguments le cluster existant et le serveur à y rajouter. La commande pose ensuite des questions comme avec incus admin init, puis ajoute le serveur au cluster.
stgraber@castiana:~$ incus cluster join incus01: incus02:
What IP address or DNS name should be used to reach this server? [default=10.244.64.185]:·
What member name should be used to identify this server in the cluster? [default=eb7bbd3f-d385-4a06-919f-d66a7c52b058]: incus02
All existing data is lost when joining a cluster, continue? (yes/no) [default=no] yes
Choose "source" property for storage pool "local": local/incus
Choose "zfs.pool_name" property for storage pool "local": local/incus
stgraber@castiana:~$ incus cluster list incus01:
+---------+----------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+---------+----------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| incus01 | https://10.244.64.183:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+---------+----------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| incus02 | https://10.244.64.185:8443 | database-standby | x86_64 | default | | ONLINE | Fully operational |
+---------+----------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
stgraber@castiana:~$ incus cluster join incus01: incus03:
What IP address or DNS name should be used to reach this server? [default=10.244.64.60]:·
What member name should be used to identify this server in the cluster? [default=ef50a39f-289d-46c4-989f-9466f8f8ae58]: incus03
All existing data is lost when joining a cluster, continue? (yes/no) [default=no] yes
Choose "source" property for storage pool "local": local/incus
Choose "zfs.pool_name" property for storage pool "local": local/incus
stgraber@castiana:~$ incus cluster list incus01:
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus01 | https://10.244.64.183:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus02 | https://10.244.64.185:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus03 | https://10.244.64.60:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
stgraber@castiana:~$
Fichier de configuration pour l’agent¶
Il est désormais possible de restreindre les actions que l’agent Incus peut effectuer. Les restrictions sont configurées dans un fichier qui liste les fonctionnalités activées. Si le fichier existe et que cette liste y est présente, toutes les fonctionnalités non explicitement activées sont désactivées.
Documentation : https://linuxcontainers.org/incus/docs/main/howto/instances_create/#configure-the-incus-agent
Enregistrements DNS inverses dans les réseaux OVN¶
Il s’agit d’un ajout modeste, mais potentiellement très utile. Toutes les instances sur un réseau OVN se voient désormais générer à la fois des enregistrements directs et inverses pour leurs adresses.
stgraber@castiana:~ (incus:dev-cluster/default)$ incus list c
+------+---------+--------------------+-----------------------------------------------+-----------+-----------+----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | LOCATION |
+------+---------+--------------------+-----------------------------------------------+-----------+-----------+----------+
| c1 | RUNNING | 10.20.162.2 (eth0) | fd42:e9ac:c3e5:65f:1266:6aff:fef6:b217 (eth0) | CONTAINER | 0 | incus01 |
+------+---------+--------------------+-----------------------------------------------+-----------+-----------+----------+
| c2 | RUNNING | 10.20.162.3 (eth0) | fd42:e9ac:c3e5:65f:1266:6aff:fea4:5936 (eth0) | CONTAINER | 0 | incus02 |
+------+---------+--------------------+-----------------------------------------------+-----------+-----------+----------+
stgraber@castiana:~ (incus:dev-cluster/default)$ incus exec c1 bash
root@c1:~# host c2.incus
c2.incus has address 10.20.162.3
c2.incus has IPv6 address fd42:e9ac:c3e5:65f:1266:6aff:fea4:5936
Host c2.incus not found: 3(NXDOMAIN)
Host c2.incus not found: 3(NXDOMAIN)
root@c1:~# host 10.20.162.3
3.162.20.10.in-addr.arpa domain name pointer c2.incus.
root@c1:~# host fd42:e9ac:c3e5:65f:1266:6aff:fea4:5936
6.3.9.5.4.a.e.f.f.f.a.6.6.6.2.1.f.5.6.0.5.e.3.c.c.a.9.e.2.4.d.f.ip6.arpa domain name pointer c2.incus.
root@c1:~#
Liste complète des changements¶
Voici une liste complète de tous les changements apportés par cette version :
Liste complète des commits
- Translated using Weblate (Portuguese)
- agent-loader/install-linux.sh Fix SELinux issue with agent run path
- incusd/device/nic: Fix link to instances-limit-units
- doc: fix instances-limit-units reference links
- Added default environment variables for the Windows agent.
- instance/drivers/driver_common: Fix cat order bug in selinuxContext()
- Added translation using Weblate (Swedish)
- Translated using Weblate (Swedish)
- Translated using Weblate (Swedish)
- incusd/instance/lxc: Generate a stable MAC for managed physical bridged networks
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Swedish)
- Added new Windows environment variable 'SystemDrive'
- incus/create: Allow reading Ephemeral flag from stdin
- incusd/device/nic_physical: Fix VLAN for VMs
- Translated using Weblate (Swedish)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- incusd/network/bridge: Don't listen for incoming RAs
- incusd/network/zone: Allow trailing dot in NS records
- incusd/device/physical: Allow live-migration of bridged physical NICs
- shared/tls: Move ACME challenge to shared/tls
- internal/server/acme: Update certificate renewal call
- incusd/instance/qemu: Don't attempt agent connections on frozen VMs
- incusd/instance/qemu: Rework state reporting
- Translated using Weblate (Chinese (Simplified Han script))
- incusd/operations: Return a copy of the metadata to avoid concurrent access
- Attempt to make the Incus Agent on Windows better integrated.
- incusd/instance/qemu: Fix regression in reported state
- Translated using Weblate (Japanese)
- gomod: Update dependencies
- gomod: Get latest umoci
- build(deps): bump actions/upload-artifact from 5 to 6
- incus/io: #2636 fix linter complaints in
internal/io - generate-database: Allow overwriting the target column for a join
- incusd/storage_volumes: Fix state handling in getVolumeFull
- internal/jmap: Refactor Map methods and add comprehensive tests
- shared/tls: implement Happy Eyeballs (RFC 8305) in RFC3493Dialer
- incusd/devices/tpm: Make incompatible with live-migration
- incus/util: #2636 fix linter complaints in
internal/filter - incus/network_load_balancer: Fix typo in cmd info description
- i18n: Update translation templates
- api: Add storage_lvmcluster_qcow2 extension
- incusd/storage/drivers: Add utils for qcow2 manipulation
- incusd/instance/drivers: Add qcow2 block device utility functions
- incusd/storage/drivers: Add 'block.type' config and additional validation checks
- incusd/storage: Implement the creation of qcow2 formatted volumes when on lvmcluster
- incusd/instance/drivers/qmp: Add QueryNamedBlockNodes and ChangeBackingFile
- incusd/storage/drivers: Add support for activating and deactivating qcow2-formatted volumes
- incusd/storage/drivers: Add support for the qcow2 config filesystem snapshots
- incusd/storage/drivers: Add support for creating and renaming qcow2 volume snapshots
- incusd/storage/drivers: Add GetQcow2BackingFilePath and Qcow2DeletionCleanup
- incusd/device/config: Add 'BackingPath' to track backing chain for qcow2 volumes
- incusd/storage: Add 'BackingPath' to track backing chain for qcow2 volumes
- incusd/storage: Add support for creating, renaming, restoring and deleting qcow2 instance volumes
- incusd/instance/drivers: Add support for running instances from a backing chain
- incusd/instance: Add support for creating/deleting qcow2 snapshots while instance is running
- incusd/storage/drivers: Show config filesystem only for FS volumes
- incusd/storage/lvmcluster: Fix activation for containers
- incusd/storage/lvm: Fix handling of stripe size config
- incusd/storage/lvmcluster: Set block.filesystem to btrfs
- incusd/storage: Don't add new volume options on snapshot
- incusd/storage/drivers/types: Fix gofumpt
- doc: Update metadata
- incusd/cluster: Add missing project handling to ConnectIfVolumeIsRemote
- incusd/storage_volumes: Handle remote volumes in recursion=2
- incusd/storage/lvm: Fix incorrect activation mode
- incus/storage: Take project into account during qcow2 operation
- shared/api: add comprehensive unit tests for URL builder
- Translated using Weblate (Portuguese)
- incus/admin/init: Prepare code for adding initialized server to cluster
- incus/cluster: Add 'cluster join' command
- i18n: Update translation templates
- incus-agent: Code cleanup
- incus-agent: Add OS config path
- incus-agent: Add system configuration support
- incus-agent: Add feature checks
- doc/instances: Cover incus-agent configuration
- doc/bpf-tokens: Fix markdown
- gomod: Update dependencies
- incus/file: Improve error messages
- i18n: Update translation templates
- doc/network/firewall: Remove warning against IP forward and Docker
- incusd/storage: Generate a clean backup.yaml after a backup is generated
- incusd/api_buckets: Provide fastpath for miniod access
- incusd: Move ReverseDNS to util
- incusd/network/ovn: Set PTR records
- doc/openfga: Clarify required config keys
- incusd/storage/linstor: Disable volume copie with snapshots
- tests: Update tests for Linstor limitation
Documentation¶
La documentation d’Incus peut être consultée sur :
https://linuxcontainers.org/incus/docs/main/
Paquets¶
Incus ne fournit pas de paquet d’installation mais bien un tarball à chaque version. Vous trouverez ci-dessous différentes solutions pour mettre Incus en service.
Installation du serveur Incus sous Linux¶
Incus est disponible sur la plupart des distributions Linux courantes. Vous trouverez des instructions d’installation détaillées dans notre documentation.
https://linuxcontainers.org/incus/docs/main/installing/
Paquet Homebrew du client Incus¶
Le client Incus est disponible sur Homebrew pour Linux et macOS.
https://formulae.brew.sh/formula/incus
Paquet Chocolatey du client Incus¶
Le client Incus est disponible sur Chocolatey pour les utilisateurs de Windows.
https://community.chocolatey.org/packages/incus/6.20.0
Paquet Winget du client Incus¶
Le client Incus est aussi disponible sur Winget pour les utilisateurs de Windows.
https://winstall.app/apps/LinuxContainers.Incus
Support¶
Les versions de fonctionnalité d’Incus ne sont supportées que jusqu’à la sortie de la suivante. Les personnes souhaitant un support plus long et des changements moins fréquents devraient plutôt envisager d’utiliser Incus 6.0 LTS.
Le support communautaire est disponible sur : https://discuss.linuxcontainers.org
Un support commercial est disponible sur : https://zabbly.com/incus
Les bugs peuvent être signalés sur : https://github.com/lxc/incus/issues
Incus 6.19 est maintenant disponible¶
29 nov. 2025
Introduction¶
L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.19 !
Cette version présente moins de nouveautés qu’habituellement, puisque nous avons passé un certain temps à améliorer l’interfaçage avec IncusOS.
Cela dit, cette version comporte quelques améliorations intéressantes, et beaucoup de corrections de bugs !
Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/
Nouvelles fonctionnalités¶
Support initial de SELinux¶
Dans cette nouvelle version, nous avons posé les premières pierres d’un support natif futur de SELinux dans Incus. Il s’agit là d’un travail préliminaire, aussi nous avons désactivé par défaut la fonctionnalité. Celle-ci peut être activée en définissant la variable d’environnement INCUS_SECURITY_SELINUX=true.
Actuellement, avec cette fonctionnalité activée, Incus détecte le support de SELinux sur le système et tente de détecter l’un des environnements SELinux suivants :
- L’ensemble de contextes SELinux de Fedora/RHEL
- La refpolicy SELinux d’Incus
Lorsque lancé sur un système supporté, Incus applique le bon contexte SELinux aux conteneurs, avec génération de catégories SELinux uniques.
Cela permet d’éviter d’éventuelles interactions entre deux conteneurs, même si ceux-ci partagent le même contexte SELinux.
En l’état, seul le contexte d’exécution est défini. Incus n’interagit pas pour le moment avec le contexte du système de fichiers, ne gère pas les machines virtuelles ou encore les volumes et ressources partagés.
Nous encourageons les personnes avec de l’expérience et un intérêt dans le support de SELinux dans Incus d’essayer la fonctionnalité et de travailler avec nous pour améliorer notre support !
[root@fedora ~]# journalctl -u incus | grep -i selinux
Nov 29 03:47:44 fedora incusd[8156]: time="2025-11-29T03:47:44Z" level=debug msg="Detected Fedora-style SELinux setup"
[root@fedora ~]# ps fauxwwZ | grep /sbin/init
system_u:system_r:spc_t:s0:c359,c602 1000000 6647 0.0 0.3 23156 14124 ? Ss 03:42 0:00 \_ /sbin/init
system_u:system_r:spc_t:s0:c449,c951 1000000 8309 0.0 0.3 23156 14112 ? Ss 03:47 0:00 \_ /sbin/init
Amélioration de l’agent Windows¶
Incus supporte à présent de lancer l’agent Windows en tant que service, en incluant des scripts d’installation similaires à ceux disponibles pour Linux et macOS.
Nous avons donc à présent des expériences utilisateur très similaires sur les machines virtuelles Linux, macOS et Windows.
Ce travail s’est suivi d’une amélioration dans le plugin de connexion Ansible pour y ajouter le support de ces trois plateformes.

Périphériques série dans l’API des ressources¶
Cette fonctionnalité est née d’un retour d’expérience d’utilisation d’IncusOS avec des conteneurs gérant de l’IoT interagissant avec des réseaux Zigbee et Z-Wave.
Sur un système standard, il est possible d’inspecter /dev/serial afin d’y trouver un identifiant stable pour les adaptateurs série USB. Mais avec l’environnement clos d’IncusOS, ce n’était pas possible.
Pour résoudre ce problème, l’API des ressources contient à présent une liste de périphériques série avec tous les détails nécessaires à leur utilisation dans les conteneurs.
stgraber@castiana:~ (incus:dev-local/default)$ incus info --resources
System:
UUID: 33c2c530-8b02-426c-b48c-30d53dbea682
Vendor: QEMU
Product: Standard PC (Q35 + ICH9, 2009)
Version: pc-q35-10.1
Type: virtual-machine
Chassis:
Vendor: QEMU
Type: Other
Version: pc-q35-10.1
Motherboard:
Vendor: LinuxContainers
Product: Incus
Version: pc-q35-10.1
Firmware:
Vendor: EDK II
Version: unknown
Date: 02/02/2022
[...SNIP...]
Serial devices:
Device 0:
Id: ttyUSB0
Device: 188:0
DeviceID: /dev/serial/by-id/usb-QEMU_QEMU_USB_SERIAL_1-0000:00:01.0:00.6-4-if00-port0
DevicePath: /dev/serial/by-path/pci-0000:01:00.6-usbv2-0:4:1.0-port0
Vendor: Future Technology Devices International, Ltd
Vendor ID: 0403
Product: FT232 Serial (UART) IC
Product ID: 6001
Driver: ftdi_sio
Device 1:
Id: ttyUSB1
Device: 188:1
DeviceID: /dev/serial/by-id/usb-QEMU_QEMU_USB_SERIAL_1-0000:00:01.0:00.6-5-if00-port0
DevicePath: /dev/serial/by-path/pci-0000:01:00.6-usbv2-0:5:1.0-port0
Vendor: Future Technology Devices International, Ltd
Vendor ID: 0403
Product: FT232 Serial (UART) IC
Product ID: 6001
Driver: ftdi_sio
Limite de bande passante dans les interfaces réseau OVN¶
Les interfaces réseau OVN peuvent désormais utiliser les clefs de configuration limits.ingress, limits.egress, limits.max et limits.priority.
Celles-ci sont converties en règles QoS dans OVN.
Support de la suppression de plusieurs objets dans les commandes de la CLI¶
Les commandes suivantes peuvent désormais supprimer plus d’un objet à la fois :
incus cluster group deleteincus image alias deleteincus network deleteincus network acl deleteincus network address-set deleteincus network integration deleteincus network zone deleteincus operation deleteincus profile deleteincus project deleteincus storage deleteincus warning delete
Possibilité de désactiver le passage du firmware des périphériques PCI aux VM¶
Une nouvelle clef de configuration firmware a été ajoutée aux périphériques de type pci.
Celle-ci peut être mise à false pour ne pas passer à la VM la ROM du périphérique.
Cela est parfois nécessaire pour pouvoir correctement utiliser des périphériques PCI dans des VM.
Génération de PKCS12 dans la CLI¶
De plus en plus de personnes découvrent l’interface web d’Incus, et un point souvent remonté est la difficulté de générer un certificat client qui convient aux navigateurs web.
Pour simplifier la procédure, la commande incus remote get-client-certificate a été étendue.
Désormais, elle permet de générer un certificat public encodé en PEM avec incus remote get-client-certificate client.crt, mais également un couple certificat–clef PKCS12 avec incus remote get-client-certificate client.pfx --format=pfx.
stgraber@castiana:~$ incus remote get-client-certificate browser.pfx --format=pfx
Password for browser.pfx:·
stgraber@castiana:~$ ls -lh browser.pfx·
-rw------- 1 stgraber stgraber 1.2K Nov 29 16:35 browser.pfx
Affichage d’unités brutes en CSV depuis la CLI¶
Une nouvelle option raw s’appliquant au format csv dans les commandes de listage permet d’afficher les unités de stockage en octets bruts plutôt que dans un format adapté aux humains.
stgraber@castiana:~$ incus list -cnm -fcsv
c1,9.57MiB
dev-os,1.06GiB
nginx,2.14MiB
test,7.57MiB
test1,7.89MiB
stgraber@castiana:~$ incus list -cnm -fcsv,raw
c1,10293248
dev-os,1141211136
nginx,2240512
test,7938048
test1,8278016
Liste complète des changements¶
Voici une liste complète de tous les changements apportés par cette version :
Liste complète des commits
- doc/environment: Add INCUS_SECURITY_SELINUX
- incusd/db/warnings: Add SELinuxNotAvailable
- incusd/sys: Add SELinux detection
- incusd/instance/lxc: Set SELinux context
- doc: Add SELinux to the word list
- incusd/network/ovn: Tweak port removal logic
- github: Build the agent on MacOS
- incusd/instance/qemu: Disable virtio-snd on Windows
- Translated using Weblate (Portuguese)
- incusd/instance/qmp: Remove double line break
- incusd/instance/qmp: Don't log serial port changes
- incusd/device/disk: Skip VirtioFS Posix ACLs on Windows
- incusd/selinux: Add basic refpolicy support
- client: Add GetEventsByType and GetEventsAllProjectsByType
- incusd/lifecycle: Fix project prefix in volume name
- incusd/cluster: Use server name instead of IP
- cmd/generate-database/db: Fix create/update with composite keys
- incusd/storage_volumes: Better handle bad patterns
- client: Omit trailing ? for /events without query parameters
- incusd/apparmor/lxc: Don't bother with sys/proc protections when nesting enabled
- incusd/acme: Handle HTTPS proxies
- incusd: Fix lifecycle events being emited on pending entities
- incusd/network: Fix vlan/parent modification on physical uplink
- incus: Include admin os command on non-Linux pltforms
- gomod: Update incus-osd dependency
- gomod: Update dependencies
- incus/list: Add option for raw units in CSV output
- incusd/storage: Fix sparse writer performance
- incus-migrate: Write in 4MB chunks
- incus-migrate: Strict error checking
- incusd/storage: Tighten storage pool volume permissions
- incusd/patches: Re-apply storage permissions on update
- incusd/patches: Fix incorrect error check in permission patch
- incus/instance: Add missing godocs
- incusd: only apply qemu rtc adjustments if it is configured
- incusd/instance/qemu: Fix macOS agent
- incusd/instance/qemu: Properly parse dashed disk names when detaching
- incusd/api: Refresh OIDC on changes to oidc.scopes
- Translated using Weblate (Chinese (Simplified Han script))
- incus/admin/sql: Allow remote interactions
- incus/admin/recover: Allow remote interactions
- i18n: Update translation templates
- incusd: Allow some remote internal API interactions
- gomod: Update dependencies
- Translated using Weblate (Portuguese)
- incusd/daemon: Setup /var/lib/incus/devices as a tmpfs
- incusd/daemon: Remove nodev check now that we control that path
- cmd/incus-agent: address errcheck lint issue
- cmd/incus-agent: address import shadowing
- cmd/incus-agent: address os.Exit being called outside of main and init
- cmd/incus-agent: refactor DevIncusAPIGET to use switch
- cmd/incus-agent: silence defer being use in loop
- cmd/incus-agent: address if flow in Connect
- cmd/incus-agent: silence warning about break in select in execWs.Do
- incus/util: #2636 fix linter complaints in
internal/util - doc: Remove mentions of IRC
- Added Windows agent install scripts.
- doc/howto/instances: Update Windows agent instructions
- doc/image_format: Tweak wording
- internal/linux: Add IoctlBlkZname
- incusd/storage/zfs: Rework zvol resolution logic
- Revert "tests: Skip XFS on ZFS with Ubuntu 24.04"
- incusd/storage/linstor: Parse URLs ourselves
- incus-agent: Fix gofumpt
- gomod: Update dependencies
- lint: Make govulncheck non-fatal
- incusd/device/unix_hotplug: Prevent duplicate uevent injection
- incus/storage_volume: Fix determination of target path
- cmd/incus-simplestream: output of golangci-lint run --fix for cmd/incus-simplestream
- cmd/incus-user: refactor to not use os.Exit and instead close listener
- cmd/lxc-to-incus: address golangci-lint issues
- cmd/lxc-to-incus: return error instead of using os.Exit
- cmd/lxc-to-incus: simplify logic to check mount validity
- cmd/lxc-to-incus: simplify logic to check mount validity
- cmd/lxc-to-incus: rename argument in protoSendError to avoid package shadowing
- cmd/lxd-to-incus: address golangci-lint issues
- cmd/lxd-to-incus: do not use os.Exit outside of main
- build(deps): bump actions/checkout from 5 to 6
- shared/resources: Skip broken udev symlinks
- cmd/generate-config: address golangci-lint issues
- incusd/network/zone: Support setting top level records
- cmd/incusd: recursive instance GET returns InstanceFull
- doc/rest-api: Refresh swagger YAML
- incus/remote: Add support for PFX generation
- i18n: Update translation templates
- incus/file: Fix crash on file mount
- incusd/auth/openfga: Add missing storage volume entitlements
- incusd/auth/openfga: Rebuild model
- incusd/patches: Upgrade OpenFGA model
- Translated using Weblate (Portuguese)
- shared/api: Remove non-existent field from StoragePoolBucketBackup
- incusd/backup/bucket: Remove unused field
- shared/api: Add missing CreatedAt on bucket backup
- incusd/storage/bucket: Fix backup listing endpoint
- api: storage_volume_full
- api: storage_bucket_full
- shared/api: Add StorageVolumeFull
- shared/api: Add StorageBucketFull
- client: Add GetStoragePoolBucketFull and GetStoragePoolVolumeFull
- client: Add full variants of volume and bucket list functions
- incusd/storage_buckets: Add recursion=1 for storage bucket get
- incusd/storage_volumes: Add recursion=1 for storage volume get
- incusd/storage_volumes: Add recursion=2 for storage volumes get
- incusd/storage_buckets: Add recursion=2 for storage buckets get
- doc/rest-api: Refresh swsagger YAML
- tests: Fix snapshot list testing
- incus: Add support for bulk deletion to all objects
- i18n: Update translation templates
- api: device_pci_firmware
- incusd/device/pci: Add firmware option
- incusd/instance/qemu: Add rom-bar to PCI template
- incusd/instance/qemu: Pass firmware option to qemuPCIPhysical
- doc: Update configs
- incusd/instance/qemu: Update tests
- api: resources_serial
- shared/api: Add Serial device resource types
- shared/resources: Add serial device resource support
- shared/resources: Add test cases for serial device
- incus/info: Add Serial devices to --resources
- shares/resources/usbid: Only load the database once
- i18n: Update translation templates
- doc/rest-api: Refresh swagger YAML
- tests: Re-structure test suite for better parallel runs
- github: Tweak test matrix
- test/metrics: Fix missing cleanup
- tests/tls_restrictions: Query specific certificate
- tests/remote: Clear the trusted certificates at beginning of test
- tests/includes: Fix ensure_has_localhost_remote to clear any existing remote
- api: ovn_nic_limits
- incus/server/network/ovn/nb: Add QoS function
- incus/server/network/ovn: Add limits support
- incus/server/device/nic_ovn: Add limits support
- doc: Update configs
- incusd/instances: Use /tmp for temporary screenshot storage
- client/oci: Use SHA256 of combined layers as digest
- shared/ioprogress: Cap download speed to file size
- incusd/network/acl: Only refresh bridge network rules if ACL is directly used
- incusd/device/pci: Don't attempt to bind to current driver
- incusd/instance/lxc: Tweak seccomp category
- gomod: Update dependencies
- api: More precise name for test
- api: Add DevicesMap typ to better support unmarshaling
- api: Use DevicesMap type for map[string]map[string]string
- doc/rest-api: Refresh swagger YAML
- tests/storage/linstor: Use correct command to check on snapshots
- shared/archive: Fix crash on nil tracker
Documentation¶
La documentation d’Incus peut être consultée sur :
https://linuxcontainers.org/incus/docs/main/
Paquets¶
Incus ne fournit pas de paquet d’installation mais bien un tarball à chaque version. Vous trouverez ci-dessous différentes solutions pour mettre Incus en service.
Installation du serveur Incus sous Linux¶
Incus est disponible sur la plupart des distributions Linux courantes. Vous trouverez des instructions d’installation détaillées dans notre documentation.
https://linuxcontainers.org/incus/docs/main/installing/
Paquet Homebrew du client Incus¶
Le client Incus est disponible sur Homebrew pour Linux et macOS.
https://formulae.brew.sh/formula/incus
Paquet Chocolatey du client Incus¶
Le client Incus est disponible sur Chocolatey pour les utilisateurs de Windows.
https://community.chocolatey.org/packages/incus/6.19.0
Paquet Winget du client Incus¶
Le client Incus est aussi disponible sur Winget pour les utilisateurs de Windows.
https://winstall.app/apps/LinuxContainers.Incus
Support¶
Les versions de fonctionnalité d’Incus ne sont supportées que jusqu’à la sortie de la suivante. Les personnes souhaitant un support plus long et des changements moins fréquents devraient plutôt envisager d’utiliser Incus 6.0 LTS.
Le support communautaire est disponible sur : https://discuss.linuxcontainers.org
Un support commercial est disponible sur : https://zabbly.com/incus
Les bugs peuvent être signalés sur : https://github.com/lxc/incus/issues
Incus 6.18 est maintenant disponible¶
31 oct. 2025
Introduction¶
L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.18 !
C’est une version assez dense, avec un bon nombre de nouvelles fonctionnalités aux quatre coins du logiciel ; tout le monde devrait donc y trouver son compte !
Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/
Nouvelles fonctionnalités¶
Secrets gérés par systemd¶
Deux nouvelles familles de clefs de configuration permettant de passer des secrets à systemd sont maintenant disponibles, à la fois pour les conteneurs et les machines virtuelles.
Les nouvelles clefs systemd.credential.XYZ et systemd.credential-binary.XYZ permettent respectivement de passer des chaînes de caractères et des données binaires encodées en base64.
stgraber@dakara:~$ incus create images:debian/13 c1
Creating c1
stgraber@dakara:~$ incus create images:debian/13 v1 --vm
Creating v1
stgraber@dakara:~$ incus config set c1 systemd.credential.foo=bar
stgraber@dakara:~$ incus config set v1 systemd.credential.foo=bar
stgraber@dakara:~$ incus start c1 v1
stgraber@dakara:~$ incus exec c1 -- systemd-creds --system cat foo
bar
stgraber@dakara:~$ incus exec v1 -- systemd-creds --system cat foo
bar
Opérations sur les fichiers des volumes¶
Incus 6.13 a introduit le support initial pour des opérations SFTP sur des volumes de stockage personnalisés.
Nous avons étendu l’ensemble des opérations disponibles sur les volumes de stockage personnalisés pour correspondre à celles déjà disponibles dans les instances.
stgraber@dakara:~$ incus storage volume file
Usage:
incus storage volume file [flags]
incus storage volume file [command]
Available Commands:
create Create files and directories in custom vollume
delete Delete files in custom volume
edit Edit files in storage volumes
mount Mount files from custom storage volumes
pull Pull files from custom volumes
push Push files into custom volumes
Export de volumes ISO¶
Les volumes de stockage ISO ont toujours été un peu spéciaux : ils ne peuvent pas être créés, uniquement importés avec incus storage volume import, mais nous n’offrions aucun moyen de les exporter jusque là.
Désormais, incus storage volume export peut être utilisé pour récupérer un ISO depuis Incus.
stgraber@dakara:~$ incus storage volume export default virtio-drivers
Backup exported successfully!
stgraber@dakara:~$ file virtio-drivers.iso
virtio-drivers.iso: ISO 9660 CD-ROM filesystem data 'virtio-win-0.1.271'
Délégation de jetons BPF¶
Incus supporte à présent de déléguer certaines capacités BPF par l’intermédiaire de jetons BPF.
La fonctionnalité est implémentée à l’aide d’un ensemble de clefs de configuration security.bpffs permettant de spécifier les éléments délégués.
Documentation : https://linuxcontainers.org/incus/docs/main/explanation/bpf-tokens/
Support de macOS pour l’agent Incus¶
Incus s’est progressivement amélioré au fil des versions dans sa gestion des VM macOS en x86.
Vous pouvez trouver davantage de détails sur comment virtualiser macOS sur Incus ici : https://github.com/macOS-on-Incus
Cette nouvelle version amène une fonctionnalité intéressante : l’agent Incus peut désormais fonctionner sur macOS. Cela signifie que notre agent supporte maintenant Linux, Windows et macOS, avec des capacités un peu différentes cependant d’un agent à l’autre.
Dans le cas de macOS, nous supportons l’exécution de commandes (en mode interactif et non-interactif), les transferts de fichiers, et même la possibilité de monter du stockage partagé (via 9p). Enfin, l’agent peut renvoyer la plupart des informations du système à Incus.
Pour installer l’agent, assurez-vous que image.os est défini à macOS, puis, depuis l’instance faisant tourner macOS, vous pouvez monter le partage 9p config et y démarrer l’agent.
Carte son VirtIO dans les VM¶
Le support des cartes son VirtIO a été ajouté il y a quelques temps dans QEMU, et nous les avons intégrées à notre ensemble de périphériques inclus par défaut dans les machines virtuelles. Il est important de noter que ce périphérique n’est pas migrable ; ainsi, nous le désactivons pour toutes les instances migrables à chaud.
La carte son virtuelle est connectée à SPICE, permettant à la console SPICE de récupérer les flux audio en plus des flux vidéo VGA.
Notez que Windows ne dispose pas d’un driver adapté pour le moment, donc cette fonctionnalité intéressera principalement les utilisateurs de Linux.
Support du détachement de périphériques USB¶
Les périphériques USB peuvent désormais être conservés dans la configuration des VM tout en restant détachés du système invité. Pour ce faire, il faut définir la propriété attached à false.
stgraber@dakara:~$ incus config device set v1 usb0 attached=false
dns.mode pour les réseaux OVN¶
Les enregistrements DNS gérés par OVN peuvent être désactivés pour les réseaux OVN en définissant dns.mode à none, comme cela pouvait être fait depuis longtemps avec les bridges.
root@server01:~# incus network set default dns.mode=none
root@server01:~#
Modèles d’adresses MAC configurables¶
Le modèle d’adresses MAC peut maintenant être paramétré de manière globale ou locale par projet.
Cela permet aux organisations qui ont acquis leur propre préfixe d’adresses MAC de l’utiliser à la place de la plage par défaut fournie par Zabbly.
Une fois le changement effectué, le nouveau modèle s’appliquera à la création de tous les futurs réseaux et instances.
stgraber@dakara:~$ incus launch images:debian/13 c1
Launching c1
stgraber@dakara:~$ incus info c1 | grep MAC
MAC address: 10:66:6a:d6:80:3b
stgraber@dakara:~$ incus config set network.hwaddr_pattern 00:16:3e:xx:xx:xx
stgraber@dakara:~$ incus launch images:debian/13 c2
Launching c2
stgraber@dakara:~$ incus info c2 | grep MAC
MAC address: 00:16:3e:a4:54:24
Extension de la CLI d’IncusOS¶
L’interface en ligne de commande d’IncusOS, présente sous incus admin os, a été retravaillée pour utiliser du code du dépôt d’IncusOS plutôt que d’implémenter la logique dans le code d’Incus.
La CLI a également été étendue de telle sorte que chaque action de l’API, de l’extinction ou redémarrage du serveur aux actions spécifiques sur le TPM ou encore le stockage, est désormais accessible depuis le client.
stgraber@dakara:~$ incus admin os system
WARNING: The IncusOS API and configuration is subject to change
Usage:
incus admin os system [flags]
incus admin os system [command]
Available Commands:
backup Backup the system
check-update Check for updates
delete-storage-pool Delete the storage pool
edit Edit system configuration
factory-reset Factory reset the system
import-storage-encryption-key Import the storage encryption key
list List system configuration sections
poweroff Power off the system
reboot Reboot the system
restore Restore a system backup
show Show system configuration details
tpm-rebind Rebind the TPM (after using recovery key)
wipe-drive Wipe the drive
Nous prévoyons quelques changements dans la structure du client dans la prochaine version, à l’issue desquels la CLI d’IncusOS pourra être considérée suffisamment stable.
Liste complète des changements¶
Voici une liste complète de tous les changements apportés par cette version :
Liste complète des commits
- api: Add ConfigMap type to better support unmarshaling numbers and bools to map[string]string
- api: Use ConfigMap type for map[string]string
- api: Handle pre initialized targed ConfigMap (default values)
- filter: Add support for api.ConfigMap
- server: Fix test with api.ConfigMap
- doc/rest-api: Refresh swagger YAML
- golangci-lint: Do not require period in Example comments
- doc: Add description for database-client role
- incusd/network/driver: Add support for dns.mode to OVN network
- incusd/network/ovn: Destroy DNS entry in CleanupLogicalSwitchPort
- doc: Update config
- doc: Change command to
snapshot delete - incusd: Use 'Patch' method for PATCH requests
- internal/server: Add tables on sql dump
- incusd: Add tables on sql dump
- incus/admin/sql: Add tables on sql dump
- i18n: Update translation templates
- incus/admin/os: Update for current API prefix
- Translated using Weblate (Portuguese)
- Fixed grammar in README.md
- incus: Add a date format with second granularity
- incus/admin/os: Improve debug log command
- i18n: Update translation templates
- incusd/cluster: Don't use proxy when joining
- incusd/device/usb: Add attached configuration key
- doc: Update metadata
- doc: Remove outdated warning
- incusd/device/disk: Remove dead code
- api: usb_attached
- incusd/storage: Generalize InstanceTarWriter
- incusd/instancewriter: Add raw instance writer
- incusd/storage: Add ISO volume export
- incus: Handle ISO export
- test: Incus now allows ISO export
- incusd/storage/generic: Use proper custom volume size for backup if possible
- i18n: Update translation templates
- api: backup_iso
- incusd/metrics: Always include internal metrics
- incusd/auth: log the error if getting the oidc provider fails
- Fix
file pushcmd help typo - i18n: Update translation templates
- incusd/instance/qemu: Remove attached attribute handling for disks
- incusd/device/disk: Handle attached attribute early
- incusd/server/drivers: Add gendoc for storage config keys
- doc: Include doc for storage configuration from config_options.txt file
- doc: Update metadata
- incusd/storage/lvm: Clarify doc strings
- incusd/storage: Don't skip zeroes on qcow2 unpack to LVM
- incusd/device: Fix gofumpt
- doc: Update config
- Update translations from Weblate
- incusd/network/ovn: Check the correct config on uplink validation
- incusd/instance/qemu: Add support for SPICE audio
- incusd/console: Close remote connection on console disconnect
- Translated using Weblate (Portuguese)
- shared/resources: Fix caching mechanism
- shared/validate: Add IsBase64
- incusd/instance/config: Add systemd.credential. and systemd.credential-binary.
- incusd/instance/qemu: Add support for systemd credentials through SMBIOS-11
- incusd/instance/lxc: Add support for systemd credentials through CREDENTIALS_DIRECTORY
- incusd/instance/lxc: Allow live-updating systemd credentials
- doc: Update configs
- incus-agent: Pass more information to osUmount
- api: instance_systemd_credentials
- doc/wordlist: Update wordlist
- test: Add tests for systemd keys
- incusd/cluster: Disable proxy during cluster join
- gomod: Add gopsutil
- agent/darwin: Initial darwin agent implementation
- doc: Kubernetes and ClusterAPI integration
- doc: Add API to wordlist
- github: Re-enable LINSTOR tests
- internal/server/network: Update libovsdb import path
- Makefile: Update libovsdb command URL
- go.mod: Update libovsdb import path
- internal/server/network/ovn/schema: Update generated schema
- incus-agent/darwin: Split non-darwin-specific logic
- incus-agent/windows: Feature parity with Darwin
- test/mini-oidc: Clarify usage in README.md
- test/mini-oidc: Extract logic from main
- test/mini-oidc: Add RunTest for usage in tests
- test/mini-oidc: Move user file to global var
- test/mini-oidc: Make linter happy
- test/mini-oidc: Make poll interval configurable in tests
- test/mini-oidc: Allow setting expiration for tokens
- test/mini-oidc: Make linter happy
- test/mini-oidc: Fix missing support for device control flow
- incus/admin/os: Add system list command
- shared/cmd: Move from internal/cmd
- cmd: Update for shared/cmd
- incus: Use cli.CheckArgs
- incus-simplestreams: Use cli.CheckArgs
- shared/cmd: Add CheckArgs
- shared/cmd: Add Usage
- incus: Use cli.Usage
- shared/cmd: Add TextEditor
- cmd: Use cli.TextEditor
- i18n: Update translation templates
- incus: Switch to shared IncusOS CLI
- gomod: Update dependencies
- i18n: Update translation templates
- incusd: Use ExtendMetadata when possible
- incusd/instance/qmp: Better protect against write after close
- doc/rest-api: Refresh swagger YAML
- Update translations from weblate
- shared/api: Add 'UsedBy' field to 'ClusterGroup' struct
- incusd/db: Add 'GetClusterGroupMemberInstances' and check cluster group member usage
- incusd: Check if cluster group is in use
- api: Add cluster_group_usedby extension
- doc/rest-api: Refresh swagger YAML
- api: Add bpf_token_delegation extension
- incusd/main_forkbpf: Create forkbpf helper for bpf token delegation.
- incusd/instance: Add bpf token delegation feature.
- doc: Update configs
- doc: Add documentation for bpf token delegation
- incusd/project: Require lowlevel access for bpffs options
- tests: Add test for bpf token delegation
- codespell: Allow attachs (bpffs mount option)
- incusd/instance: Add GuestOS
- incusd/device/disk: Rework OS and architecture detection
- incus-agent/darwin: Implement interactive console
- incusd/instance/qemu: Add Darwin agent files
- incus-agent/darwin: Fix typo in comment
- doc/instance/create: Add details for macOS
- incusd/network: Check if target_address in forward is a broadcast address of the networks subnet
- incusd/network: Check if target_address in forward is the networkID of the networks subnet
- incusd/network: Add doc comment to function; Rename variable to avoid shadowing
- incusd/network: Make linter happy
- make: check if run-parts is installed
- Translated using Weblate (English)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (Spanish)
- Translated using Weblate (Spanish)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (Italian)
- Translated using Weblate (Italian)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Dutch)
- Translated using Weblate (Dutch)
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Russian)
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Portuguese)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Tamil)
- i18n: Update translation templates
- gomod: Refresh for latest IncusOS CLI
- incusd/instance/lxc: Fix handling of credentials on existing instances
- incusd/instance/lxc: Don't apply credentials update on stopped containers
- incusd/auth: Reorder 'EntitlementCanAccessFiles' and 'EntitlementCanConnectSFTP' for clarity
- shared/api: Add lifecycle events for storage volume files management
- incusd/lifecycle: Add lifecycle events for storage volume files management
- incusd/storage: Add support for creating SFTP server for storage volume using forkfile
- incusd: Extract helper function for reuse by storage volumes
- incusd: Add support for file management in storage volumes
- incus/file: Extract helper function for reuse by storage volumes
- incus/storage_volumes: Add support for file management in storage volumes
- client: Add support for file management in storage volumes
- tests: Add tests for storage volume files manipulation
- api: Add 'file_storage_volume' extension
- doc/rest-api: Refresh swagger YAML
- i18n: Update translation templates
- shared/osarch: Add aliases for the various x86_64 versions
- incus/export: Quiesce output when writing to stdout
- i18n: Update translation templates
- build(deps): bump actions/upload-artifact from 4 to 5
- server/operations: Remove project name from operations executed on other nodes
- incusd: Remove remaining project remnants from operations
- shared/validate: Add IsMACPattern
- incusd/config: Add MAC address pattern key
- incusd/project: Add MAC address pattern key
- go.mod: Update github.com/lxc/incus-os/incus-osd
- incus: Support remotes for "admin os" commands
- doc: Update configs
- incusd/instance: Allow customizing MAC address patterns
- incusd/device: Allow customizing MAC address patterns
- incusd/network: Allow customizing MAC address patterns
- api: network_hwaddr_pattern
- test: Add network.hwaddr_pattern tests
- incus/file/pull: Respect target name for symlinks
- incus/file/pull: Allow reading symlink content to stdout
- incus/file/push: Keep remote owner/mode when present and not overriden
- incusd/network/ovn: Fix failure on device stop for networks without uplink
- incusd/network/common: Handle parent field in State
- doc/clustering: Cover CPU baseline calculation
- i18n: Update translations from weblate
- doc/instances: clarify VM definition with abbreviation
- incusd/network/macvlan: Bring up parent interface and check existence on update
- incusd/network/macvlan: Please the static analyzer
- gomod: Update dependencies
- incusd/storage/drivers/lvmcluster: Restrict snapshotting
Documentation¶
La documentation d’Incus peut être consultée sur :
https://linuxcontainers.org/incus/docs/main/
Paquets¶
Incus ne fournit pas de paquet d’installation mais bien un tarball à chaque version. Vous trouverez ci-dessous différentes solutions pour mettre Incus en service.
Installation du serveur Incus sous Linux¶
Incus est disponible sur la plupart des distributions Linux courantes. Vous trouverez des instructions d’installation détaillées dans notre documentation.
https://linuxcontainers.org/incus/docs/main/installing/
Paquet Homebrew du client Incus¶
Le client Incus est disponible sur Homebrew pour Linux et macOS.
https://formulae.brew.sh/formula/incus
Paquet Chocolatey du client Incus¶
Le client Incus est disponible sur Chocolatey pour les utilisateurs de Windows.
https://community.chocolatey.org/packages/incus/6.18.0
Paquet Winget du client Incus¶
Le client Incus est aussi disponible sur Winget pour les utilisateurs de Windows.
https://winstall.app/apps/LinuxContainers.Incus
Support¶
Les versions de fonctionnalité d’Incus ne sont supportées que jusqu’à la sortie de la suivante. Les personnes souhaitant un support plus long et des changements moins fréquents devraient plutôt envisager d’utiliser Incus 6.0 LTS.
Le support communautaire est disponible sur : https://discuss.linuxcontainers.org
Un support commercial est disponible sur : https://zabbly.com/incus
Les bugs peuvent être signalés sur : https://github.com/lxc/incus/issues
Anciennes nouvelles¶
- 26 sept. 2025
- 29 août 2025
- 15 août 2025
- 1 août 2025
- 28 juin 2025
- 30 mai 2025
- 25 avr. 2025
- 4 avr. 2025
- 28 mars 2025
- 28 févr. 2025
- 24 janv. 2025
- 19 déc. 2024
- 13 déc. 2024
- 15 nov. 2024
- 3 oct. 2024
- 17 sept. 2024
- 6 sept. 2024
- 9 août 2024
- 12 juil. 2024
- 28 juin 2024
- 31 mai 2024
- 7 mai 2024
- 4 avr. 2024
- 26 mars 2024
- 23 févr. 2024
- 29 janv. 2024
- 26 janv. 2024
- 21 déc. 2023
- 27 nov. 2023
- 28 oct. 2023
- 7 oct. 2023




