Installation fails if host has no `/run/udev`
- Dominant language
- Rust
- Stars
- 2.3k
- Forks
- 230
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 38
Description
I currently try to build an EFI which can be loaded via HTTPS boot and installs a bootc image (passed via metadata). That worked quite well (though not finished) and during development last week I noticed that `bootc install to-filesystem` fails with the error `Comparing filesystems at /run/udev and /proc/1//run/udev: No such file or directory`. I've rolled the code back to a state which I knew worked previously, but the same error occurred. To test the EFI, I install `quay.io/fedora/fedora-bootc:latest`. Last Monday or so it worked but at the end of the week (I think it was Thursday), the error showed up. Sadly I do not know the working bootc version, but the "broken" one is 1.15.2.
The EFI is based on `docker.io/library/alpine:latest` and the `linux-lts` kernel. I try to keep the dependencies and thus the size low and therefore I use mostly the tools of `busybox` and therefore also `mdev` instead of `udev` or `eudev`. To fetch the image I use `skopeo` and `umoci` to unpack it and then `chroot` to execute `bootc install to-filesystem`. Thus `/proc/1/run/udev` does not exist. The current workaround is to create `/run/udev` as an empty directory on the "host".
**TL;DR/Question**: When installing with `to-filesystem` and the host does not use `udev`, should `bootc` really fail when there is no `/proc/1/run/udev` or just continue?
The part of the code which throws the error (if I am not mistaken): https://github.com/bootc-dev/bootc/blob/60d5461d839a9fbdd5f6dff0bae9199c56181e99/crates/lib/src/install.rs#L1676
Contributor guide
Assessment
This issue has not been assessed yet.