Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Goals #1

Open
5 of 7 tasks
BobyMCbobs opened this issue Oct 23, 2023 · 12 comments
Open
5 of 7 tasks

Goals #1

BobyMCbobs opened this issue Oct 23, 2023 · 12 comments
Assignees

Comments

@BobyMCbobs
Copy link
Member

BobyMCbobs commented Oct 23, 2023

  • build a bootable Fedora/OSTree based image
  • include the following software
    • Scratch
    • Sonic Pi
    • Minecraft Forge
    • an IDE?
  • include a PDF or webpage for course instructions
    • webserver?
  • current issues include
    • ublue images don’t cache OS container image in ISO (except some Bazzite images 👀)
    • Flatpaks install post-install
    • RPM for Scratch is tricky
    • building Sonic Pi from source is broken

TODO

  • generate a raw image or write to a disk
  • have an ii user pre-installed with a password of ii
  • auto-login the ii user with gdm
  • auto-expand root partition to size of disk
  • ensure location services + auto-timezone are enabled by default
  • ensure Flatpak applications are either pre-installed or auto-install on boot
@BobyMCbobs
Copy link
Member Author

some things that are unknown to me are

  • what type of machines will the image be deployed to?
  • what's the level of internet access?

@BobyMCbobs
Copy link
Member Author

Been making progress with using osbuild/osbuild-deploy-container. A pre-installed image is able to be produced which is bootable in a VM.
I've modified the program to produce raw images to try and boot on hardware but after selecting the boot entry in the BIOS/UEFI, it stops at a blank screen; tracking it here on a ublue discourse thread

@BobyMCbobs
Copy link
Member Author

@BobyMCbobs
Copy link
Member Author

This adjustment didn't yield any results

@BobyMCbobs
Copy link
Member Author

The grub config in the rendered manifest looks like

...
{
          "type": "org.osbuild.grub2",
          "options": {
            "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
            "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
            "kernel_opts": "rw console=tty0 console=ttyS0",
            "legacy": "i386-pc",
            "uefi": {
              "vendor": "fedora",
              "install": true,
              "unified": true
            },
            "greenboot": true,
            "write_cmdline": false,
            "config": {
              "default": "saved",
              "terminal_output": [
                "console"
              ],
              "timeout": 1
            }
          },
          "mounts": [
            {
              "name": "ostree-ostree/1/1/0",
              "type": "org.osbuild.ostree.deployment",
              "options": {
                "deployment": {
                  "osname": "default",
                  "ref": "ostree/1/1/0",
                  "serial": 0
                }
              }
            }
          ]
        },
...

meanwhile in the container mpp config it is a bit different
https://github.com/osbuild/osbuild/blob/7b201db5a76a40c50cee6f17bb4ca25ff96d3e27/test/data/manifests/fedora-coreos-container.mpp.yaml#L80

things like

  • no greenboot
  • no write_defaults
  • partition labels (bootfs, rootfs)

@BobyMCbobs
Copy link
Member Author

bootc now installs successfully to disk, which boots. There was something wrong with the integration between bootc and bootupctl or just bootupctl.
There's some difference between how bootc and ostree-deploy-container install the grub, the latter now booting.

@BobyMCbobs
Copy link
Member Author

Managed to get an ii user pre-installed, though there's issues around the home directory not existing after boot, which makes sense.
Managed to get Flatpaks installing after boot, though there's some issues around first network connection happening.

https://github.com/BobyMCbobs/ublue-os-startingpoint/compare/07544d7d40dbe639982267ea4b0c706939779ab6..43f591643c58f3b0ce22348d6a29181f6cda3391

@BobyMCbobs
Copy link
Member Author

I laid out almost the entire install process of bootc as shell commands to try and figure out the difference between osbuild-deploy-container and bootc, see

http://universal-blue.discourse.group/t/building-a-bootable-qcow2-virtual-disk-image-from-an-oci-ostree-image/67/13?u=calebwoodbine

this info allows me to reinstall the bootloader on top of a osbuild-deploy-container installed disk to get it to boot on my test system.
I would like to work with the maintainers to ensure that the bootloader is installed as expected.

@BobyMCbobs
Copy link
Member Author

A todo list is now in the top comment.

@BobyMCbobs
Copy link
Member Author

Managed to get a successful build with the refreshed and updated https://github.com/osbuild/bootc-image-builder
for quay.io/fedora-ostree-desktops/silverblue:39 and ghcr.io/bobymcbobs/u:latest.

There’s currently a fixed/non-variable 2GB root file system
https://github.com/osbuild/bootc-image-builder/blob/aaa2f5b/bib/cmd/bootc-image-builder/partition_tables.go#L53
which will cause limitations for some images. Exploring options there, such as auto-sizing the root filesystem for the build.

@BobyMCbobs
Copy link
Member Author

Currently trying to resolve the password not being set for the ii user after first boot.

Seeing the error

multi-user.target: Job u-firstboot-finalise.service/start deleted to break ordering cycle starting with multi-user.target/start

@BobyMCbobs
Copy link
Member Author

Seeing these logs from u-firstboot-finalise.service

...
... /usr/lib/u-firstboot/install-post.sh: line 12: /usr/sbin/chpasswd: Permission denied
...

This error doesn't make sense to me yet. The program does exist and is executable.
On one occasion, I managed to restart the service and it completed the job.
Having a tricky time trying to find the right set of After and WantedBy for the finalise service to make it run once at least gdm.service begins.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants