Use LSI Logic SCSI controller (#1695)

* Use LSI Logic SCSI controller in vmdk descriptor as well

For some reason, the vmdk disk format's descriptor contains the
controller type as well. By default, qemu-img sets it to "ide", which
seems not optimal especially for VMware's ESXi. Set adapter type to
commonly supported "lsilogic".

* Move ova image generation to hdd-image.sh
This commit is contained in:
Stefan Agner 2021-12-27 14:58:27 +01:00
parent 2a255728e3
commit 7b54b565c5
No known key found for this signature in database
GPG Key ID: AE01353D1E44747D
2 changed files with 17 additions and 12 deletions

View File

@ -14,9 +14,7 @@ function hassos_pre_image() {
function hassos_post_image() { function hassos_post_image() {
local HDD_IMG="$(hassos_image_name img)" local hdd_img="$(hassos_image_name img)"
local HDD_OVA="$(hassos_image_name ova)"
local OVA_DATA="${BINARIES_DIR}/ova"
# Virtual Disk images # Virtual Disk images
convert_disk_image_virtual convert_disk_image_virtual
@ -27,14 +25,8 @@ function hassos_post_image() {
convert_disk_image_xz qcow2 convert_disk_image_xz qcow2
# OVA # OVA
mkdir -p "${OVA_DATA}" convert_disk_image_ova
rm -f "${HDD_OVA}"
cp -a "${BOARD_DIR}/home-assistant.ovf" "${OVA_DATA}/home-assistant.ovf"
qemu-img convert -O vmdk -o subformat=streamOptimized "${HDD_IMG}" "${OVA_DATA}/home-assistant.vmdk"
(cd "${OVA_DATA}" || exit 1; "${HOST_DIR}/bin/openssl" sha256 home-assistant.* >home-assistant.mf)
tar -C "${OVA_DATA}" --owner=root --group=root -cf "${HDD_OVA}" home-assistant.ovf home-assistant.vmdk home-assistant.mf
# Cleanup # Cleanup
rm -f "${HDD_IMG}" rm -f "${hdd_img}"
} }

View File

@ -304,12 +304,25 @@ function convert_disk_image_virtual() {
rm -f "${hdd_vdi}" rm -f "${hdd_vdi}"
rm -f "${hdd_qcow2}" rm -f "${hdd_qcow2}"
qemu-img convert -O vmdk "${hdd_img}" "${hdd_vmdk}" qemu-img convert -O vmdk -o adapter_type=lsilogic "${hdd_img}" "${hdd_vmdk}"
qemu-img convert -O vhdx "${hdd_img}" "${hdd_vhdx}" qemu-img convert -O vhdx "${hdd_img}" "${hdd_vhdx}"
qemu-img convert -O vdi "${hdd_img}" "${hdd_vdi}" qemu-img convert -O vdi "${hdd_img}" "${hdd_vdi}"
qemu-img convert -O qcow2 "${hdd_img}" "${hdd_qcow2}" qemu-img convert -O qcow2 "${hdd_img}" "${hdd_qcow2}"
} }
function convert_disk_image_ova() {
local hdd_img="$(hassos_image_name img)"
local hdd_ova="$(hassos_image_name ova)"
local ova_data="${BINARIES_DIR}/ova"
mkdir -p "${ova_data}"
rm -f "${hdd_ova}"
cp -a "${BOARD_DIR}/home-assistant.ovf" "${ova_data}/home-assistant.ovf"
qemu-img convert -O vmdk -o subformat=streamOptimized,adapter_type=lsilogic "${hdd_img}" "${ova_data}/home-assistant.vmdk"
(cd "${ova_data}" || exit 1; "${HOST_DIR}/bin/openssl" sha256 home-assistant.* >home-assistant.mf)
tar -C "${ova_data}" --owner=root --group=root -cf "${hdd_ova}" home-assistant.ovf home-assistant.vmdk home-assistant.mf
}
function convert_disk_image_xz() { function convert_disk_image_xz() {
local hdd_ext=${1:-img} local hdd_ext=${1:-img}