mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-02-22 02:41:12 +00:00
Refactor ubuntu-cpc hooks to allow us to handle images where the root
partition should not be partition 1.
This commit is contained in:
parent
7ec8dd87ac
commit
99cdaafd61
2
debian/changelog
vendored
2
debian/changelog
vendored
@ -18,6 +18,8 @@ livecd-rootfs (2.376) UNRELEASED; urgency=medium
|
||||
environment, because auto/config and auto/build both rely on this. So
|
||||
don't scatter dpkg --print-architecture calls throughout, especially
|
||||
when many of these are not cross-build-aware.
|
||||
* Refactor ubuntu-cpc hooks to allow us to handle images where the root
|
||||
partition should not be partition 1.
|
||||
|
||||
-- Łukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com> Thu, 04 Feb 2016 17:31:18 +0100
|
||||
|
||||
|
@ -41,6 +41,7 @@ mount_image() {
|
||||
apt-get install -qqy kpartx
|
||||
trap clean_loops EXIT
|
||||
backing_img="$1"
|
||||
local rootpart="$2"
|
||||
kpartx_mapping="$(kpartx -s -v -a ${backing_img})"
|
||||
|
||||
# Find the loop device
|
||||
@ -51,8 +52,12 @@ mount_image() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# don't assume we know the separator between device number and partition
|
||||
# number in the partition name, as this has changed over time.
|
||||
partsep=$(echo "$loop_p1" | sed -e's/^loop[0-9]\+\(.*\)[0-9]\+/\1/')
|
||||
|
||||
# Find the rootfs location
|
||||
rootfs_dev_mapper="/dev/mapper/${loop_p1}"
|
||||
rootfs_dev_mapper="/dev/mapper/${loop_device}${partsep}${rootpart}"
|
||||
if [ ! -b "${rootfs_dev_mapper}" ]; then
|
||||
echo "${rootfs_dev_mapper} is not a block device";
|
||||
exit 1
|
||||
@ -83,7 +88,7 @@ mount_partition() {
|
||||
mount_disk_image() {
|
||||
local disk_image=${1}
|
||||
local mountpoint=${2}
|
||||
mount_image ${disk_image}
|
||||
mount_image ${disk_image} 1
|
||||
mount_partition "${rootfs_dev_mapper}" $mountpoint
|
||||
|
||||
local uefi_dev="/dev/mapper${loop_device///dev/}p15"
|
||||
|
@ -1,13 +1,17 @@
|
||||
#!/bin/bash -eux
|
||||
|
||||
. /build/config/functions
|
||||
|
||||
case $ARCH in
|
||||
ppc64el)
|
||||
echo "ppc64el disk images are handled separately"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
ROOTPART=1
|
||||
;;
|
||||
esac
|
||||
|
||||
. /build/config/functions
|
||||
|
||||
create_empty_partition() {
|
||||
apt-get install -qqy parted
|
||||
parted_prefix="parted $1 --script --"
|
||||
@ -16,14 +20,14 @@ create_empty_partition() {
|
||||
${parted_prefix} mkpart primary 1 -1
|
||||
${parted_prefix} set 1 B
|
||||
${parted_prefix} print
|
||||
${parted_prefix} align-check opt 1
|
||||
${parted_prefix} align-check opt "$2"
|
||||
}
|
||||
|
||||
disk_image=binary/boot/disk.ext4
|
||||
|
||||
create_empty_disk_image "${disk_image}"
|
||||
create_empty_partition "${disk_image}"
|
||||
mount_image "${disk_image}"
|
||||
create_empty_partition "${disk_image}" "$ROOTPART"
|
||||
mount_image "${disk_image}" "$ROOTPART"
|
||||
|
||||
# Copy the chroot in to the disk
|
||||
make_ext4_partition "${rootfs_dev_mapper}"
|
||||
|
@ -128,7 +128,7 @@ disk_image=binary/boot/disk-uefi.ext4
|
||||
|
||||
create_empty_disk_image "${disk_image}"
|
||||
create_partitions "${disk_image}"
|
||||
mount_image "${disk_image}"
|
||||
mount_image "${disk_image}" 1
|
||||
|
||||
# Copy the chroot in to the disk
|
||||
make_ext4_partition "${rootfs_dev_mapper}"
|
||||
|
@ -58,7 +58,7 @@ disk_image=binary/boot/disk.ext4
|
||||
|
||||
create_empty_disk_image "${disk_image}"
|
||||
create_partitions "${disk_image}"
|
||||
mount_image "${disk_image}"
|
||||
mount_image "${disk_image}" 1
|
||||
|
||||
# Copy the chroot in to the disk
|
||||
make_ext4_partition "${rootfs_dev_mapper}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user