{"id":13413769,"url":"https://github.com/anatol/booster","last_synced_at":"2025-05-15T11:05:57.800Z","repository":{"id":37619730,"uuid":"320508334","full_name":"anatol/booster","owner":"anatol","description":"Fast and secure initramfs generator","archived":false,"fork":false,"pushed_at":"2025-03-15T22:28:34.000Z","size":9451,"stargazers_count":562,"open_issues_count":71,"forks_count":48,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-14T19:57:10.240Z","etag":null,"topics":["boot","initramfs","linux"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anatol.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-11T08:08:14.000Z","updated_at":"2025-04-01T06:14:49.000Z","dependencies_parsed_at":"2023-02-10T19:15:42.969Z","dependency_job_id":"1082607a-e92e-40bd-8c3f-840264b7fdd9","html_url":"https://github.com/anatol/booster","commit_stats":{"total_commits":430,"total_committers":25,"mean_commits":17.2,"dds":"0.12558139534883717","last_synced_commit":"6df7c60694103287bd53877399a3cbca4490c820"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anatol%2Fbooster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anatol%2Fbooster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anatol%2Fbooster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anatol%2Fbooster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anatol","download_url":"https://codeload.github.com/anatol/booster/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328385,"owners_count":22052632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boot","initramfs","linux"],"created_at":"2024-07-30T20:01:48.723Z","updated_at":"2025-05-15T11:05:57.781Z","avatar_url":"https://github.com/anatol.png","language":"Go","funding_links":[],"categories":["Security","Projects","Go","安全"],"sub_categories":["HTTP Clients","HTTP客户端"],"readme":"# Booster - fast and secure initramfs generator\n\n![Booster initramfs generator](docs/booster.png)\n\nInitramfs is a specially crafted small root filesystem that mounted at the early stages of Linux OS boot process.\nThis initramfs among other things is responsible for unlocking encrypted partitions and mounting it as a root filesystem.\n\nBooster is a tool to create such early boot images. Booster is made with speed and full disk encryption use-case in mind.\n\nBooster advantages:\n * Fast image build time and fast boot time.\n * Out-of-box support for full disk encryption setup.\n * [Clevis](https://github.com/latchset/clevis/) style data binding. The encrypted filesystem can be bound\n   to TPM2 chip or to a network service. This helps to unlock the drive automatically but only if the TPM2/network service\n   presents.\n * [Systemd-cryptenroll](http://0pointer.net/blog/unlocking-luks2-volumes-with-tpm2-fido2-pkcs11-security-hardware-on-systemd-248.html)\n   type of binding. Booster is able to detect and unlock systemd-fido2 and systemd-tpm2 style partitions.\n * Supports [autodiscoverable root partition](https://systemd.io/DISCOVERABLE_PARTITIONS/)\n * Easy to configure.\n * Automatic host configuration discovery. This helps to create minimalistic images specific for the current host.\n\nThere are other initramfs generators similar to booster: [mkinitcpio](https://git.archlinux.org/mkinitcpio.git/) and [dracut](https://dracut.wiki.kernel.org/index.php/Main_Page).\n\n### Install\n#### Arch Linux\nInstall [booster](https://archlinux.org/packages/extra/x86_64/booster/) package from the official repository.\n\nAt the installation time this package will create a number of booster images in your `/boot/` directory:\n```shell\n$ ls -lh /boot/booster-*.img\n-rwxr-xr-x 1 root root 3.9M Dec 10 20:51 /boot/booster-linux.img\n```\n\n#### Void Linux\nInstall booster with `xbps-install -S booster`.\n\nRun `xbps-reconfigure -f linux` to create the initramfs for a previously installed kernel.\n\n#### Alpine Linux\nInstall booster using `apk add booster`.\n\nRefer to `/usr/share/doc/booster/README.alpine` for bootloader configuration instructions (which depend on the desired setup).\n\n#### Manual\nOr optionally the image can be generated manually as `booster build mybooster.img`. Note that by default booster generates\nhost specific images with minimum binaries needed for the current host. Providing `--universal` flag to `booster` tool\nwill add more modules and tools and the result image will be bigger.\n\nOnce the image is generated it is time to configure the bootloader.\n\n### Usage\nFor usage instructions please see booster manpage using `man booster` or the same document [available online](docs/manpage.md).\n\n### Build\nThe project consists of 3 components:\n * `init` binary that runs as a part of your machine boot process. It is going to be the very first user process run at your machine.\n * `generator` tool that creates ramfs image with all components needed to boot the computer\n * `integration_tests` tests that involve all components and use QEMU to boot from a generated image\n\nThese components use standard Golang tooling. To build any part do `go build`, to run tests do `go test`.\n\n### Run tests\n ```bash\ncd {init,generator,integration_tests}\ngo test -v\n ```\n\n### Credits\nWork on this project has been started as a part of Twitter's hack week. Huge thanks to my employer for its support\nof open-source development. Special thanks to [Ian Brown](https://twitter.com/igb).\n\nBooster architecture has been inspired by Michael Stapelberg's project called [distri](https://distr1.org/).\nInitial version of booster borrowed a lot of ideas from the distri's initramfs generator.\n\n### Licence\nSee [license](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanatol%2Fbooster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanatol%2Fbooster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanatol%2Fbooster/lists"}