mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-03-07 01:11:12 +00:00
Fix broken minimal cloud image boot on amd64 (LP: #1920043)
I recently pulled initramfs logic out of the base build hook, and dropped that into the `replace_kernel` function. Any cloud image that does not leverage the generic virtual kernel was expected to call `replace_kernel` to pull in a custom kernel. That function will disable initramfs boot for images that use a custom kernel. Minimal cloud images on amd64 use the linux-kvm kernel, but the build hook does not utilize the `replace_kernel` function. Instead, the kernel flavor is set in `auto/config`. I pulled that logic out of `auto/config` and am now calling `replace_kernel` in the build hook. I also moved a call to generate the package list so that it will pick up the change to the linux-kvm kernel.
This commit is contained in:
parent
82f69612c7
commit
597d678e17
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
|||||||
|
livecd-rootfs (2.664.19) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
* Fix broken minimal cloud image boot on amd64 LP: #1920043
|
||||||
|
|
||||||
|
-- Patrick Viafore <patrick.viafore@canonical.com> Thu, 18 Mar 2021 11:50:04 -0500
|
||||||
|
|
||||||
livecd-rootfs (2.664.18) focal; urgency=medium
|
livecd-rootfs (2.664.18) focal; urgency=medium
|
||||||
|
|
||||||
[ Patrick Viafore ]
|
[ Patrick Viafore ]
|
||||||
|
@ -786,20 +786,14 @@ case $PROJECT in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
ubuntu-cpc)
|
ubuntu-cpc)
|
||||||
|
KERNEL_FLAVOURS=virtual
|
||||||
|
|
||||||
if [ "${SUBPROJECT:-}" = minimized ]; then
|
if [ "${SUBPROJECT:-}" = minimized ]; then
|
||||||
add_task install cloud-image
|
add_task install cloud-image
|
||||||
add_package install sudo lxd-installer
|
add_package install sudo lxd-installer
|
||||||
# linux-kvm currently only exists for amd64, so fall back to the
|
|
||||||
# virtual flavour for other architectures
|
|
||||||
if [ "$ARCH" = "amd64" ]; then
|
|
||||||
KERNEL_FLAVOURS=kvm
|
|
||||||
else
|
|
||||||
KERNEL_FLAVOURS=virtual
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
add_task install minimal standard cloud-image
|
add_task install minimal standard cloud-image
|
||||||
add_package install ubuntu-minimal
|
add_package install ubuntu-minimal
|
||||||
KERNEL_FLAVOURS=virtual
|
|
||||||
case $ARCH in
|
case $ARCH in
|
||||||
armhf|arm64|ppc64el|powerpc)
|
armhf|arm64|ppc64el|powerpc)
|
||||||
add_task install server
|
add_task install server
|
||||||
|
@ -191,15 +191,6 @@ EOF
|
|||||||
|
|
||||||
chroot mountpoint apt-get autoremove --purge --assume-yes
|
chroot mountpoint apt-get autoremove --purge --assume-yes
|
||||||
|
|
||||||
# This call to rewrite the debian package manifest is added here to capture
|
|
||||||
# grub-efi packages that otherwise would not make it into the base
|
|
||||||
# manifest. filesystem.packages is moved into place via symlinking to
|
|
||||||
# livecd.ubuntu-cpc.manifest by live-build/auto/build after lb_binary runs
|
|
||||||
# and at that time snaps are added to the manifest (create-manifest is
|
|
||||||
# not called here as it calls snap-seed-parse, resulting in duplicate
|
|
||||||
# snap listings)
|
|
||||||
chroot mountpoint dpkg-query -W > binary/boot/filesystem.packages
|
|
||||||
|
|
||||||
chroot mountpoint grub-install "${loop_device}" \
|
chroot mountpoint grub-install "${loop_device}" \
|
||||||
--boot-directory=/boot \
|
--boot-directory=/boot \
|
||||||
--efi-directory=/boot/efi \
|
--efi-directory=/boot/efi \
|
||||||
@ -213,6 +204,21 @@ EOF
|
|||||||
chroot mountpoint grub-install --target=i386-pc "${loop_device}"
|
chroot mountpoint grub-install --target=i386-pc "${loop_device}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Use the linux-kvm kernel for minimal images where available
|
||||||
|
# linux-kvm currently only exists for amd64
|
||||||
|
if [ "${SUBPROJECT:-}" = "minimized" ] && [ "$ARCH" = "amd64" ]; then
|
||||||
|
replace_kernel mountpoint linux-kvm
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This call to rewrite the debian package manifest is added here to capture
|
||||||
|
# grub-efi packages that otherwise would not make it into the base
|
||||||
|
# manifest. filesystem.packages is moved into place via symlinking to
|
||||||
|
# livecd.ubuntu-cpc.manifest by live-build/auto/build after lb_binary runs
|
||||||
|
# and at that time snaps are added to the manifest (create-manifest is
|
||||||
|
# not called here as it calls snap-seed-parse, resulting in duplicate
|
||||||
|
# snap listings)
|
||||||
|
chroot mountpoint dpkg-query -W > binary/boot/filesystem.packages
|
||||||
|
|
||||||
divert_grub mountpoint
|
divert_grub mountpoint
|
||||||
track_initramfs_boot_fallback mountpoint
|
track_initramfs_boot_fallback mountpoint
|
||||||
chroot mountpoint update-grub
|
chroot mountpoint update-grub
|
||||||
|
@ -127,6 +127,12 @@ if [ "${should_install_grub}" -eq 1 ]; then
|
|||||||
rm mountpoint/tmp/device.map
|
rm mountpoint/tmp/device.map
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Use the linux-kvm kernel for minimal images where available
|
||||||
|
# linux-kvm currently only exists for amd64
|
||||||
|
if [ "${SUBPROJECT:-}" = "minimized" ] && [ "$ARCH" = "amd64" ]; then
|
||||||
|
replace_kernel mountpoint linux-kvm
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$ARCH" = "s390x" ]; then
|
if [ "$ARCH" = "s390x" ]; then
|
||||||
# Do ZIPL install bits
|
# Do ZIPL install bits
|
||||||
chroot mountpoint apt-get -qqy install s390-tools sysconfig-hardware
|
chroot mountpoint apt-get -qqy install s390-tools sysconfig-hardware
|
||||||
|
Loading…
x
Reference in New Issue
Block a user