mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-22 22:21:10 +02:00
feat(image_to_vm): AMI support
add support for the hybrid MBR and OEM partition on Amazon.
This commit is contained in:
parent
898ab93461
commit
268a1efd3f
@ -12,6 +12,7 @@ SCRIPT_ROOT=$(dirname "$(readlink -f "$0")")
|
|||||||
. "${SCRIPT_ROOT}/common.sh" || exit 1
|
. "${SCRIPT_ROOT}/common.sh" || exit 1
|
||||||
. "${SCRIPT_ROOT}/build_library/disk_layout_util.sh" || exit 1
|
. "${SCRIPT_ROOT}/build_library/disk_layout_util.sh" || exit 1
|
||||||
. "${SCRIPT_ROOT}/build_library/build_common.sh" || exit 1
|
. "${SCRIPT_ROOT}/build_library/build_common.sh" || exit 1
|
||||||
|
. "${SCRIPT_ROOT}/build_library/build_image_util.sh" || exit 1
|
||||||
|
|
||||||
# Need to be inside the chroot to load chromeos-common.sh
|
# Need to be inside the chroot to load chromeos-common.sh
|
||||||
assert_inside_chroot
|
assert_inside_chroot
|
||||||
@ -142,6 +143,32 @@ else
|
|||||||
sudo e2fsck -pf "${TEMP_STATE}"
|
sudo e2fsck -pf "${TEMP_STATE}"
|
||||||
sudo resize2fs "${TEMP_STATE}" ${STATEFUL_SIZE_MEGABYTES}M
|
sudo resize2fs "${TEMP_STATE}" ${STATEFUL_SIZE_MEGABYTES}M
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# handle OEM stuff if needed
|
||||||
|
TEMP_OEM_MNT="${TEMP_DIR}"/oem_mnt
|
||||||
|
mkdir -p $TEMP_OEM_MNT
|
||||||
|
sudo mount -o loop ${TEMP_OEM} ${TEMP_OEM_MNT}
|
||||||
|
|
||||||
|
# oem hacks
|
||||||
|
if [ "${FLAGS_format}" == "ami" ]; then
|
||||||
|
echo ami
|
||||||
|
emerge_to_image --root="${TEMP_OEM_MNT}" oem-ami
|
||||||
|
# sudo rm -rf, how could this go wrong?
|
||||||
|
# TODO: figure out how to keep portage from putting these
|
||||||
|
# portage files on disk, we don't need or want them.
|
||||||
|
sudo rm -rvf ${TEMP_OEM_MNT}/var
|
||||||
|
sudo rm -rvf ${TEMP_OEM_MNT}/etc
|
||||||
|
sudo rm -rvf ${TEMP_OEM_MNT}/tmp
|
||||||
|
if [ ! -e ${TEMP_OEM_MNT}/run.sh ]; then
|
||||||
|
echo "ERROR: requires oem/run.sh for oem partition to work" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo umount ${TEMP_OEM_MNT}
|
||||||
|
rm -rf ${TEMP_OEM_MNT}
|
||||||
|
|
||||||
|
|
||||||
TEMP_PMBR="${TEMP_DIR}"/pmbr
|
TEMP_PMBR="${TEMP_DIR}"/pmbr
|
||||||
dd if="${SRC_IMAGE}" of="${TEMP_PMBR}" bs=512 count=1
|
dd if="${SRC_IMAGE}" of="${TEMP_PMBR}" bs=512 count=1
|
||||||
|
|
||||||
@ -174,6 +201,20 @@ if [ "${FLAGS_format}" = "virtualbox" -o "${FLAGS_format}" = "qemu" \
|
|||||||
elif [ "${FLAGS_format}" = "vmware" ]; then
|
elif [ "${FLAGS_format}" = "vmware" ]; then
|
||||||
qemu-img convert -f raw "${TEMP_IMG}" \
|
qemu-img convert -f raw "${TEMP_IMG}" \
|
||||||
-O vmdk "${FLAGS_to}/${FLAGS_vmdk}"
|
-O vmdk "${FLAGS_to}/${FLAGS_vmdk}"
|
||||||
|
elif [ "${FLAGS_format}" = "ami" ]; then
|
||||||
|
/usr/sbin/gdisk ${TEMP_IMG} <<EOF
|
||||||
|
r
|
||||||
|
h
|
||||||
|
1
|
||||||
|
N
|
||||||
|
c
|
||||||
|
Y
|
||||||
|
N
|
||||||
|
w
|
||||||
|
Y
|
||||||
|
Y
|
||||||
|
EOF
|
||||||
|
mv ${TEMP_IMG} ${FLAGS_to}/${DEFAULT_QEMU_IMAGE/qemu/ami}
|
||||||
else
|
else
|
||||||
die_notrace "Invalid format: ${FLAGS_format}"
|
die_notrace "Invalid format: ${FLAGS_format}"
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user