bootc-dev / bootc-dev/bootc

How do I use zfs driver for podman without breaking bootc?

Open
#1,677 2 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
Rust
Stars
2.3k
Forks
230
Avg merge
3d 12h
Merged PRs (30d)
38

Description

I've configured my system to use `zfs` driver for podman storage:

/etc/containers/storage.conf:
```toml
[storage]
driver = "zfs"
graphroot = "/srv/containers"

[storage.options.zfs]
fsname = "srv/containers"
```

Turns out, this makes bootc complain about the extra storage it keeps for logically bound images:

```
Deploying: done (7 seconds)
error: Upgrading: Staging: Pulling bound images: Creating imgstorage: Initializing images: Subprocess failed: ExitStatus(unix_wait_status(32000))
time="2025-10-08T01:32:08+01:00" level=error msg="No zfs dataset found for root" backingFS=tmpfs root=/run/bootc/storage storage-driver=zfs
Error: configure storage: no zfs dataset found for rootdir '/run/bootc/storage': prerequisites for driver not satisfied (wrong filesystem?)
```

As far as I understand bootc keeps an additional storage area, that is going to be initialized the first time it's used. With `driver=zfs` podman can't use that location, as it's on `tmpfs`.

if I run `STORAGE_DRIVER=overlay bootc update` the extra storage area is initialized as `overlay`, and subsequent calls work fine, as the initialized storage remembers its type.

Do you think bootc should override `STORAGE_DRIVER=overlay` in its calls?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.