bootc-dev / bootc-dev/bootc

Installation fails if host has no `/run/udev`

Aperta
#2,239 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
triaged
Lingua principale
Rust
Stelle
2.3k
Fork
230
Merge medio
3g 3h
PR unite (30g)
36

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start at crates/lib/src/install.rs around line 1676 and reproduce the failure with bootc install to-filesystem on a host without /proc/1/run/udev. Trace the filesystem comparison and determine the expected behavior for a missing udev path, then add or update regression coverage and verify installation with the Alpine/mdev setup described.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
operating-systems
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
52/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.