{"id":33119231,"url":"https://github.com/canonical/core-initrd","last_synced_at":"2025-11-19T21:02:07.308Z","repository":{"id":37086917,"uuid":"279326293","full_name":"canonical/core-initrd","owner":"canonical","description":"initrd implementation in ubuntu core","archived":false,"fork":false,"pushed_at":"2025-09-18T12:51:00.000Z","size":16327,"stargazers_count":15,"open_issues_count":34,"forks_count":32,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-10-21T13:40:06.577Z","etag":null,"topics":["initramfs","initrd"],"latest_commit_sha":null,"homepage":"https://ubuntu.com/core/docs","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/canonical.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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,"zenodo":null}},"created_at":"2020-07-13T14:31:05.000Z","updated_at":"2025-08-13T22:32:20.000Z","dependencies_parsed_at":"2024-01-10T16:56:15.351Z","dependency_job_id":"5834d81e-8cb8-4f47-9d88-898b2475ef24","html_url":"https://github.com/canonical/core-initrd","commit_stats":null,"previous_names":["canonical/core-initrd","snapcore/core-initrd"],"tags_count":76,"template":false,"template_full_name":null,"purl":"pkg:github/canonical/core-initrd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fcore-initrd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fcore-initrd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fcore-initrd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fcore-initrd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/canonical","download_url":"https://codeload.github.com/canonical/core-initrd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fcore-initrd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285327645,"owners_count":27152947,"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","status":"online","status_checked_at":"2025-11-19T02:00:05.673Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["initramfs","initrd"],"created_at":"2025-11-15T04:00:29.680Z","updated_at":"2025-11-19T21:02:07.303Z","avatar_url":"https://github.com/canonical.png","language":"Python","readme":"# Initrd for Ubuntu Core\n\nThis repository contains source code to build initial ramdisk used in Ubuntu Core Embedded Linux OS.\n\n# Purpose\n\nSee: https://en.wikipedia.org/wiki/Initial_ramdisk\n\n# Architecture\n\nIn Ubuntu Core, initrd.img file is part of Kernel Snap as a binary. This file is brought to Kernel snap from a PPA. See [integration](#integrating-with-kernel-snap) below.\n\nIn UC20 and further, initrd is migrated from script based\nimplementation (UC16/18) to **systemd based**.  See the [architecture\ndocument](ARCHITECTURE.md) for more details.\n\n# Building initrd for Ubuntu Core\n\nTODO: Write documentation for how to build initrd locally\n\n## Prequisities\n\n## Preparation\n\n## Building\n\n# Testing \u0026 Debugging\n\nSee [Hacking](HACKING.md)\n\n# Releasing\n\nThe UC initrd is included in kernel snaps. However, the process to get\nit inside the kernel snap is not immediate and consists of a few\nsteps. First, we need to build the `ubuntu-core-initramfs`\ndebian package in the [snappy-dev/image\nPPA](https://launchpad.net/~snappy-dev/+archive/ubuntu/image) by\nfollowing these steps:\n\n1. Update the changelog with latest changes since last release (use `dch -i` for this)\n1. Commit using `debcommit --release -a` which will commit the changelog update \u0026 tag the release\n1. Propose a PR to the repo with the new changelog, get it reviewed and merged\n1. Push the tag to the repository with the new version (GitHub pull requests do not update tags)\n1. Build the source package by running (note that the clean command\n   removes all untracked files, including subtrees with .git folders)\n\n        git clean -ffdx\n        gbp buildpackage -S -sa -d --git-ignore-branch\n\n1. Compare with the latest package that was uploaded to the snappy-dev\nPPA to make sure that the changes are correct.  For this, you can\ndownload the .dsc file and the tarball from the PPA, then run debdiff\nto find out the differences:\n\n        dget https://launchpad.net/~snappy-dev/+archive/ubuntu/image/+sourcefiles/ubuntu-core-initramfs/\u003cold_version\u003e/ubuntu-core-initramfs_\u003cold_version\u003e.dsc\n        debdiff ubuntu-core-initramfs_\u003cold_version\u003e.dsc ubuntu-core-initramfs_\u003cnew_version\u003e.dsc \u003e diff.txt\n\n1. Upload, or request sponsorship, to the snappy-dev PPA\n\n        dput ppa:snappy-dev/image ubuntu-core-initramfs_\u003cnew_version\u003e_source.changes\n\n1. Make sure that the package has been built correctly. If not, make\n   changes appropriately and repeat these steps, including creating a\n   new changelog entry.\n\nNote that `ubuntu-core-initramfs` gets some files from its build\ndependencies while being built, including for instance\n`snap-bootstrap`, so we need to make sure that the snappy-dev PPA\nalready contains the desired version of the snapd deb package (or\nothers) when we upload the package.\n\nAfter this, the initrd changes will be included in future kernel snaps\nreleases automatically, following the usual 3 weeks cadence, as the\nsnappy-dev PPA is included when these build happen.\n\n# Updating systemd\n\ngit-subtree is used to synchronize with Ubuntu systemd. To update it, run\n\n    git subtree pull --prefix vendor/systemd https://git.launchpad.net/ubuntu/+source/systemd ubuntu/\u003cseries\u003e-updates --squash\n\nwhere series is the ubuntu series. Note that we are pulling from the\nupdates pocket, that is usually what we want, but it could be\ndifferent depending on the stage of development of the series.\n\nTo create the subtree from scratch, which is useful when bumping to a\nnew series, run\n\n    git rm -r vendor/systemd\n    git commit -a -m \"Remove \u003cold_series\u003e systemd\"\n    git subtree add --prefix vendor/systemd https://git.launchpad.net/ubuntu/+source/systemd ubuntu/\u003cseries\u003e --squash\n\nwhere we use the default pocket although again it might vary.\n\n# Bootchart\n\nIt is possible to enable bootcharts by adding `ubuntu_core.bootchart`\nto the kernel command line. The sample collector will run until the\nsystemd switches root, and the chart will be saved in `/run/log`. If\nbootcharts are also enabled for the core snap, that file will be\neventually moved to the `ubuntu-save` partition (see Core snap\ndocumentation).\n","funding_links":[],"categories":["Minimal rootfs"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanonical%2Fcore-initrd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanonical%2Fcore-initrd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanonical%2Fcore-initrd/lists"}