https://github.com/flatcar/init
Flatcar boot files to accommodate the systemd boot
https://github.com/flatcar/init
Last synced: 2 months ago
JSON representation
Flatcar boot files to accommodate the systemd boot
- Host: GitHub
- URL: https://github.com/flatcar/init
- Owner: flatcar
- License: bsd-3-clause
- Created: 2018-03-05T14:42:55.000Z (over 8 years ago)
- Default Branch: flatcar-master
- Last Pushed: 2025-12-13T14:53:56.000Z (6 months ago)
- Last Synced: 2025-12-15T07:31:02.312Z (6 months ago)
- Language: Shell
- Homepage: https://github.com/flatcar-linux/flatcar/issues
- Size: 722 KB
- Stars: 10
- Watchers: 13
- Forks: 25
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: changelog/bugfixes/2022-01-14-enable-icmpv6-router-adverts.md
- License: LICENSE
- Code of conduct: code-of-conduct.md
- Codeowners: CODEOWNERS
- Notice: NOTICE
- Maintainers: MAINTAINERS.md
- Dco: DCO
Awesome Lists containing this project
README
[](https://www.flatcar.org/)
[](https://app.element.io/#/room/#flatcar:matrix.org)
[](https://kubernetes.slack.com/archives/C03GQ8B5XNJ)
[](https://x.com/flatcar)
[](https://hachyderm.io/@flatcar)
[](https://bsky.app/profile/flatcar.org)
# System Initialization for Flatcar Container Linux
Flatcar uses systemd for init and process management. This repo is
divided into three collections of files:
* configs: Customized daemon configuration files, usually installed into
`/etc` but really the sky is the limit there.
* scripts: Helper scripts for init and service startup. These are generally to
be used as systemd oneshot services and installed into `/usr/lib/flatcar`.
* systemd: Unit files for mount points, our helper scripts, or other services
that don't install their own unit files.
The coreos-base/coreos-init ebuild handles the install process.
## Important Steps
A few notes on things that must happen which are unique to Flatcar.
* resize btrfs: Support easy VM growth by checking if there is unused space at
the end of the disk and expanding the filesystem to use it.
* mount `/`: This directory can be completely empty.
* initialize `/`: The `/` partition can be completely formatted by the
user. Run systemd-tmpfiles to set everything up into a known state.
* mount `/usr`: The entire distro lives in this directory.
* mount `/oem`: If an OEM is available on disk make sure it gets mounted here.
* generate ssh keys: The stock sshd units do not handle this so we need to.