I have reproduced this problem on a clean install on a new physical machine. Sorry for the delay, I was away and also needed to grab a spare machine to test on. FYI I am using Arch Linux with ZFS:
$ uname -a
Linux testlap 6.9.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000 x86_64 GNU/Linux
$ incus version
Client version: 6.4
Server version: 6.4
$ zfs version
zfs-2.2.4-1
zfs-kmod-2.2.4-1
I followed similar steps to @simos and got the same error. The reason that I see this error is because my /dev
is a small tmpfs and Incus tries to write the iso as a regular file onto /dev
and it does not fit.
$ findmnt /dev
TARGET SOURCE FSTYPE OPTIONS
/dev devtmpfs devtmpfs rw,nosuid,size=4096k,nr_inodes=4080244,mode=755,inode64
$ df -h /dev
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
I set up Incus exactly as @simos illustrated:
$ incus admin init
Would you like to use clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]:
Name of the storage backend to use (zfs, dir) [default=zfs]:
Create a new ZFS pool? (yes/no) [default=yes]: no
Name of the existing ZFS pool or dataset: zos/incus
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=incusbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
Would you like the server to be available over the network? (yes/no) [default=no]: yes
Address to bind to (not including port) [default=all]:
Port to bind to [default=8443]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]:
Would you like a YAML "init" preseed to be printed? (yes/no) [default=no]:
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
zos 3.09G 919G 24K none
zos/arch 3.09G 919G 3.08G none
zos/incus 288K 919G 24K legacy
zos/incus/buckets 24K 919G 24K legacy
zos/incus/containers 24K 919G 24K legacy
zos/incus/custom 24K 919G 24K legacy
zos/incus/deleted 144K 919G 24K legacy
zos/incus/deleted/buckets 24K 919G 24K legacy
zos/incus/deleted/containers 24K 919G 24K legacy
zos/incus/deleted/custom 24K 919G 24K legacy
zos/incus/deleted/images 24K 919G 24K legacy
zos/incus/deleted/virtual-machines 24K 919G 24K legacy
zos/incus/images 24K 919G 24K legacy
zos/incus/virtual-machines 24K 919G 24K legacy
$ incus storage list
+---------+--------+-------------+---------+---------+
| NAME | DRIVER | DESCRIPTION | USED BY | STATE |
+---------+--------+-------------+---------+---------+
| default | zfs | | 1 | CREATED |
+---------+--------+-------------+---------+---------+
I then try to import an iso (notice this isn’t a tiny iso; it’s 1.2G):
$ incus storage volume import default archlinux-2024.08.03-x86_64.iso archlinux-2024.08.03-x86_64 --type iso
Error: Failed creating custom volume from ISO: Failed creating volume: write /dev/zvol/zos/incus/custom/default_archlinux-2024.08.03-x86_64.iso: no space left on device
I believe this happens because, for some reason, Incus is trying to write the iso to /dev
as a regular file and it doesn’t fit:
$ df -h /dev
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 4.0M 0 100% /dev
$ ls -l /dev/zvol/zos/incus/custom/default_archlinux-2024.08.03-x86_64.iso
lrwxrwxrwx 1 root root 15 Sep 1 09:28 /dev/zvol/zos/incus/custom/default_archlinux-2024.08.03-x86_64.iso -> ../../../../zd0
$ ls -l /dev/zd0
-rw------- 1 root root 4194304 Sep 1 09:28 /dev/zd0
$ file /dev/zd0
/dev/zd0: regular file, no read permission
If @simos could you check if your imported iso is also a regular file on /dev
?
I don’t think I have any strange setup - this is a straight install from an Arch Linux ISO (updated to add zfs) and the only thing added beyond the base system is Incus.
I’ll keep this machine available to do more troubleshooting.