61 Commits

Author SHA1 Message Date
Dimitri John Ledkov
40d9405aa3
Perform fsck on all rootfs.
LP: #1912835
(cherry picked from commit 33b7272a2331279b4c7aa8de73ed8a9069d0bd39)
2021-02-09 00:39:56 +00:00
Dimitri John Ledkov
e2b5f91355
esp: perform fsck.
LP: #1912835
(cherry picked from commit 53b28d5f58284657ee8efd08a633d557af1fcd97)
2021-02-09 00:39:48 +00:00
Dimitri John Ledkov
3f0ef7d92e
esp: install grub in ubuntu bootloader id path, instead of removable.
Do not use removable uefi bootloader path in the cloud-images by
default, as that prevents upgrades of the bootloader.

LP: #1912830
(cherry picked from commit 7c760864fdcb278ca37396f06f5e3f297428d63d)
2021-02-09 00:39:39 +00:00
Dimitri John Ledkov
e2fd168f50
amd64: always install grub-pc with shim-signed
shim-signed depends on grub-efi-amd64-signed, which in turn has
alternative depends on either `grub-efi-amd64 | grub-pc`. However to
support booting with either via shim&signed-grub and BIOS, the choice
must be made to install grub-pc, not grub-efi-amd64.

This makes images consistent with Ubuntu Deskop, Live Server, buildd
bootable images; all of which already do install grub-pc and
shim-signed.

LP: #1901906
2020-10-28 22:56:31 +00:00
Joshua Powers
b0c8b628b2
ubuntu-cpc: only install shim-signed, run autoremove
The CPC build hooks for amd64 incorrectly attempt to install shim-signed
in addition to grub-efi-amd64 and grub-pc. These latter two packages
conflict with each other. Instead shim-signed should install whatever
packages are required.

Additionally, this will ensure that autoremove is run after installing
anything in the CPC build hooks. This is done to avoid shipping images
that include packages that are autoremovable. This will clean-up as
packages are installed and detect any breakage at build time.
2020-10-26 11:48:24 -07:00
John Chittum
1abc43a2d0
Remove virtualbox-guest-utils (LP: #1895862)
virtualbox-guest-utils kernel modules is included in linux-modules
starting in kernel 5.4.0-33 in focal-updates. The vagrant hook also
explicit installed virtualbox-guest-utils. An error occurred with the
version installed from the archives, however, with the inclusion in
linux-modules, there's no need to explicitly install
virtualbox-guest-utils. Removes the code for the explicit install.
2020-09-29 11:41:05 -05:00
Robert C Jennings
2be2a168ee
ubuntu-cpc: Fix spelling in vagrant file 2020-09-16 08:48:28 -05:00
John Chittum
fb33fe9026
Minor fixes to Vagrantfile comments 2020-08-27 15:46:36 -05:00
John Chittum
cfd43992a8
Reorder comments to ensure clarity
Long history comment moved to the end with short clarifying comments
before the relevant code. Update changelog with proper attribution
2020-08-27 15:11:15 -05:00
John Chittum
c92e885303
ubuntu-cpc: Vagrant Serial to Null (LP: #1874453)
Original fix proposed by Stanislav German-Evtushenko (giner)

CPC Ubuntu cloud images default to enabling a serial console connection
via the kernel commandline option `console=ttyS0`. Many clouds support
the serial connection, and utilize it for debugging purposes. Virtualbox
supports the serial connection as well. In Bionic and earlier images,
Vagrant boxes created a serial log file in the directory of the
Vagrantfile by default. However this is not standard behaviour for
Vagrant images, and so it was removed in Eoan onwards.

Starting in Eoan, there were reports of image booting slowdown (1874453
is a single example). After testing, it was determined that the serial
connection starting, without a device attached, was the cause of the
slow down. However, we did not want to revert to the old functionality
of creating a file. Much thanks to <giner> for providing the Ruby syntax
for sending to File::NULL.

This option will not create a local file, however, the default
Vagrantfile configuration is overwritable via a users Vagrantfile. The
original syntax for creating a file local to the users Vagrantfile has
been included as an example.
2020-08-27 14:37:40 -05:00
Stanislav German-Evtushenko
b0144d3018
vagrant: Use dummy file for the console output
Links:
- https://bugs.launchpad.net/cloud-images/+bug/1874453
2020-08-27 14:36:22 -05:00
Steve Langasek
37f5f8881f Revert "Revert "Remove fstab from squashfs images""
This reverts commit d9de2701897608710ed97e206ee29f28af8cc82a.
2020-08-27 12:17:22 -07:00
Robert C Jennings
2844aa530d
Revert ubuntu-cpc: Disable boot splash
These introduced a regression for ppc64el and needs more time to bake.
This reverts commits 1deb0c68e8be6b06190402e32292c3c55134eee2 &
6dbb30f53bd3f2086021abdecaee04645c9ccda0.

 * "ubuntu-cpc: Fix ppc64el grub console update"
 * "ubuntu-cpc: Disable boot splash in all cloud images (LP: #1725358)"
2020-08-12 16:49:41 -05:00
Robert C Jennings
1deb0c68e8
ubuntu-cpc: Fix ppc64el grub console update
The commit 6dbb30f5 (2.682) which disabled boot splash for all cloud
images introduced an error in the ppc64el hook.  This patch corrects the
name of the variable that contains grub console overrides.  The error
seen during testing was
 'disk-image-ppc64el.binary: line 44: CONSOLES: unbound variable'
and this was due to a typo.
2020-08-12 13:48:03 -05:00
Steve Langasek
d9de270189 Revert "Remove fstab from squashfs images"
This reverts commit f96e874ed12e7e080111d27aa14c4f97aa6bec87.
2020-08-12 11:35:06 -07:00
Robert C Jennings
6dbb30f53b
ubuntu-cpc: Disable boot splash in all cloud images (LP: #1725358)
When trying to debug an issue on ARM64 it was reported that it was
quite difficult to debug because of control codes on the console from
the splash.

For cloud image there is a chroot customization the drops 'quiet splash'
but this is only applied to amd64.  It hasn't made it into other
architectures because they don't have grub by default in the chroot.
However, when we get into binary hook for the uefi disk image and it's
derivatives grub is installed and this includes architectures that were
skipped in the chroot hook.

This patch changes the cpc-fixes chroot hook to add a cloud-images
grub config with basic overrides, including dropping the boot splash,
for all architectures.  For images that never get grub installed this
addition is harmless and small while ensuring that the grub experience
is consistent for images that have grub.  The configuration of console
devices as hard-coded remains arch specific.
2020-08-12 04:50:36 -05:00
David Krauser
83499f1a95 Add mechanism to detect initrdless boot fallback
In v2.672 the default boot behavior of cloud images changed:

- Prior to v2.672, cloud images with the linux-generic kernel attempt
  to boot without an initramfs, would fail, and then retry with an
  initramfs.

- After v2.672, cloud images with the linux-generic kernel boot with
  an initramfs on the first try.

While the behavior is different between the two, they both result in
an instance that has booted with an initramfs. To ensure the changes
in v2.672 do not regress, we need an automated way to check if we are
attempting to boot without an initramfs and failing.

With this change, when we attempt to boot with an initramfs and fail,
initrdless_boot_fallback_triggered is set to non-zero in the grubenv.
This value can be checked after boot by looking in /boot/grub/grubenv
or by using the grub-editenv list command.
2020-07-22 16:41:10 -04:00
David Krauser
4c504f6781 Fix broken minimal cloud image boot on amd64
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.
2020-07-16 17:25:46 -04:00
David Krauser
e8e3e6760f Drop hack in kvm image that forces initramfs-less boot
Since the kvm image now boots without an initramfs by default, we
don't need to force it in the build hook.
2020-07-08 17:29:15 -04:00
David Krauser
1ca1330eae Boot with an initramfs by default in cloud images
Generic cloud images with the linux-generic kernel are not able to
boot without an initramfs. Previously, these images attempted to boot
without an initramfs, would fail, and then retry with an initramfs.
This slows the boot and is confusing behavior.
2020-07-08 17:13:49 -04:00
Dimitri John Ledkov
1ff35cf438 chroot: disable amd64 codepath on riscv64 2020-06-24 16:08:31 +01:00
Balint Reczey
f96e874ed1 Remove fstab from squashfs images
The default fstab is not valid, since squashfs does not support labels.

LP: #1877078
2020-06-16 22:14:59 +02:00
Philip Roche
60665a434b Revert of initramfs package removal in KVM image (LP: #1875400)
It was reported and confirmed in LP bug #1875400
(https://bugs.launchpad.net/cloud-images/+bug/1875400) that on the public
KVM cloud image there exists a large list of packages marked for auto-removal.

This should never be the case on a released cloud image.

These packages are marked for auto-removal because in the KVM image binary hook
we removed both initramfs-tools and busybox-initramfs packages. Due to package
dependencies this also removed:

busybox-initramfs* cloud-initramfs-copymods* cloud-initramfs-dyn-netconf*
cryptsetup-initramfs* initramfs-tools* initramfs-tools-core* multipath-tools*
overlayroot* sg3-utils-udev* ubuntu-server*

But it did not remove all the packages that the above list depended on.
This resulted in all those packages being marked for auto-removal because they
were not manually installed nor did they have any manually installed packages
that depended on them.

The removal of initramfs-tools and busybox-initramfs was to avoid the
generation of initramfs in images that should boot initramfsless.

This requirement is obsolete now because the initramfsless boot handling
is now handled via setting GRUB_FORCE_PARTUUID in /etc/default/grub.d/40-force-partuuid.cfg.

In test images I have verified that GRUB_FORCE_PARTUUID is set and that
boot speeds have not regressed.

LP: #1875400
2020-05-18 17:08:30 +01:00
Pat Viafore
2c70ed158b
Make Ubuntu Vagrant box 40G. (LP: #1580596)
Vagrant images were previously put at 10G, but this was a regression
from Trusty, in which they were 40G.  This made it a tough sell for
users to upgrade if they were using a Ubuntu desktop experience.

This change does not impact disk usage as Vagrant with the virtualbox
provider dynamically allocates space with the VMDK.  On a test system,
the VMDK took up 1.1G of disk space according to df, and after
creating a 2G file in Vagrant, the VMDK grew to 3.1G.

Therefore, users who are running on a system with little free space will
not see adverse effects if they upgrade to a new vagrant image
2020-04-17 10:17:18 -05:00
Łukasz 'sil2100' Zemczak
95103e3d36 Ensure seed part. is mounted; wait for getty 2020-01-24 18:34:40 +01:00
Michael Hudson-Doyle
f27b432026 ubuntu-cpc hooks are Different 2019-12-13 13:16:34 +13:00
Michael Hudson-Doyle
741933942e copy the filelists for the root-xz and squashfs into place 2019-11-27 16:09:59 +13:00
Michael Hudson-Doyle
015d8bab65 add filelist files to all ubuntu-cpc series files 2019-11-25 11:51:51 +13:00
Michael Hudson-Doyle
c89806ba4d Do not create a hook manually for ubuntu-cpc builds, make-hooks does not like that. 2019-10-09 14:34:08 +13:00
Steve Langasek
0902ffefb3 002-add-foreign-kernel.chroot_early: enable amd64 as a foreign arch on i386 image builds, since this is where the kernel comes from henceforth. 2019-10-02 15:59:25 -07:00
Łukasz 'sil2100' Zemczak
1f8f86c17c Final fix to 999-ubuntu-image-customization.chroot, tested to be working. 2019-09-19 14:03:14 +02:00
Łukasz 'sil2100' Zemczak
c7f3374f9f Final changes to the 999-ubuntu-image-customization.chroot hook. 2019-09-16 14:46:04 +02:00
Łukasz 'sil2100' Zemczak
2341514fad Fix typo. 2019-09-10 17:35:46 +02:00
Łukasz 'sil2100' Zemczak
56234333f3 Add explaination to why ubuntu-image == device image. 2019-09-06 11:55:33 +02:00
Łukasz 'sil2100' Zemczak
f6cbbf01e1 Add a new u-i specific chroot hook, move the NoCloud system-boot cloud-init datasource configuration there to make sure all u-i built ship with it. 2019-08-08 12:22:33 +02:00
Dimitri John Ledkov
584ac368b0 Merge branch 'kvm-derives-uefi' of git+ssh://git.launchpad.net/~davidkrauser/livecd-rootfs/+git/livecd-rootfs into ubuntu/master 2019-07-26 14:35:16 -03:00
David Krauser
0eecd0c344 KVM disk images should derive from the uefi image. 2019-07-22 13:12:21 -04:00
Robert C Jennings
0afb887cb7
ubuntu-cpc: use sys.exit() rather than quit() 2019-07-22 11:29:04 -05:00
Robert C Jennings
5083d76835
ubuntu-cpc: remove unused final.binary hook support
Right now this is a solution looking for a problem as the implementation
no longer relies on it.
2019-07-22 11:29:04 -05:00
Robert C Jennings
cb535805d7
ubuntu-cpc: rework image artifact cleanup
The livecd.ubuntu-cpc.ext4 that is present in each build (plus kernel
and initrd) are not renamed from /build/binary/boot/filsystem.ext4
and friends until after the binary hooks are run, so this patch moves
from trying to perform this cleanup in a binary hook.  Now the cleanup
will be run at the end of live-build/binary for the ubuntu-cpc project.
2019-07-22 11:29:04 -05:00
Robert C Jennings
14b7f62b17
ubuntu-cpc: Only produce explicitly named artifacts (LP: #1837254)
In parallel builds where a list of image targets are provided the build
may produce binaries that are not part of the named set of targets but
are created by series dependencies.  These implicitly created binaries
may be generated by multiple builds but are unused as our convention for
the ubuntu-cpc project is to only consume binaries from the explicitly
named image targets; this avoid overwriting the same object by multiple
parallel builds.

This patch adds support for a 'provides' keyword for series files. It can
be specified multiple times per series file.  The field is used by the
make-hooks script to generate a list of output files created explicitly by
the named image targets.  The list is saved to the "explicit_provides"
file in the hooks output directory. In the case of the "all" target
this list would be empty.  This list is consumed by the "final.binary"
hook file.

This patch adds support for optional final.binary hooks in hooks.d/base
and/or hooks.d/extra.  These final.binary hooks are always included as
the last hook(s) if either exist with the hook in "extra" running last.

The base/final.binary hook includes logic to parse the "explicit_provides"
file generated by the make-hooks script and remove any binary output not
explicitly specified.

Some series files named unnecessary dependencies, specifically
disk-image, to keep output of implicit artifacts consistent between
parallel builds.  These unnecessary dependencies are removed in this
patch.
2019-07-22 11:29:04 -05:00
David Krauser
0e3b1e206b
Add support for HyperV Gallery images 2019-06-11 23:26:07 -04:00
Tiago Stürmer Daitx
f2bbe1fd85
Merge patviafore/linux_kvm_image: Add linux-kvm image
We are creating a derivative of disk-image, replacing the kernel with
linux-kvm, removing initramfs, and creating a qcow2 image.

Source: ~patviafore/livecd-rootfs/+git/livecd-rootfs:linux_kvm_image

Modifications: fixed conflict in debian/changelog entry and bumped
version.

Signed-off-by: Tiago Stürmer Daitx <tdaitx@gmail.com>
2019-06-11 22:17:20 -03:00
Łukasz 'sil2100' Zemczak
d830cfccee Merge Dave's changes: Use boot-partition for c-i seed on RPi
Configure cloud-init to look for its seed in the vFAT boot partition on
raspberry pi images; the corresponding gadget is configured to place the
user-data, meta-data, and network-config files there.

Source: ~waveform/ubuntu/+source/livecd-rootfs:cloud-init-boot
2019-06-07 14:31:57 +02:00
Pat Viafore
514a83b926
Unmount the image before we convert to qcow2 to avoid corruption 2019-06-06 08:21:22 -05:00
Pat Viafore
9bf4c7cb52
Adding apt-get autoremove and setting IMAGE_STR 2019-06-06 08:21:22 -05:00
Pat Viafore
975a620e59
Various fixes from code review.
Cleaning indices; removing superfluous apt-get update; adding debug
messages; adding better output name
2019-06-06 08:21:22 -05:00
Pat Viafore
afbda566eb
Adding hooks and making replace_kernel function 2019-06-06 08:20:45 -05:00
Pat Viafore
528b2ea57a
Add kvm image 2019-06-06 08:20:45 -05:00
Balint Reczey
76a57f37ef Merge lp:~rbalint -b ubuntu/master 2019-05-27 19:19:04 +02:00