mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-02-10 04:37:29 +00:00
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.
85 lines
1.9 KiB
Bash
Executable File
85 lines
1.9 KiB
Bash
Executable File
#!/bin/bash -eux
|
|
case $ARCH in
|
|
ppc64el|powerpc)
|
|
;;
|
|
*)
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
IMAGE_STR="# CLOUD_IMG: This file was created/modified by the Cloud Image build process"
|
|
FS_LABEL="cloudimg-rootfs"
|
|
|
|
. config/binary
|
|
|
|
. config/functions
|
|
|
|
create_partitions() {
|
|
disk_image="$1"
|
|
sgdisk "${disk_image}" \
|
|
--zap-all
|
|
sgdisk "${disk_image}" \
|
|
--new=2::+8M \
|
|
--new=1:
|
|
sgdisk "${disk_image}" -t 2:4100
|
|
sgdisk "${disk_image}" \
|
|
--print
|
|
}
|
|
|
|
install_grub() {
|
|
mkdir mountpoint
|
|
mount_partition "${rootfs_dev_mapper}" mountpoint
|
|
|
|
chroot mountpoint apt-get -qqy update
|
|
chroot mountpoint apt-get -qqy install grub-ieee1275
|
|
chroot mountpoint apt-get -qqy remove --purge grub-legacy-ec2
|
|
chroot mountpoint apt-get autoremove --purge --assume-yes
|
|
|
|
# set the kernel commandline to use hvc0
|
|
mkdir -p mountpoint/etc/default/grub.d
|
|
cat << EOF > mountpoint/etc/default/grub.d/50-cloudimg-settings.cfg
|
|
${IMAGE_STR}
|
|
|
|
# Set the recordfail timeout
|
|
GRUB_RECORDFAIL_TIMEOUT=0
|
|
|
|
# Do not wait on grub prompt
|
|
GRUB_TIMEOUT=0
|
|
|
|
# Set the default commandline
|
|
GRUB_CMDLINE_LINUX_DEFAULT="console=hvc0 earlyprintk"
|
|
EOF
|
|
prep_partition="/dev/mapper${loop_device///dev/}p2"
|
|
chroot mountpoint grub-install "${prep_partition}" \
|
|
--no-nvram \
|
|
--boot-directory=/boot \
|
|
--target=powerpc-ieee1275
|
|
|
|
divert_grub mountpoint
|
|
chroot mountpoint update-grub
|
|
replace_grub_root_with_label mountpoint
|
|
undivert_grub mountpoint
|
|
|
|
umount_partition mountpoint
|
|
rmdir mountpoint
|
|
}
|
|
|
|
disk_image=binary/boot/disk.ext4
|
|
|
|
create_empty_disk_image "${disk_image}"
|
|
create_partitions "${disk_image}"
|
|
mount_image "${disk_image}" 1
|
|
|
|
# Copy the chroot in to the disk
|
|
make_ext4_partition "${rootfs_dev_mapper}"
|
|
mkdir mountpoint
|
|
mount "${rootfs_dev_mapper}" mountpoint
|
|
cp -a chroot/* mountpoint/
|
|
umount mountpoint
|
|
rmdir mountpoint
|
|
|
|
install_grub
|
|
|
|
clean_loops
|
|
trap - EXIT
|