Skip to content

fix: default DISK_IO to native so QEMU boots on kernels before 5.12 - #7

Merged
vaggeliskls merged 1 commit into
mainfrom
fix/disk-io-native
Oct 7, 2026
Merged

vaggeliskls merged 1 commit into
mainfrom
fix/disk-io-native

Conversation

@vaggeliskls

@vaggeliskls vaggeliskls commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Current Behaviour

On a host with a kernel older than 5.12 (Ubuntu 20.04 ships 5.4) the first start ends right after "Booting Windows using QEMU":

qemu-system-x86_64: Failed to initialize io_uring: Cannot allocate memory
❯ ERROR: QEMU exited unexpectedly!

and the container restarts in a loop. dockur 6.06 lets QEMU 11 choose io_uring for disk I/O, whose buffers are charged against the container's locked-memory limit on those kernels, and Docker caps that at 64 KB.

Also, storage/ and shared/ are written by the container as root, so the README's "delete storage/" instructions fail for a normal user.

Expected Behaviour

  • docker-compose.yml sets DISK_IO to native, the Linux AIO backend that works on every kernel. It can be overridden from .env; io_uring remains available on kernels 5.12 and newer.
  • .env.example and the README table document the three values and when io_uring is safe.
  • The "start over" and Development instructions use sudo rm -rf storage shared.

docker compose config passes. The setting maps to QEMU's aio=native, confirmed in dockur's disk.sh. Not yet confirmed on the affected host at the time of merging; the host is being re-run with this setting.

dockur 6.06 lets QEMU 11 pick io_uring, which on older kernels (Ubuntu
20.04's 5.4 among them) fails at boot with "Failed to initialize io_uring:
Cannot allocate memory" because the buffers count against the container's
64 KB memlock limit. native works everywhere; io_uring stays available
through DISK_IO in .env.

README: storage/ and shared/ are written by the container as root, so the
"start over" instructions now use sudo.
@vaggeliskls
vaggeliskls merged commit e3b5fac into main Oct 7, 2026
1 check passed
@vaggeliskls
vaggeliskls deleted the fix/disk-io-native branch October 7, 2026 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant