Skip to content

fix: use xcat-compat initrd for Ubuntu pre-16.04.2 ppc64el in copycds#14

Draft
viniciusferrao wants to merge 1 commit into
masterfrom
fix/copycds-ubuntu-ppc64el-compat-initrd
Draft

fix: use xcat-compat initrd for Ubuntu pre-16.04.2 ppc64el in copycds#14
viniciusferrao wants to merge 1 commit into
masterfrom
fix/copycds-ubuntu-ppc64el-compat-initrd

Conversation

@viniciusferrao

Copy link
Copy Markdown
Member

Ubuntu 14.04 through 16.04.1 shipped server ISOs with a ppc64el initrd that cannot PXE boot. Users had to manually download Canonical's mini.iso, extract the netboot initrd, and copy it into the right path.

This automates the workaround using the new xcat-compat package (https://github.com/VersatusHPC/xcat-compat):

  • When copycds detects an affected ISO (Ubuntu ppc64el, version < 16.04.2), it checks for the compat initrd at /opt/xcat/share/xcat/netboot/ubuntu/initrd/ubuntu<ver>.ppc64el.gz
  • If found: copies it to the install path automatically
  • If not found: prints a clear error message with install instructions
  • Also updates the mkinstall error message to reference xcat-compat

The xcat-compat package is optional and only needed for legacy Ubuntu ppc64el provisioning.

Fixes xcat2#5702

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f8c53fd9da

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread xCAT-server/lib/xcat/plugins/debian.pm Outdated

# Ubuntu pre-16.04.2 on ppc64el ships an initrd that cannot PXE boot.
# Use the netboot-capable initrd from the xcat-compat package if available.
if ($arch eq "ppc64el" and $distname =~ /^ubuntu(\d+)\.(\d+)\.?(\d*)/)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Detect affected Ubuntu version from ISO metadata

The compat-initrd workaround in copycd is gated by parsing $distname (/^ubuntu(\d+)\.(\d+)\.?/), but copycds -n/--name explicitly allows operators to provide a custom distro label (see xCAT-client/pods/man8/copycds.8.pod, lines 25-27). For pre-16.04.2 ppc64el media copied with a custom name, this regex check is skipped, so the broken server-ISO initrd is left in place and the provisioning failure this patch targets still occurs. The version gate should be derived from ISO metadata ($ver/$detdistname) rather than a user-overridable name.

Useful? React with 👍 / 👎.

@viniciusferrao viniciusferrao force-pushed the fix/copycds-ubuntu-ppc64el-compat-initrd branch 22 times, most recently from 83d665a to 8bf498d Compare April 29, 2026 22:33
Ubuntu 14.04 through 16.04.1 shipped server ISOs with a ppc64el
initrd that cannot PXE boot. When copycds detects an affected ISO,
it now checks for a netboot-capable initrd from the xcat-compat
package and copies it into the install path automatically.

If the xcat-compat package is not installed, copycds prints a clear
error message with installation instructions instead of silently
leaving a broken netboot setup.

Also update the mkinstall error message to reference xcat-compat.

Fixes xcat2#5702
@viniciusferrao viniciusferrao force-pushed the fix/copycds-ubuntu-ppc64el-compat-initrd branch from 8bf498d to cabf245 Compare April 29, 2026 22:39
@viniciusferrao viniciusferrao marked this pull request as draft May 3, 2026 04:13
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

Successfully merging this pull request may close these issues.

Improve the method that we document to help the user obtain the mini.iso

1 participant