Compare commits

...

27 Commits

Author SHA1 Message Date
Steve Langasek
59b8d5c3d6 releasing package livecd-rootfs version 2.694.6 2021-05-20 16:56:24 -07:00
Steve Langasek
e8c19e790e Merge remote-tracking branch 'codyshepherd/buildd/hide-grub-menu-gg' into ubuntu/groovy 2021-05-19 08:18:06 -07:00
Michael Hudson-Doyle
e4f910e829 releasing package livecd-rootfs version 2.694.5 2021-05-11 11:37:22 +12:00
Michael Hudson-Doyle
6041bfeb49 Merge remote-tracking branch 'toabctl/sru-groovy-lp1926732' into ubuntu/groovy 2021-05-11 11:37:06 +12:00
Thomas Bechtold
ec99ec3a4d
add debian/changelog entry 2021-04-30 13:42:04 +02:00
Thomas Bechtold
15d0783e15
add configure_oci function and use it in ubuntu-oci
With that, the Dockerfile modifications[0] currently done externally
are done now here. That means that the created rootfs tarball can be
directly used within a Dockerfile to create a container from scratch:

FROM scratch
ADD livecd.ubuntu-oci.rootfs.tar.gz /
CMD ["/bin/bash"]

[0]
https://github.com/tianon/docker-brew-ubuntu-core/blob/master/update.sh

(cherry picked from commit a81972a58b004897bf3e5c14ff371bc2f6b5e4b8)
2021-04-30 13:40:04 +02:00
Thomas Bechtold
9623794a15
Add new ubuntu-oci project
This is a copy of the ubuntu-base project.
Currently ubuntu-base is used as a base for the docker/OCI container
images. The rootfs tarball that is created with ubuntu-base is
published under [0]. That tarball is used in the FROM statement of the
Dockerfile as base and then a couple of modifications are done inside
of the Dockerfile[1].
The ubuntu-oci project will include the changes that are currently
done in the Dockerfile. With that:

1) a Dockerfile using that tarball will be just a 2 line thing:

   FROM scratch
   ADD ubuntu-hirsute-core-cloudimg-amd64-root.tar.gz /
   CMD ["/bin/bash"]

2) Ubuntu has the full control about the build process of the
docker/OCI container. No external sources (like [1]) need to be
modified anymore.
3) Ubuntu can publish containers without depending on the official
dockerhub containers[2]. Currently the containers for the AWS ECR
registry[3] use as a base[4] the official dockerhub containers. That's
no longer needed because a container just needs a Dockerfile described
in 1)

When the ubuntu-oci project has the modifications from [1] included,
we'll also update [1] to use the ubuntu-oci rootfs tarball as a base
and drop the modifications done at [1].

Note: Creating a new ubuntu-oci project instead of using ubuntu-base
will make sure that we don't break users who are currently using
ubuntu-base rootfs tarballs for doing their own thing.

[0] https://partner-images.canonical.com/core/
[1]
https://github.com/tianon/docker-brew-ubuntu-core/blob/master/update.sh
[2] https://hub.docker.com/_/ubuntu
[3] https://gallery.ecr.aws/ubuntu/ubuntu
[4]
https://launchpad.net/~ubuntu-docker-images/ubuntu-docker-images/+oci/ubuntu/+recipe/ubuntu-20.04

(cherry picked from commit ac4a95b9314cf1f8ce01f42016c271c0a6078372)
2021-04-30 13:40:04 +02:00
Robert C Jennings
4244c30d25
releasing package livecd-rootfs version 2.694.4 2021-04-10 05:10:56 -05:00
Gauthier Jolly
806356e483
ubuntu-cpc: secure esp mountpoint (LP: #1881006)
Change mount option for ubuntu-cpc images from "defaults" to
"umask=0077". ESP partitions might contain sensitive data and
non-root users shouldn't have read access on it.
2021-03-18 10:02:17 +00:00
Cody Shepherd
027f89a654
Update changelog 2021-03-01 09:02:19 -08:00
Cody Shepherd
f72e18d395
Install lxd-agent-loader in bootable buildd image to improve user
experience with lxd vms
2021-03-01 09:00:35 -08:00
Cody Shepherd
512cc37775
Set grub configs to hide boot menu and enable output on ttyS0 2021-03-01 09:00:35 -08:00
Dimitri John Ledkov
5f97f4913d
releasing package livecd-rootfs version 2.694.3 2021-02-09 00:41:43 +00:00
Dimitri John Ledkov
277ae5cf05
functions: stop removing systemd-detect-virt unconditionally in undivert_grub
One can call divert_grub; replace_kernel; undivert_grub. And
replace_kernel will call into force_boot_without_initramfs, which
under certain conditions can call divert_grub &
undivert_grub. Resulting in undivert_grub called twice in a row.

When undivert_grub is called twice in a row it wipes
systemd-detect-virt binary from disk, as the rm call is unguarded to
check that there is something to divert if systemd package is
installed. And if the systemd package is not installed, it does not
check that systemd-detect-virt file is in-fact what divert_grub has
created.

Add a guard to check that systemd-detect-virt is the placeholder one,
before removing it.

LP: #1902260
(cherry picked from commit 096a00f40459187719840ccad99e86c7ade2ec12)
2021-02-09 00:40:03 +00:00
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
e62a4560bc
Merge branch 'dk/groovy-buildd-unpack-kernel-initrd' of git+ssh://git.launchpad.net/~davidkrauser/livecd-rootfs/+git/livecd-rootfs into ubuntu/groovy
(Cherry-pick commit 065c82314464fa78337d5122e1d4826a7d6edbb0)
2021-02-09 00:36:10 +00:00
Robert C Jennings
4868b6c054
releasing package livecd-rootfs version 2.694.2 2021-02-05 15:06:48 -06:00
Cody Shepherd
c02b972a1f
Update changelog 2021-02-03 08:13:30 -08:00
Cody Shepherd
ffd4faca9a
Omit file type exensions in manifest names 2021-02-03 08:12:56 -08:00
Cody Shepherd
4ec61627a8
Create manifests for buildd tarballs 2021-02-03 08:12:46 -08:00
David Krauser
1814fdb369 Produce buildd kernel and initrd as separate artifacts
Multipass on Mac OS X requires standalone kernel and initrd artifacts
to boot.

Also call update-initramfs on all installed kernels. We only have one
kernel installed, so we don't need to specify an explicit version.
2021-01-08 14:46:59 -05:00
Dimitri John Ledkov
6c9120820a
releasing package livecd-rootfs version 2.694.1 2020-11-05 11:54:29 +00:00
Dimitri John Ledkov
b4fe728481
Merge branch 'ubuntu/master' of git+ssh://git.launchpad.net/livecd-rootfs into ubuntu/groovy 2020-11-05 11:27:43 +00:00
Dimitri John Ledkov
4aedf53772
auto/config: scope ubuntu:desktop-preinstalled:raspi image options
When desktop-preinstalled image options were added in
38157b37487d244b27af33f7863e6b15253c8f94, for the raspi subarch, the
options listed there were not scoped for raspi subarch. This results
in those options getting also applied for the HYPERV
ubuntu:desktop-preinstalled image.

Thus scope the newly added options under raspi subarch case only.

(cherry picked from commit 1c7d688319490a8a15a5aab47fb086482b3efe92)

LP: #1901846
2020-10-28 10:44:22 +00:00
Dimitri John Ledkov
aeb9e39ec9
auto/config: seed ubuntu-desktop when building hyperv image
Regression introduced in 38157b37487d244b27af33f7863e6b15253c8f94 when
desktop-preinstalled code branch was added, it dropped addint
ubuntu-desktop task. Instead it added ubuntu-desktop-raspi task, only
for the raspi subarch, which depends on ubuntu-desktop. But the hyperv
case, now ended up without ubuntu-desktop task.

It looks like introduction of "desktop-preinstalled" assumed, that it
is for raspi only, when in fact that code path now started to be used
for hyperv gallery image too.

(cherry picked from commit 5d9af7f3c59ec6e47bfac1483064f25ffbd80e63)

LP: #1901846
2020-10-28 10:44:03 +00:00
12 changed files with 162 additions and 44 deletions

80
debian/changelog vendored
View File

@ -1,38 +1,78 @@
livecd-rootfs (2.699) hirsute; urgency=medium livecd-rootfs (2.694.6) groovy; urgency=medium
* hyper-v hook: Fix writing of pkla file out to correct scratch directory * Add grub config to produce console output and install lxd-agent loader
for image build. to allow buildd vm images to work in lxd without requirement for manual
installation (LP: #1915571)
-- Jinming Wu, Patrick <me@patrickwu.space> Tue, 03 Nov 2020 10:13:53 +0000 -- Cody Shepherd <cody.shepherd@canonical.com> Thu, 20 May 2021 16:55:41 -0800
livecd-rootfs (2.698) hirsute; urgency=medium livecd-rootfs (2.694.5) groovy; urgency=medium
* amd64: always install grub-pc with shim-signed (LP: #1901906) [ Thomas Bechtold ]
* control: install qemu-utils & snapd on riscv64. * Add a new ubuntu-oci project that contains the customizations currently
performed downstream for the official Ubuntu images on dockerhub.
(LP: #1926732)
-- Dimitri John Ledkov <xnox@ubuntu.com> Thu, 29 Oct 2020 22:22:30 +0000 -- Michael Hudson-Doyle <michael.hudson@ubuntu.com> Tue, 11 May 2021 11:37:12 +1200
livecd-rootfs (2.697) hirsute; urgency=medium livecd-rootfs (2.694.4) groovy; urgency=medium
[ John Chittum ] [ Gauthier Jolly ]
* Ensure vmtools version entered into vmdk header (LP: #1893898) * ubuntu-cpc: secure esp mountpoint (LP: #1881006)
Change mount option for ubuntu-cpc images from "defaults" to "umask=0077"
ESP partitions might contain sensitive data and non-root users shouldn't
have read access on it.
-- Robert C Jennings <robert.jennings@canonical.com> Wed, 28 Oct 2020 12:02:04 -0500 -- Robert C Jennings <robert.jennings@canonical.com> Sat, 10 Apr 2021 05:08:58 -0500
livecd-rootfs (2.696) hirsute; urgency=medium livecd-rootfs (2.694.3) groovy; urgency=medium
[ David Krauser ]
* buildd: produce kernel and initrd as separate artifacts LP: #1910557
* buildd: call update-initramfs for all installed kernels
We only have one kernel installed, so we don't need to
specify an explicit version. LP: #1910557
[ Dimitri John Ledkov ]
* esp: install grub in ubuntu bootloader id path, instead of removable.
(LP: #1912830)
* esp: perform fsck. (LP: #1912835)
* Perform fsck on all rootfs. (LP: #1912835)
* functions: stop removing systemd-detect-virt unconditionally in undivert_grub
(LP: #1902260)
-- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 09 Feb 2021 00:40:38 +0000
livecd-rootfs (2.694.2) groovy; urgency=medium
[ Cody Shepherd ]
* Create manifests for buildd tarball images (LP: #1914445)
-- Robert C Jennings <robert.jennings@canonical.com> Fri, 05 Feb 2021 14:41:05 -0600
livecd-rootfs (2.694.1) groovy; urgency=medium
* livecd-rootfs SRU of change up to 2.699 from hirsute to groovy.
= hyperv gallery image =
[ Jinming Wu, Patrick ]
* hyper-v hook: Fix writing of pkla file out to correct scratch
directory for image build. LP: #1901846
[ Dimitri John Ledkov ]
* auto/config: seed ubuntu-desktop when building hyperv image LP: #1901846 * auto/config: seed ubuntu-desktop when building hyperv image LP: #1901846
* auto/config: scope ubuntu:desktop-preinstalled:raspi image options LP: #1901846 * auto/config: scope ubuntu:desktop-preinstalled:raspi image options LP: #1901846
-- Dimitri John Ledkov <xnox@ubuntu.com> Wed, 28 Oct 2020 10:36:29 +0000 = CPC cloud images =
[ Dimitri John Ledkov & Joshua Powers ]
* amd64: always install grub-pc with shim-signed (LP: #1901906), and
ensure to autoremove packages
[ John Chittum ]
* Ensure vmtools version entered into vmdk header (LP: #1893898)
livecd-rootfs (2.695) hirsute; urgency=medium = RISC-V port =
* control: install qemu-utils & snapd on riscv64. (LP: #1903034)
* Install only shim-signed to prevent shipping conflicting, autoremovable -- Dimitri John Ledkov <xnox@ubuntu.com> Thu, 05 Nov 2020 11:54:14 +0000
packages
* Ensure autoremove is run after any package install
-- Joshua Powers <josh.powers@canonical.com> Mon, 26 Oct 2020 11:58:57 -0700
livecd-rootfs (2.694) groovy; urgency=medium livecd-rootfs (2.694) groovy; urgency=medium

View File

@ -245,7 +245,7 @@ if [ "$(dpkg-divert --truename /usr/bin/man)" = "/usr/bin/man.REAL" ]; then
fi fi
EOF EOF
if [ "$PROJECT" != "ubuntu-base" ]; then if [ "$PROJECT" != "ubuntu-base" ] && [ "$PROJECT" != "ubuntu-oci" ]; then
# ubuntu-minimal is too much for a docker container (it contains # ubuntu-minimal is too much for a docker container (it contains
# systemd and other things) # systemd and other things)
cat >> chroot/usr/local/sbin/unminimize <<'EOF' cat >> chroot/usr/local/sbin/unminimize <<'EOF'
@ -441,6 +441,10 @@ serial: $BUILDSTAMP
EOF EOF
fi fi
if [ "$PROJECT" = "ubuntu-oci" ]; then
configure_oci chroot
fi
configure_network_manager configure_network_manager
echo "===== Checking size of /usr/share/doc =====" echo "===== Checking size of /usr/share/doc ====="

View File

@ -515,7 +515,7 @@ if [ "$PREINSTALLED" = "true" ]; then
ubuntu-server) ubuntu-server)
add_package live oem-config-debconf ubiquity-frontend-debconf add_package live oem-config-debconf ubiquity-frontend-debconf
;; ;;
ubuntu-core|ubuntu-base|base|ubuntu-cpc) ubuntu-core|ubuntu-base|ubuntu-oci|base|ubuntu-cpc)
;; ;;
ubuntu) ubuntu)
add_package live oem-config-gtk ubiquity-frontend-gtk add_package live oem-config-gtk ubiquity-frontend-gtk
@ -796,6 +796,10 @@ case $PROJECT in
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal" OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
;; ;;
ubuntu-oci)
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
;;
ubuntu-cpc) ubuntu-cpc)
KERNEL_FLAVOURS=virtual KERNEL_FLAVOURS=virtual
@ -957,7 +961,7 @@ case $ARCH in
esac esac
case $PROJECT:${SUBPROJECT:-} in case $PROJECT:${SUBPROJECT:-} in
ubuntu-server:*|ubuntu-base:*) ubuntu-server:*|ubuntu-base:*|ubuntu-oci:*)
OPTS="${OPTS:+$OPTS }--linux-packages=none --initramfs=none" OPTS="${OPTS:+$OPTS }--linux-packages=none --initramfs=none"
KERNEL_FLAVOURS=none KERNEL_FLAVOURS=none
BINARY_REMOVE_LINUX=false BINARY_REMOVE_LINUX=false
@ -1024,7 +1028,7 @@ echo "SUBPROJECT=\"${SUBPROJECT:-}\"" >> config/binary
echo "LB_DISTRIBUTION=\"$SUITE\"" >> config/binary echo "LB_DISTRIBUTION=\"$SUITE\"" >> config/binary
case $PROJECT in case $PROJECT in
ubuntu-cpc|ubuntu-core|ubuntu-base|base) ubuntu-cpc|ubuntu-core|ubuntu-base|ubuntu-oci|base)
# ubuntu-cpc gets this added in 025-create-groups.chroot, and we do # ubuntu-cpc gets this added in 025-create-groups.chroot, and we do
# not want this group in projects that are effectively just chroots # not want this group in projects that are effectively just chroots
;; ;;

View File

@ -49,7 +49,7 @@ create_and_mount_uefi_partition() {
mount "${uefi_dev}" "$mountpoint"/boot/efi mount "${uefi_dev}" "$mountpoint"/boot/efi
cat << EOF >> "mountpoint/etc/fstab" cat << EOF >> "mountpoint/etc/fstab"
LABEL=UEFI /boot/efi vfat defaults 0 0 LABEL=UEFI /boot/efi vfat defaults 0 1
EOF EOF
} }
@ -121,6 +121,16 @@ install_grub() {
chroot mountpoint grub-install --target=i386-pc "${loop_device}" chroot mountpoint grub-install --target=i386-pc "${loop_device}"
fi fi
cat > mountpoint/etc/default/grub.d/50-builddimg-settings.cfg << EOF
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0.1
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0.1
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"
GRUB_RECORDFAIL_TIMEOUT=0
GRUB_TERMINAL=console
EOF
divert_grub mountpoint divert_grub mountpoint
chroot mountpoint update-grub chroot mountpoint update-grub
replace_grub_root_with_label mountpoint replace_grub_root_with_label mountpoint

View File

@ -4,6 +4,10 @@
# ourselves. # ourselves.
set -e set -e
. config/functions
create_manifest chroot "livecd.$PROJECT.rootfs.manifest"
# gzip was chosen for fastest decompression speed: it decompresses buildd # gzip was chosen for fastest decompression speed: it decompresses buildd
# chroots about twice as fast as xz and about five times as fast as bzip2. # chroots about twice as fast as xz and about five times as fast as bzip2.
tar --transform='s,^chroot,chroot-autobuild,' --sort=name --numeric-owner \ tar --transform='s,^chroot,chroot-autobuild,' --sort=name --numeric-owner \

View File

@ -3,12 +3,16 @@
set -e set -e
. config/bootstrap . config/bootstrap
. config/functions
TMPDIR="$(mktemp -d)" TMPDIR="$(mktemp -d)"
config/make-lxd-metadata "${LB_DISTRIBUTION%-*}" "$ARCH" \ config/make-lxd-metadata "${LB_DISTRIBUTION%-*}" "$ARCH" \
>"$TMPDIR/metadata.yaml" >"$TMPDIR/metadata.yaml"
tar --numeric-owner -cf "livecd.$PROJECT.lxd.tar" -C "$TMPDIR" metadata.yaml tar --numeric-owner -cf "livecd.$PROJECT.lxd.tar" -C "$TMPDIR" metadata.yaml
rm -rf "$TMPDIR" rm -rf "$TMPDIR"
create_manifest chroot "livecd.$PROJECT.lxd.manifest"
# When using the combined metadata/rootfs form, the rootfs must be under # When using the combined metadata/rootfs form, the rootfs must be under
# rootfs/ rather than under chroot-autobuild/. # rootfs/ rather than under chroot-autobuild/.
tar --transform='s,^chroot,rootfs,' --sort=name --numeric-owner \ tar --transform='s,^chroot,rootfs,' --sort=name --numeric-owner \

View File

@ -44,7 +44,8 @@ env DEBIAN_FRONTEND=noninteractive chroot "$mount_d" apt-get \
dist-upgrade --assume-yes dist-upgrade --assume-yes
env DEBIAN_FRONTEND=noninteractive chroot "$mount_d" apt-get \ env DEBIAN_FRONTEND=noninteractive chroot "$mount_d" apt-get \
install -y lsb-release locales initramfs-tools busybox-initramfs \ install -y lsb-release locales initramfs-tools busybox-initramfs \
udev dbus netplan.io cloud-init openssh-server sudo snapd udev dbus netplan.io cloud-init openssh-server sudo snapd \
lxd-agent-loader
# Install a kernel # Install a kernel
divert_grub "$mount_d" divert_grub "$mount_d"
@ -56,8 +57,11 @@ chroot "$mount_d" update-grub
undivert_grub "$mount_d" undivert_grub "$mount_d"
# Update initramfs image # Update initramfs image
chroot "$mount_d" \ chroot "$mount_d" update-initramfs -c -v -k all
sh -c 'update-initramfs -c -v -k $(ls /boot/vmlinuz*generic | sed 1q | cut -d- -f2-3)'
# extract kernel and initrd
cp $mount_d/boot/initrd.img-* livecd.$PROJECT.initrd-generic
cp $mount_d/boot/vmlinuz-* livecd.$PROJECT.vmlinuz-generic
# Cleanup # Cleanup
env DEBIAN_FRONTEND=noninteractive chroot "$mount_d" apt-get \ env DEBIAN_FRONTEND=noninteractive chroot "$mount_d" apt-get \

View File

@ -379,7 +379,9 @@ undivert_grub() {
--divert /etc/grub.d/30_os-prober.dpkg-divert \ --divert /etc/grub.d/30_os-prober.dpkg-divert \
--rename /etc/grub.d/30_os-prober --rename /etc/grub.d/30_os-prober
if grep -q "^exit 1$" "$CHROOT_ROOT"/usr/bin/systemd-detect-virt; then
rm "$CHROOT_ROOT"/usr/bin/systemd-detect-virt rm "$CHROOT_ROOT"/usr/bin/systemd-detect-virt
fi
chroot "$CHROOT_ROOT" dpkg-divert --remove --local \ chroot "$CHROOT_ROOT" dpkg-divert --remove --local \
--rename /usr/bin/systemd-detect-virt --rename /usr/bin/systemd-detect-virt
} }
@ -793,7 +795,7 @@ clean_debian_chroot() {
rm -f chroot/var/cache/debconf/*-old chroot/var/lib/dpkg/*-old rm -f chroot/var/cache/debconf/*-old chroot/var/lib/dpkg/*-old
Chroot chroot apt clean Chroot chroot apt clean
# For the docker images we remove even more stuff. # For the docker images we remove even more stuff.
if [ "${PROJECT}:${SUBPROJECT:-}" = "ubuntu-base:minimized" ]; then if [ "${PROJECT}:${SUBPROJECT:-}" = "ubuntu-base:minimized" ] || [ "${PROJECT}:${SUBPROJECT:-}" = "ubuntu-oci:minimized" ]; then
# Remove apt lists (that are currently removed downstream # Remove apt lists (that are currently removed downstream
# anyway) # anyway)
rm -rf chroot/var/lib/apt/lists/* rm -rf chroot/var/lib/apt/lists/*
@ -866,6 +868,62 @@ EOF
fi fi
} }
configure_oci() {
# configure a chroot to be a OCI/docker container
# theses changes are taken from the current Dockerfile modifications done
# at https://github.com/tianon/docker-brew-ubuntu-core/blob/master/update.sh
local chroot=$1
echo "==== Configuring OCI ===="
# https://github.com/docker/docker/blob/9a9fc01af8fb5d98b8eec0740716226fadb3735c/contrib/mkimage/debootstrap#L40-L48
echo '#!/bin/sh' > ${chroot}/usr/sbin/policy-rc.d
echo 'exit 101' >> ${chroot}/usr/sbin/policy-rc.d
Chroot ${chroot} "chmod +x /usr/sbin/policy-rc.d"
# https://github.com/docker/docker/blob/9a9fc01af8fb5d98b8eec0740716226fadb3735c/contrib/mkimage/debootstrap#L54-L56
Chroot ${chroot} "dpkg-divert --local --rename --add /sbin/initctl"
cp -a ${chroot}/usr/sbin/policy-rc.d ${chroot}/sbin/initctl
sed -i 's/^exit.*/exit 0/' ${chroot}/sbin/initctl
# https://github.com/docker/docker/blob/9a9fc01af8fb5d98b8eec0740716226fadb3735c/contrib/mkimage/debootstrap#L71-L78
echo 'force-unsafe-io' > ${chroot}/etc/dpkg/dpkg.cfg.d/docker-apt-speedup
# https://github.com/docker/docker/blob/9a9fc01af8fb5d98b8eec0740716226fadb3735c/contrib/mkimage/debootstrap#L85-L105
echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > ${chroot}/etc/apt/apt.conf.d/docker-clean
echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> ${chroot}/etc/apt/apt.conf.d/docker-clean
echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> ${chroot}/etc/apt/apt.conf.d/docker-clean
# https://github.com/docker/docker/blob/9a9fc01af8fb5d98b8eec0740716226fadb3735c/contrib/mkimage/debootstrap#L109-L115
echo 'Acquire::Languages "none";' > ${chroot}/etc/apt/apt.conf.d/docker-no-languages
# https://github.com/docker/docker/blob/9a9fc01af8fb5d98b8eec0740716226fadb3735c/contrib/mkimage/debootstrap#L118-L130
echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > ${chroot}/etc/apt/apt.conf.d/docker-gzip-indexes
# https://github.com/docker/docker/blob/9a9fc01af8fb5d98b8eec0740716226fadb3735c/contrib/mkimage/debootstrap#L134-L151
echo 'Apt::AutoRemove::SuggestsImportant "false";' > ${chroot}/etc/apt/apt.conf.d/docker-autoremove-suggests
# delete all the apt list files since they're big and get stale quickly
rm -rf ${chroot}/var/lib/apt/lists/*
# verify that the APT lists files do not exist
Chroot chroot "apt-get indextargets" > indextargets.out
[ ! -s indextargets.out ]
rm indextargets.out
# (see https://bugs.launchpad.net/cloud-images/+bug/1699913)
# make systemd-detect-virt return "docker"
# See: https://github.com/systemd/systemd/blob/aa0c34279ee40bce2f9681b496922dedbadfca19/src/basic/virt.c#L434
mkdir -p ${chroot}/run/systemd
echo 'docker' > ${chroot}/run/systemd/container
rm -rf ${chroot}/var/cache/apt/*.bin
echo "==== Configuring OCI done ===="
}
configure_network_manager() { configure_network_manager() {
# If the image pre-installs network-manager, let it manage all devices by # If the image pre-installs network-manager, let it manage all devices by
# default. Installing NM on an existing system only manages wifi and wwan via # default. Installing NM on an existing system only manages wifi and wwan via

View File

@ -2,5 +2,5 @@
cat >>/etc/fstab<<EOT cat >>/etc/fstab<<EOT
# Minimal setup required for systemd to provide a r/w FS # Minimal setup required for systemd to provide a r/w FS
/dev/root / rootfs defaults 0 0 /dev/root / rootfs defaults 0 1
EOT EOT

View File

@ -58,7 +58,7 @@ create_and_mount_uefi_partition() {
mount "${uefi_dev}" "$mountpoint"/boot/efi mount "${uefi_dev}" "$mountpoint"/boot/efi
cat << EOF >> "mountpoint/etc/fstab" cat << EOF >> "mountpoint/etc/fstab"
LABEL=UEFI /boot/efi vfat defaults 0 0 LABEL=UEFI /boot/efi vfat umask=0077 0 1
EOF EOF
} }
@ -100,19 +100,9 @@ install_grub() {
--boot-directory=/boot \ --boot-directory=/boot \
--efi-directory=/boot/efi \ --efi-directory=/boot/efi \
--target=${efi_target} \ --target=${efi_target} \
--removable \
--uefi-secure-boot \ --uefi-secure-boot \
--no-nvram --no-nvram
if [ -f mountpoint/boot/efi/EFI/BOOT/grub.cfg ]; then
sed -i "s| root| root hd0,gpt1|" mountpoint/boot/efi/EFI/BOOT/grub.cfg
sed -i "1i${IMAGE_STR}" mountpoint/boot/efi/EFI/BOOT/grub.cfg
# For some reason the grub disk is looking for /boot/grub/grub.cfg on
# part 15....
chroot mountpoint mkdir -p /boot/efi/boot/grub
chroot mountpoint cp /boot/efi/EFI/BOOT/grub.cfg /boot/efi/boot/grub
fi
if [ "$ARCH" = "amd64" ]; then if [ "$ARCH" = "amd64" ]; then
# Install the BIOS/GPT bits. Since GPT boots from the ESP partition, # Install the BIOS/GPT bits. Since GPT boots from the ESP partition,
# it means that we just run this simple command and we're done # it means that we just run this simple command and we're done

View File

@ -72,7 +72,7 @@ if [ -n "${root_fs_label}" ]; then
sed -i "s,^[^#${bl}]*\([${bl}]*/[${bl}].*\),${lstr}\1," "${rootd}/etc/fstab" sed -i "s,^[^#${bl}]*\([${bl}]*/[${bl}].*\),${lstr}\1," "${rootd}/etc/fstab"
fi fi
cat > /etc/fstab << EOM cat > /etc/fstab << EOM
LABEL=cloudimg-rootfs / ext4 defaults 0 0 LABEL=cloudimg-rootfs / ext4 defaults 0 1
EOM EOM
# for quantal and newer, add /etc/overlayroot.local.conf # for quantal and newer, add /etc/overlayroot.local.conf

View File

@ -48,7 +48,7 @@ hv_sock
EOF EOF
cat << EOF >> "${scratch_d}/etc/fstab" cat << EOF >> "${scratch_d}/etc/fstab"
LABEL=$FS_LABEL / ext4 defaults 0 0 LABEL=$FS_LABEL / ext4 defaults 0 1
EOF EOF
# Customise xrdp # Customise xrdp