Use qcow2 for disk image instead of raw image

This make the release bundle much smaller, the disk image size
change from 512M to 2xsizeof(squashimage)
This commit is contained in:
Mattias Walström
2025-04-07 08:16:33 +02:00
parent 6cfe5f8c58
commit d3fa51e4fa
7 changed files with 25 additions and 19 deletions
+5 -3
View File
@@ -127,7 +127,7 @@ bootdata=
diskimg=disk.img
bootimg=
bootpart=
tmpimage=$(mktemp)
while getopts "a:b:B:n:s:" opt; do
case ${opt} in
a)
@@ -166,7 +166,7 @@ awk \
-vimgsize=$imgsize \
-vcfgsize=$cfgsize \
-vvarsize=$varsize \
-vdiskimg=$diskimg \
-vdiskimg=$tmpimage \
-vbootimg="$bootimg" -vbootpart="$bootpart" \
'{
sub(/@TOTALSIZE@/, total);
@@ -211,5 +211,7 @@ genimage \
--rootpath "$root" \
--tmppath "$tmp" \
--inputpath "$BINARIES_DIR" \
--outputpath "$BINARIES_DIR" \
--config "$root/genimage.cfg"
qemu-img convert -c -O qcow2 "$tmpimage" "$BINARIES_DIR/$diskimg"
rm "$tmpimage"
+2 -2
View File
@@ -23,7 +23,7 @@ if [ -n "$IMAGE_ID" ]; then
else
NAME="$INFIX_ID"-$(echo "$BR2_ARCH" | tr _ - | sed 's/x86-64/x86_64/')
fi
diskimg=disk.img
diskimg=disk.qcow2
ver()
{
@@ -48,7 +48,7 @@ fi
load_cfg DISK_IMAGE
if [ "$DISK_IMAGE" = "y" ]; then
ixmsg "Creating Disk Image"
diskimg="${NAME}-disk$(ver).img"
diskimg="${NAME}-disk$(ver).qcow2"
bootcfg=
if [ "$DISK_IMAGE_BOOT_DATA" ]; then
bootcfg="-b $DISK_IMAGE_BOOT_DATA -B $DISK_IMAGE_BOOT_OFFSET"
+5 -5
View File
@@ -120,7 +120,7 @@ rootfs_args()
echo -n "-device sd-card,drive=mmc "
echo -n "-drive id=mmc,file=$CONFIG_QEMU_ROOTFS,if=none,format=raw "
elif [ "$CONFIG_QEMU_ROOTFS_VSCSI" = "y" ]; then
echo -n "-drive file=$CONFIG_QEMU_ROOTFS.qcow2,if=virtio,format=qcow2,bus=0,unit=0 "
echo -n "-drive file=qemu.qcow2,if=virtio,format=qcow2,bus=0,unit=0 "
fi
}
@@ -316,13 +316,13 @@ gdb_args()
run_qemu()
{
if [ "$CONFIG_QEMU_ROOTFS_VSCSI" = "y" ]; then
if ! qemu-img check "${CONFIG_QEMU_ROOTFS}.qcow2"; then
rm -f "${CONFIG_QEMU_ROOTFS}.qcow2"
if ! qemu-img check "qemu.qcow2"; then
rm -f "qemu.qcow2"
fi
if [ ! -f "${CONFIG_QEMU_ROOTFS}.qcow2" ]; then
if [ ! -f "qemu.qcow2" ]; then
echo "Creating qcow2 disk image for Qemu ..."
qemu-img create -f qcow2 -o backing_file="$CONFIG_QEMU_ROOTFS" \
-F raw "${CONFIG_QEMU_ROOTFS}.qcow2" > /dev/null
-F qcow2 "qemu.qcow2" > /dev/null
fi
fi
+10 -6
View File
@@ -74,7 +74,7 @@ get_base_img()
{
local files="$1"
local base_img_file
base_img_file=$(echo "$files" | tr ' ' '\n' | grep -- '-disk.img$')
base_img_file=$(echo "$files" | tr ' ' '\n' | grep -- '-disk.qcow2$')
echo "$envdir/qeneth/$(basename "$base_img_file")"
}
@@ -96,16 +96,20 @@ start_topology()
done
base_img=$(get_base_img "$files")
test_img="${base_img%-disk.img}-disk-test.img"
$testdir/inject-test-mode -b "$base_img" -o "$test_img"
test_img_name="${base_img%-disk.qcow2}-disk-test"
base_img_name="${base_img%-disk.qcow2}-disk"
test_img_raw="${test_img_name}.img"
base_img_raw="${base_img_name}.img"
test_img_qcow2="${test_img_name}.qcow2"
img_name=$(basename "$test_img")
qemu-img convert -f qcow2 -O raw "$base_img" "$base_img_raw"
$testdir/inject-test-mode -b "$base_img_raw" -o "$test_img_raw"
qemu-img convert -f raw -O qcow2 "$test_img_raw" "$test_img_qcow2"
img_name=$(basename $test_img_qcow2)
sed -i "s/qn_image=\".*\"/qn_image=\"$img_name\"/" "$envdir/qeneth/topology.dot.in"
(cd "$envdir/qeneth/" && $qeneth generate && $qeneth start)
INFAMY_ARGS="$INFAMY_ARGS $envdir/qeneth/topology.dot"
cat <<EOF >"$envdir/bin/qeneth"
#!/bin/sh
cd $envdir/qeneth && exec $testdir/qeneth/qeneth "\$@"
+1 -1
View File
@@ -16,7 +16,7 @@ mode-run := -t $(BINARIES_DIR)/qemu.dot
mode := $(mode-$(TEST_MODE))
INFIX_IMAGE_ID := $(call qstrip,$(INFIX_IMAGE_ID))
binaries-$(ARCH) := $(addprefix $(INFIX_IMAGE_ID),.img -disk.img)
binaries-$(ARCH) := $(addprefix $(INFIX_IMAGE_ID),.img -disk.qcow2)
pkg-$(ARCH) := -p $(O)/images/$(addprefix $(INFIX_IMAGE_ID),.pkg)
binaries-x86_64 += OVMF.fd
binaries := $(foreach bin,$(binaries-$(ARCH)),-f $(BINARIES_DIR)/$(bin))
+1 -1
View File
@@ -9,7 +9,7 @@ graph "quad" {
edge [color="cornflowerblue", penwidth="2"];
qn_template="infix-bios-x86_64";
qn_image="infix-x86_64-disk-test.img"
qn_image="infix-x86_64-disk-test.qcow2"
qn_oui="00:a0:85";
qn_append="quiet";