mirror of
https://github.com/flatcar/scripts.git
synced 2025-11-28 14:01:43 +01:00
Added empty ext3 filesystem initialization for OEM partner partition.
BUG=http://crosbug.com/3828 TEST=When mounted, /dev/sd8 (OEM partition) has a valid empty filesystem on it. Review URL: http://codereview.chromium.org/2867030
This commit is contained in:
parent
5cf288fb1c
commit
110615446e
@ -97,6 +97,12 @@ if [ ! -s ${STATEFUL_IMG} ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
OEM_IMG="${IMAGEDIR}/partner_partition.image"
|
||||||
|
if [[ ! -s ${OEM_IMG} ]]; then
|
||||||
|
error "Can't find ${OEM_IMG}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
ESP_IMG="${IMAGEDIR}/esp.image"
|
ESP_IMG="${IMAGEDIR}/esp.image"
|
||||||
if [ ! -s ${ESP_IMG} ]; then
|
if [ ! -s ${ESP_IMG} ]; then
|
||||||
error "Can't find ${ESP_IMG}"
|
error "Can't find ${ESP_IMG}"
|
||||||
@ -142,6 +148,9 @@ echo "Copying stateful partition..."
|
|||||||
$sudo dd if=${STATEFUL_IMG} of=${OUTDEV} conv=notrunc bs=512 \
|
$sudo dd if=${STATEFUL_IMG} of=${OUTDEV} conv=notrunc bs=512 \
|
||||||
seek=${START_STATEFUL}
|
seek=${START_STATEFUL}
|
||||||
|
|
||||||
|
echo "Copying OEM partition..."
|
||||||
|
$sudo dd if=${OEM_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_OEM}
|
||||||
|
|
||||||
echo "Copying kernel..."
|
echo "Copying kernel..."
|
||||||
$sudo dd if=${KERNEL_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_KERN_A}
|
$sudo dd if=${KERNEL_IMG} of=${OUTDEV} conv=notrunc bs=512 seek=${START_KERN_A}
|
||||||
|
|
||||||
|
|||||||
45
build_image
45
build_image
@ -111,11 +111,15 @@ ROOT_FS_DIR="${OUTPUT_DIR}/rootfs"
|
|||||||
STATEFUL_FS_IMG="${OUTPUT_DIR}/stateful_partition.image"
|
STATEFUL_FS_IMG="${OUTPUT_DIR}/stateful_partition.image"
|
||||||
STATEFUL_FS_DIR="${OUTPUT_DIR}/stateful_partition"
|
STATEFUL_FS_DIR="${OUTPUT_DIR}/stateful_partition"
|
||||||
|
|
||||||
|
OEM_FS_IMG="${OUTPUT_DIR}/partner_partition.image"
|
||||||
|
OEM_FS_DIR="${OUTPUT_DIR}/partner_partition"
|
||||||
|
|
||||||
ESP_FS_IMG=${OUTPUT_DIR}/esp.image
|
ESP_FS_IMG=${OUTPUT_DIR}/esp.image
|
||||||
ESP_FS_DIR=${OUTPUT_DIR}/esp
|
ESP_FS_DIR=${OUTPUT_DIR}/esp
|
||||||
|
|
||||||
LOOP_DEV=
|
LOOP_DEV=
|
||||||
STATEFUL_LOOP_DEV=
|
STATEFUL_LOOP_DEV=
|
||||||
|
OEM_LOOP_DEV=
|
||||||
ESP_LOOP_DEV=
|
ESP_LOOP_DEV=
|
||||||
|
|
||||||
# ${DEV_IMAGE_ROOT} specifies the location of where developer packages will
|
# ${DEV_IMAGE_ROOT} specifies the location of where developer packages will
|
||||||
@ -187,6 +191,11 @@ cleanup_stateful_fs_loop() {
|
|||||||
sudo umount -d "${STATEFUL_FS_DIR}"
|
sudo umount -d "${STATEFUL_FS_DIR}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cleanup_oem_fs_loop() {
|
||||||
|
sudo umount -d "${OEM_FS_DIR}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
cleanup_esp_loop() {
|
cleanup_esp_loop() {
|
||||||
sudo umount -d "${ESP_FS_DIR}"
|
sudo umount -d "${ESP_FS_DIR}"
|
||||||
}
|
}
|
||||||
@ -199,6 +208,10 @@ cleanup() {
|
|||||||
cleanup_stateful_fs_loop
|
cleanup_stateful_fs_loop
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${OEM_LOOP_DEV}" ]]; then
|
||||||
|
cleanup_oem_fs_loop
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -n "${LOOP_DEV}" ]]; then
|
if [[ -n "${LOOP_DEV}" ]]; then
|
||||||
cleanup_rootfs_loop
|
cleanup_rootfs_loop
|
||||||
fi
|
fi
|
||||||
@ -363,14 +376,32 @@ create_base_image() {
|
|||||||
STATEFUL_SIZE_BYTES=$((1024 * 1024 * ${FLAGS_statefulfs_size}))
|
STATEFUL_SIZE_BYTES=$((1024 * 1024 * ${FLAGS_statefulfs_size}))
|
||||||
dd if=/dev/zero of="${STATEFUL_FS_IMG}" bs=1 count=1 \
|
dd if=/dev/zero of="${STATEFUL_FS_IMG}" bs=1 count=1 \
|
||||||
seek=$((STATEFUL_SIZE_BYTES - 1))
|
seek=$((STATEFUL_SIZE_BYTES - 1))
|
||||||
|
|
||||||
|
# Tune and mount the stateful partition.
|
||||||
|
UUID=$(uuidgen)
|
||||||
|
DISK_LABEL="C-STATE"
|
||||||
sudo losetup "${STATEFUL_LOOP_DEV}" "${STATEFUL_FS_IMG}"
|
sudo losetup "${STATEFUL_LOOP_DEV}" "${STATEFUL_FS_IMG}"
|
||||||
sudo mkfs.ext3 "${STATEFUL_LOOP_DEV}"
|
sudo mkfs.ext3 "${STATEFUL_LOOP_DEV}"
|
||||||
sudo tune2fs -L "C-STATE" -U "${UUID}" -c 0 -i 0 \
|
sudo tune2fs -L "${DISK_LABEL}" -U "${UUID}" -c 0 -i 0 "${STATEFUL_LOOP_DEV}"
|
||||||
"${STATEFUL_LOOP_DEV}"
|
|
||||||
|
|
||||||
# Mount the stateful partition.
|
|
||||||
sudo mount "${STATEFUL_LOOP_DEV}" "${STATEFUL_FS_DIR}"
|
sudo mount "${STATEFUL_LOOP_DEV}" "${STATEFUL_FS_DIR}"
|
||||||
|
|
||||||
|
# Create OEM partner partition.
|
||||||
|
OEM_LOOP_DEV=$(sudo losetup -f)
|
||||||
|
if [ -z "${OEM_LOOP_DEV}" ] ; then
|
||||||
|
echo "No free loop device. Free up a loop device or reboot. exiting. "
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
OEM_SIZE_BYTES=$((1024 * 1024 * 16))
|
||||||
|
dd if=/dev/zero of="${OEM_FS_IMG}" bs=1 count=1 seek=$((OEM_SIZE_BYTES - 1))
|
||||||
|
|
||||||
|
# Tune and mount OEM partner partition.
|
||||||
|
UUID=$(uuidgen)
|
||||||
|
DISK_LABEL="C-OEM"
|
||||||
|
sudo losetup "${OEM_LOOP_DEV}" "${OEM_FS_IMG}"
|
||||||
|
sudo mkfs.ext3 "${OEM_LOOP_DEV}"
|
||||||
|
sudo tune2fs -L "${DISK_LABEL}" -U "${UUID}" -c 0 -i 0 "${OEM_LOOP_DEV}"
|
||||||
|
sudo mount "${OEM_LOOP_DEV}" "${OEM_FS_DIR}"
|
||||||
|
|
||||||
# Turn root file system into bootable image.
|
# Turn root file system into bootable image.
|
||||||
if [[ "${ARCH}" = "x86" ]]; then
|
if [[ "${ARCH}" = "x86" ]]; then
|
||||||
# Setup extlinux configuration.
|
# Setup extlinux configuration.
|
||||||
@ -535,6 +566,7 @@ EOF
|
|||||||
mkdir -p "${OUTPUT_DIR}"
|
mkdir -p "${OUTPUT_DIR}"
|
||||||
mkdir -p "${ROOT_FS_DIR}"
|
mkdir -p "${ROOT_FS_DIR}"
|
||||||
mkdir -p "${STATEFUL_FS_DIR}"
|
mkdir -p "${STATEFUL_FS_DIR}"
|
||||||
|
mkdir -p "${OEM_FS_DIR}"
|
||||||
mkdir -p "${ESP_FS_DIR}"
|
mkdir -p "${ESP_FS_DIR}"
|
||||||
|
|
||||||
# Preserve old images by copying them forward for --preserve.
|
# Preserve old images by copying them forward for --preserve.
|
||||||
@ -571,8 +603,9 @@ fi
|
|||||||
# Clean up temporary files.
|
# Clean up temporary files.
|
||||||
rm -f "${ROOT_FS_IMG}" "${STATEFUL_FS_IMG}" "${OUTPUT_DIR}/vmlinuz.image" \
|
rm -f "${ROOT_FS_IMG}" "${STATEFUL_FS_IMG}" "${OUTPUT_DIR}/vmlinuz.image" \
|
||||||
"${ESP_FS_IMG}" "${OUTPUT_DIR}/data4_sign8.keyblock" \
|
"${ESP_FS_IMG}" "${OUTPUT_DIR}/data4_sign8.keyblock" \
|
||||||
"${OUTPUT_DIR}/key_alg4.vbpubk" "${OUTPUT_DIR}/key_alg8.vbpubk"
|
"${OUTPUT_DIR}/key_alg4.vbpubk" "${OUTPUT_DIR}/key_alg8.vbpubk" \
|
||||||
rmdir "${ROOT_FS_DIR}" "${STATEFUL_FS_DIR}" "${ESP_FS_DIR}"
|
"${OEM_FS_IMG}"
|
||||||
|
rmdir "${ROOT_FS_DIR}" "${STATEFUL_FS_DIR}" "${OEM_FS_DIR}" "${ESP_FS_DIR}"
|
||||||
|
|
||||||
echo "Done. Image created in ${OUTPUT_DIR}"
|
echo "Done. Image created in ${OUTPUT_DIR}"
|
||||||
echo "Chromium OS image created as ${PRISTINE_IMAGE_NAME}"
|
echo "Chromium OS image created as ${PRISTINE_IMAGE_NAME}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user