[Bug 2154055] [NEW] --bootloader grub still looks for grub-legacy
Proman4713
2154055 at bugs.launchpad.net
Fri May 22 23:47:15 UTC 2026
Public bug reported:
Setting the `--bootloader grub` argument, as per the [manpage](https://manpages.ubuntu.com/manpages/resolute/man1/lb_config.1.html#bootloader), makes the build process fail:
```
[2026-05-22 23:32:56] lb_binary_grub --verbose
P: Begin installing grub...
Reading package lists...
Building dependency tree...
Reading state information...
Package grub-legacy is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32
grub-efi-amd64
E: Package 'grub-legacy' has no installation candidate
P: Begin unmounting filesystems...
P: Saving caches...
Reading package lists...
Building dependency tree...
Reading state information...
Error: Process completed with exit code 100.
```
It seems that even on Ubuntu 26.04 'Resolute Raccoon' as a build environment, the `live-build` package still assumes packages such as `grub-legacy`. Here are my system details:
- Build Environment: Ubuntu 26.04 Docker container
- Target ISO: Ubuntu 26.04
- Architecture (host and target): amd64
Here is my `lb config` command:
```
lb config \
--mode ubuntu \
--bootstrap debootstrap \
--bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \
--distribution resolute \
--parent-distribution resolute \
--architectures amd64 \
--archive-areas "main restricted universe multiverse" \
--parent-archive-areas "main restricted universe multiverse" \
--mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \
--mirror-binary http://archive.ubuntu.com/ubuntu/ \
--mirror-binary-security http://security.ubuntu.com/ubuntu/ \
--mirror-chroot http://archive.ubuntu.com/ubuntu/ \
--mirror-chroot-security http://security.ubuntu.com/ubuntu/ \
--bootloader grub \
--bootappend-live "boot=casper username=ubuntu quiet splash" \
--initramfs casper \
--binary-images iso-hybrid \
--iso-application "Utile OS Live" \
--iso-volume "Utile OS 26 amd64" \
--iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; proman4713 at gmail.com' \
--memtest none
```
For context, I disabled memtest because `live-build` was *also* looking
for an outdated `.bin` suffix for the memtest image, which is no longer
accurate. But that's a bug for another day.
Considering this is a Docker container, I upgrade all packages and
install the latest version of `live-build` on every run, so I'm sure of
that.
Note that upstream's
[lb_config](https://manpages.debian.org/testing/live-
build/lb_config.1.en.html) contains different arguments, with different
pluralisations, and supports multiple bootloaders with the
`--bootloaders` argument. I assume that Ubuntu's version already deals
with multiple aspects like `--initramfs casper`, but it seems that
downstream is outdated.
Also note that there is no real solution, either: Leaving the default `syslinux` value also causes an error:
```
[2026-05-22 21:00:00] lb_binary_syslinux --verbose
P: Begin installing syslinux...
Reading package lists...
Building dependency tree...
Reading state information...
Package gfxboot-theme-ubuntu is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Unable to locate package syslinux-themes-ubuntu-oneiric
E: Package 'gfxboot-theme-ubuntu' has no installation candidate
P: Begin unmounting filesystems...
P: Saving caches...
Reading package lists...
Building dependency tree...
Reading state information...
Error: Process completed with exit code 100.
```
Oneiric was Ubuntu **11.10**, released in 2011!
I am surprised by the scarce documentation and availability on how
Ubuntu is actually made. I've read a ton of pages at
https://documentation.ubuntu.com/ and https://help.ubuntu.com/ and have
barely reached an understanding of how Ubuntu produces its ISOs
(`germinate`, `live-build`, `livecd-rootfs`, and `debootstrap` are all
mentioned in totally isolated contexts). Although I am doing this
research to create a derivative, I'm still interested in Ubuntu as it's
still my go-to distribution. The 'derivative' is just an educational
project, so the benefit of Ubuntu itself is way more important to me.
I've spent most of today experimenting with `live-build` to see if I can
produce a basic Ubuntu ISO (no layered squashed filesystems, which was
also a pain point to understand, but at least something functional). My
code is available at https://github.com/Proman4713/Utile-OS (I
previously used to extract and modify a base Ubuntu ISO; I am migrating
to live-build).
** Affects: live-build (Ubuntu)
Importance: Undecided
Status: New
** Tags: fixed-upstream resolute
** Description changed:
Setting the `--bootloader grub` argument, as per the [manpage](https://manpages.ubuntu.com/manpages/resolute/man1/lb_config.1.html#bootloader), makes the build process fail:
```
[2026-05-22 23:32:56] lb_binary_grub --verbose
P: Begin installing grub...
Reading package lists...
Building dependency tree...
Reading state information...
Package grub-legacy is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
- grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32
- grub-efi-amd64
+ grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32
+ grub-efi-amd64
E: Package 'grub-legacy' has no installation candidate
P: Begin unmounting filesystems...
P: Saving caches...
Reading package lists...
Building dependency tree...
Reading state information...
Error: Process completed with exit code 100.
```
It seems that even on Ubuntu 26.04 'Resolute Raccoon' as a build environment, the `live-build` package still assumes packages such as `grub-legacy`. Here are my system details:
- Build Environment: Ubuntu 26.04 Docker container
- Target ISO: Ubuntu 26.04
- Architecture (host and target): amd64
Here is my `lb config` command:
```
lb config \
- --mode ubuntu \
- --bootstrap debootstrap \
- --bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \
- --distribution resolute \
- --parent-distribution resolute \
- --architectures amd64 \
- --archive-areas "main restricted universe multiverse" \
- --parent-archive-areas "main restricted universe multiverse" \
- --mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \
- --mirror-binary http://archive.ubuntu.com/ubuntu/ \
- --mirror-binary-security http://security.ubuntu.com/ubuntu/ \
- --mirror-chroot http://archive.ubuntu.com/ubuntu/ \
- --mirror-chroot-security http://security.ubuntu.com/ubuntu/ \
- --bootloader grub \
- --bootappend-live "boot=casper username=ubuntu quiet splash" \
- --initramfs casper \
- --binary-images iso-hybrid \
- --iso-application "Utile OS Live" \
- --iso-volume "Utile OS 26 amd64" \
- --iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; proman4713 at gmail.com' \
- --memtest none
+ --mode ubuntu \
+ --bootstrap debootstrap \
+ --bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \
+ --distribution resolute \
+ --parent-distribution resolute \
+ --architectures amd64 \
+ --archive-areas "main restricted universe multiverse" \
+ --parent-archive-areas "main restricted universe multiverse" \
+ --mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \
+ --mirror-binary http://archive.ubuntu.com/ubuntu/ \
+ --mirror-binary-security http://security.ubuntu.com/ubuntu/ \
+ --mirror-chroot http://archive.ubuntu.com/ubuntu/ \
+ --mirror-chroot-security http://security.ubuntu.com/ubuntu/ \
+ --bootloader grub \
+ --bootappend-live "boot=casper username=ubuntu quiet splash" \
+ --initramfs casper \
+ --binary-images iso-hybrid \
+ --iso-application "Utile OS Live" \
+ --iso-volume "Utile OS 26 amd64" \
+ --iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; proman4713 at gmail.com' \
+ --memtest none
```
For context, I disabled memtest because `live-build` was *also* looking
for an outdated `.bin` suffix for the memtest image, which is no longer
accurate. But that's a bug for another day.
Considering this is a Docker container, I upgrade all packages and
install the latest version of `live-build` on every run, so I'm sure of
that.
Note that upstream's
[lb_config](https://manpages.debian.org/testing/live-
build/lb_config.1.en.html) contains different arguments, with different
pluralisations, and supports multiple bootloaders with the
`--bootloaders` argument. I assume that Ubuntu's version already deals
with multiple aspects like `--initramfs casper`, but it seems that
downstream is outdated.
I am surprised by the scarce documentation and availability on how
Ubuntu is actually made. I've read a ton of pages at
https://documentation.ubuntu.com/ and https://help.ubuntu.com/ and have
barely reached an understanding of how Ubuntu produces its ISOs
(`germinate`, `live-build`, `livecd-rootfs`, and `debootstrap` are all
mentioned in totally isolated contexts). Although I am doing this
research to create a derivative, I'm still interested in Ubuntu as it's
- still my go-to distribution.
+ still my go-to distribution. The 'derivative' is just an educational
+ project, so the benefit of Ubuntu itself is way more important to me.
I've spent most of today experimenting with `live-build` to see if I can
produce a basic Ubuntu ISO (no layered squashed filesystems, which was
also a pain point to understand, but at least something functional). My
code is available at https://github.com/Proman4713/Utile-OS (I
previously used to extract and modify a base Ubuntu ISO; I am migrating
to live-build).
** Description changed:
Setting the `--bootloader grub` argument, as per the [manpage](https://manpages.ubuntu.com/manpages/resolute/man1/lb_config.1.html#bootloader), makes the build process fail:
```
[2026-05-22 23:32:56] lb_binary_grub --verbose
P: Begin installing grub...
Reading package lists...
Building dependency tree...
Reading state information...
Package grub-legacy is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32
grub-efi-amd64
E: Package 'grub-legacy' has no installation candidate
P: Begin unmounting filesystems...
P: Saving caches...
Reading package lists...
Building dependency tree...
Reading state information...
Error: Process completed with exit code 100.
```
It seems that even on Ubuntu 26.04 'Resolute Raccoon' as a build environment, the `live-build` package still assumes packages such as `grub-legacy`. Here are my system details:
- Build Environment: Ubuntu 26.04 Docker container
- Target ISO: Ubuntu 26.04
- Architecture (host and target): amd64
Here is my `lb config` command:
```
lb config \
--mode ubuntu \
--bootstrap debootstrap \
--bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \
--distribution resolute \
--parent-distribution resolute \
--architectures amd64 \
--archive-areas "main restricted universe multiverse" \
--parent-archive-areas "main restricted universe multiverse" \
--mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \
--mirror-binary http://archive.ubuntu.com/ubuntu/ \
--mirror-binary-security http://security.ubuntu.com/ubuntu/ \
--mirror-chroot http://archive.ubuntu.com/ubuntu/ \
--mirror-chroot-security http://security.ubuntu.com/ubuntu/ \
--bootloader grub \
--bootappend-live "boot=casper username=ubuntu quiet splash" \
--initramfs casper \
--binary-images iso-hybrid \
--iso-application "Utile OS Live" \
--iso-volume "Utile OS 26 amd64" \
--iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; proman4713 at gmail.com' \
--memtest none
```
For context, I disabled memtest because `live-build` was *also* looking
for an outdated `.bin` suffix for the memtest image, which is no longer
accurate. But that's a bug for another day.
Considering this is a Docker container, I upgrade all packages and
install the latest version of `live-build` on every run, so I'm sure of
that.
Note that upstream's
[lb_config](https://manpages.debian.org/testing/live-
build/lb_config.1.en.html) contains different arguments, with different
pluralisations, and supports multiple bootloaders with the
`--bootloaders` argument. I assume that Ubuntu's version already deals
with multiple aspects like `--initramfs casper`, but it seems that
downstream is outdated.
+ Also note that there is no real solution, either: Leaving the default `syslinux` value also causes an error:
+ ```
+ [2026-05-22 21:00:00] lb_binary_syslinux --verbose
+ P: Begin installing syslinux...
+ Reading package lists...
+ Building dependency tree...
+ Reading state information...
+ Package gfxboot-theme-ubuntu is not available, but is referred to by another package.
+ This may mean that the package is missing, has been obsoleted, or
+ is only available from another source
+ E: Unable to locate package syslinux-themes-ubuntu-oneiric
+ E: Package 'gfxboot-theme-ubuntu' has no installation candidate
+ P: Begin unmounting filesystems...
+ P: Saving caches...
+ Reading package lists...
+ Building dependency tree...
+ Reading state information...
+ Error: Process completed with exit code 100.
+ ```
+ Oneiric was Ubuntu **11.10**, released in 2011!
+
I am surprised by the scarce documentation and availability on how
Ubuntu is actually made. I've read a ton of pages at
https://documentation.ubuntu.com/ and https://help.ubuntu.com/ and have
barely reached an understanding of how Ubuntu produces its ISOs
(`germinate`, `live-build`, `livecd-rootfs`, and `debootstrap` are all
mentioned in totally isolated contexts). Although I am doing this
research to create a derivative, I'm still interested in Ubuntu as it's
still my go-to distribution. The 'derivative' is just an educational
project, so the benefit of Ubuntu itself is way more important to me.
I've spent most of today experimenting with `live-build` to see if I can
produce a basic Ubuntu ISO (no layered squashed filesystems, which was
also a pain point to understand, but at least something functional). My
code is available at https://github.com/Proman4713/Utile-OS (I
previously used to extract and modify a base Ubuntu ISO; I am migrating
to live-build).
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to live-build in Ubuntu.
https://bugs.launchpad.net/bugs/2154055
Title:
--bootloader grub still looks for grub-legacy
Status in live-build package in Ubuntu:
New
Bug description:
Setting the `--bootloader grub` argument, as per the [manpage](https://manpages.ubuntu.com/manpages/resolute/man1/lb_config.1.html#bootloader), makes the build process fail:
```
[2026-05-22 23:32:56] lb_binary_grub --verbose
P: Begin installing grub...
Reading package lists...
Building dependency tree...
Reading state information...
Package grub-legacy is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
grub-coreboot grub2-common grub-pc grub-ieee1275 grub-efi-ia32
grub-efi-amd64
E: Package 'grub-legacy' has no installation candidate
P: Begin unmounting filesystems...
P: Saving caches...
Reading package lists...
Building dependency tree...
Reading state information...
Error: Process completed with exit code 100.
```
It seems that even on Ubuntu 26.04 'Resolute Raccoon' as a build environment, the `live-build` package still assumes packages such as `grub-legacy`. Here are my system details:
- Build Environment: Ubuntu 26.04 Docker container
- Target ISO: Ubuntu 26.04
- Architecture (host and target): amd64
Here is my `lb config` command:
```
lb config \
--mode ubuntu \
--bootstrap debootstrap \
--bootstrap-keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg \
--distribution resolute \
--parent-distribution resolute \
--architectures amd64 \
--archive-areas "main restricted universe multiverse" \
--parent-archive-areas "main restricted universe multiverse" \
--mirror-bootstrap http://archive.ubuntu.com/ubuntu/ \
--mirror-binary http://archive.ubuntu.com/ubuntu/ \
--mirror-binary-security http://security.ubuntu.com/ubuntu/ \
--mirror-chroot http://archive.ubuntu.com/ubuntu/ \
--mirror-chroot-security http://security.ubuntu.com/ubuntu/ \
--bootloader grub \
--bootappend-live "boot=casper username=ubuntu quiet splash" \
--initramfs casper \
--binary-images iso-hybrid \
--iso-application "Utile OS Live" \
--iso-volume "Utile OS 26 amd64" \
--iso-publisher 'Utile; https://utile-os-web.mailworker.workers.dev; proman4713 at gmail.com' \
--memtest none
```
For context, I disabled memtest because `live-build` was *also*
looking for an outdated `.bin` suffix for the memtest image, which is
no longer accurate. But that's a bug for another day.
Considering this is a Docker container, I upgrade all packages and
install the latest version of `live-build` on every run, so I'm sure
of that.
Note that upstream's
[lb_config](https://manpages.debian.org/testing/live-
build/lb_config.1.en.html) contains different arguments, with
different pluralisations, and supports multiple bootloaders with the
`--bootloaders` argument. I assume that Ubuntu's version already deals
with multiple aspects like `--initramfs casper`, but it seems that
downstream is outdated.
Also note that there is no real solution, either: Leaving the default `syslinux` value also causes an error:
```
[2026-05-22 21:00:00] lb_binary_syslinux --verbose
P: Begin installing syslinux...
Reading package lists...
Building dependency tree...
Reading state information...
Package gfxboot-theme-ubuntu is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Unable to locate package syslinux-themes-ubuntu-oneiric
E: Package 'gfxboot-theme-ubuntu' has no installation candidate
P: Begin unmounting filesystems...
P: Saving caches...
Reading package lists...
Building dependency tree...
Reading state information...
Error: Process completed with exit code 100.
```
Oneiric was Ubuntu **11.10**, released in 2011!
I am surprised by the scarce documentation and availability on how
Ubuntu is actually made. I've read a ton of pages at
https://documentation.ubuntu.com/ and https://help.ubuntu.com/ and
have barely reached an understanding of how Ubuntu produces its ISOs
(`germinate`, `live-build`, `livecd-rootfs`, and `debootstrap` are all
mentioned in totally isolated contexts). Although I am doing this
research to create a derivative, I'm still interested in Ubuntu as
it's still my go-to distribution. The 'derivative' is just an
educational project, so the benefit of Ubuntu itself is way more
important to me.
I've spent most of today experimenting with `live-build` to see if I
can produce a basic Ubuntu ISO (no layered squashed filesystems, which
was also a pain point to understand, but at least something
functional). My code is available at
https://github.com/Proman4713/Utile-OS (I previously used to extract
and modify a base Ubuntu ISO; I am migrating to live-build).
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/live-build/+bug/2154055/+subscriptions
More information about the foundations-bugs
mailing list