Comments (7)
Sure, but that's a generic Ignition code which also needs to handle e.g. the OpenSUSE thingy.
I said this somewhere else but it is for sure actively mind-melting that we need to handle and consider:
- FCOS using both Ignition and OSTree
- Silverblue/(older FIoT and others) using OSTree but not Ignition
- OpenSuse MicroOS using Ignition but not OSTree
- A whole lot of other distributions (traditional Fedora/RHEL etc.) using neither
from fedora-coreos-config.
I said this somewhere else but it is for sure actively mind-melting
You have no idea :)
from fedora-coreos-config.
Some nuance that we need to consider: our *.mount
units use [email protected]
, which does a BindsTo
on the device [1]. If the device changes underneath, then the unit fails and the device is unmounted. This causes errors like:
ostree[40698]: error: Unexpected state: /run/ostree-booted found, but no /boot/loader directory
[1] https://github.com/systemd/systemd/blob/master/units/systemd-fsck%40.service.in#L14
from fedora-coreos-config.
So for root, I think we're agreed having it be overridable via karg (and that actually works today already).
I can see wanting the same thing for boot on complex devices. So then our generator would just check first to see if a boot=
karg is given and generate a boot mount from that before falling back to /dev/disk/by-label/boot
?
from fedora-coreos-config.
Colin also had an interesting idea here on finding boot from what GRUB injects already, which would be really cool. Though I'm not sure how it'd translate to complex devices (e.g. if you boot on multipath, then you might actually be booting on one of the constituent devices, right?)
from fedora-coreos-config.
Aside but I'm pretty sure
ostree[40698]: error: Unexpected state: /run/ostree-booted found, but no /boot/loader directory
isn't related - that's in the real root (in the case you're referencing during shutdown). The only bit of ostree-the-code that runs in the initramfs is ostree-prepare-root.service.
On second boot [6] has no dependencies on the actual device being there.
Sure, but that's a generic Ignition code which also needs to handle e.g. the OpenSUSE thingy. In this repo we use
which definitely has the requires, right?
@cgwalters suggested that for second boot we use explicit kargs of root=... which could address this issue.
Right, I think that's the simplest and even more importantly - it's basically the default for how most Linux systems work. It's definitely what Anaconda ends up using for example. We'd just be using labels to bootstrap.
from fedora-coreos-config.
I think this is basically fixed, for complex root we inject root=
nowadays.
from fedora-coreos-config.
Related Issues (20)
- s390x: clhm.ignition-warnings test is failling because fetching ignition via virtio block device is still experimental HOT 6
- Find a safer alternative to check unit status HOT 1
- Add kola test to check for initrd udev rules HOT 1
- Make sure that we do not ship broken symlinks HOT 17
- Stop excluding `cowsay` HOT 3
- Add an allowlist test for non-root owned files and ensure their UID/GID are statically allocated HOT 9
- bad permissions on /etc/sudoers.d/coreos-sudo-group HOT 1
- Sharing information between FCOS and SCOS/RHCOS9 HOT 6
- adjust buildroot container to work same as cosa HOT 5
- tests: Convert to new "YAML format" for kola config
- Fix ShellCheck errors
- Add space after `!` in kola YAML fields that want to negate semantics
- Add kola test to verify change of SELinux to permissive mode
- Add kola test that uses a proxy and ostree
- Move downgrade test into separate CI job HOT 3
- Compose an ostree commit by rpm-ostree failed HOT 1
- Add test for big disks on multipath
- rpm-ostree install behavior change -> update tests
- s390x: ext.config.disks.lvmdevices fails ocassionally HOT 2
- Document how to override `exclude-packages`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fedora-coreos-config.