commit:     112acab35f410b185e8d55eef8aba924c1bf26f8
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  2 11:10:36 2025 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Aug  2 11:10:36 2025 +0000
URL:        https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=112acab3

Revert "Add support for bios boot in qcow2 images"

Doesn't work yet.
This reverts commit 8bcf3bcb36880a00bdbc26aa594dd075862f146f.

Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 targets/support/create-qcow2.sh       | 102 +++++++++-------------------------
 targets/support/qcow2-grub-install.sh |  14 +----
 2 files changed, 28 insertions(+), 88 deletions(-)

diff --git a/targets/support/create-qcow2.sh b/targets/support/create-qcow2.sh
index 5808ee85..499197f2 100755
--- a/targets/support/create-qcow2.sh
+++ b/targets/support/create-qcow2.sh
@@ -11,15 +11,12 @@ source ${clst_shdir}/support/functions.sh
 #
 # Configuration parameters:
 # All sizes are in forms as understood by parted: use MiB, GiB, ... or M, G, 
...
-#  - clst_qcow2_size      (internal) size of the qcow2 image in MiB (default 
20GiB)
-#  - clst_qcow2_efisize   size of the EFI boot partition in MiB (default 
512MiB)
+#  - clst_qcow2_size      (internal) size of the qcow2 image (default 20GiB)
+#  - clst_qcow2_efisize   size of the EFI boot partition (default 512MiB)
 #  - clst_qcow2_roottype  type of the root partition (default xfs)
 #
-: "${clst_qcow2_size:=20480}"
-: "${clst_qcow2_biossize:=4}"
-: "${clst_qcow2_efisize:=512}"
-: "${clst_qcow2_enable_bios:=1}"
-: "${clst_qcow2_enable_efi:=1}"
+: "${clst_qcow2_size:=20GiB}"
+: "${clst_qcow2_efisize:=512MiB}"
 : "${clst_qcow2_roottype:=xfs}"
 
 #
@@ -54,7 +51,6 @@ qcow2die() {
 
        umount "${mydevice}p1"
        umount "${mydevice}p2"
-       umount "${mydevice}p3"
        qemu-nbd -d "${mydevice}"
 
        die "Caught error: $@"
@@ -63,9 +59,7 @@ qcow2die() {
 # We need a means to execute a script inside the qcow with filesystems mounted
 # Which means reproducing half of catalyst here.
 exec_in_qcow2() {
-       local file_full="${1}"
        local file_name=$(basename ${1})
-       shift
 
        # prepare qcow2 for chrooting
        mount --types proc /proc "${mymountpoint}/proc"
@@ -76,8 +70,8 @@ exec_in_qcow2() {
        mount --bind /run "${mymountpoint}/run"
        mount --make-slave "${mymountpoint}/run"
 
-       # copy_to_chroot ${file_full}
-       cp -pPR "${file_full}" "${mymountpoint}/tmp" || qcow2die
+       # copy_to_chroot ${1}
+       cp -pPR "${1}" "${mymountpoint}/tmp" || qcow2die
         # copy_to_chroot ${clst_shdir}/support/chroot-functions.sh
         cp -pPR "${clst_shdir}/support/chroot-functions.sh" 
"${mymountpoint}/tmp" || qcow2die
 
@@ -93,8 +87,8 @@ exec_in_qcow2() {
        fi
 
         echo "Running ${file_name} in qcow2:"
-        echo "    ${clst_CHROOT} ${mymountpoint} /tmp/${file_name} $@"
-        ${clst_CHROOT} "${mymountpoint}" "/tmp/${file_name}" $@ || qcow2die
+        echo "    ${clst_CHROOT} ${mymountpoint} /tmp/${file_name}"
+        ${clst_CHROOT} "${mymountpoint}" "/tmp/${file_name}" || qcow2die
 
        # Remove binary interpreter
        if [[ -n "${clst_interpreter}" ]] ; then
@@ -126,53 +120,19 @@ sleep 5s
 echo "Creating a GPT disklabel"
 parted -s ${mydevice} mklabel gpt 2>&1 || qcow2die "Cannot create disklabel"
 
-echo "We start with partition 1 and sector 2048"
-mynextpart=1
-mynextsector=2048
-
-mypartbios=""
-mypartefi=""
-
-if [[ "${clst_qcow2_enable_bios}" == "1" ]] ; then
-
-       mysectors=$(( ${clst_qcow2_biossize} * 2048 ))
-       myendsector=$(( ${mynextsector} + ${mysectors} - 1 ))
-
-       echo "Creating a bios boot partition, number ${mynextpart}, size 
${clst_qcow2_biossize}, start ${mynextsector}, end ${myendsector}"
-       parted -s ${mydevice} -- mkpart gentoobios ${mynextsector}s 
${myendsector}s || qcow2die "Cannot create bios boot partition"
-       # mark it as bios boot partition
-       parted -s ${mydevice} -- type ${mynextpart} 
21686148-6449-6E6F-744E-656564454649 || qcow2die "Cannot set bios boot 
partition UUID"
-       # note down name
-       mypartbios=${mydevice}p${mynextpart}
-       # increase counters
-       mynextpart=$(( ${mynextpart} +1 ))
-       mynextsector=$(( ${mynextsector} + ${mysectors} ))
-
-fi
-
-if [[ "${clst_qcow2_enable_efi}" == "1" ]] ; then
-
-       mysectors=$(( ${clst_qcow2_efisize} * 2048 ))
-       myendsector=$(( ${mynextsector} + ${mysectors} - 1 ))
-
-       echo "Creating an EFI boot partition, number ${mynextpart}, size 
${clst_qcow2_efisize}, start ${mynextsector}, end ${myendsector}"
-       parted -s ${mydevice} -- mkpart gentooefi fat32 ${mynextsector}s 
${myendsector}s || qcow2die "Cannot create EFI partition"
-       # mark it as EFI boot partition
-       parted -s ${mydevice} -- type ${mynextpart} 
C12A7328-F81F-11D2-BA4B-00A0C93EC93B || qcow2die "Cannot set EFI partition UUID"
-       # note down name
-       mypartefi=${mydevice}p${mynextpart}
-       # increase counters
-       mynextpart=$(( ${mynextpart} +1 ))
-       mynextsector=$(( ${mynextsector} + ${mysectors} ))
-
-fi
+echo "Creating an EFI boot partition"
+parted -s ${mydevice} -- mkpart gentooefi fat32 1M ${clst_qcow2_efisize} || 
qcow2die "Cannot create EFI partition"
+# mark it as EFI boot partition
+parted -s ${mydevice} -- type 1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B || 
qcow2die "Cannot set EFI partition UUID"
+# note down name
+mypartefi=${mydevice}p1
 
-echo "Creating the root partition, number ${mynextpart}, start ${mynextsector}"
-parted -s ${mydevice} -- mkpart gentooroot ${clst_qcow2_roottype} 
${mynextsector}s -1s || qcow2die "Cannot create root partition"
+echo "Creating the root partition"
+parted -s ${mydevice} -- mkpart gentooroot ${clst_qcow2_roottype} 
${clst_qcow2_efisize}GiB -1M || qcow2die "Cannot create root partition"
 # mark it as generic linux filesystem partition
-parted -s ${mydevice} -- type ${mynextpart} 
0FC63DAF-8483-4772-8E79-3D69D8477DE4 || qcow2die "Cannot set root partition 
UUID"
+parted -s ${mydevice} -- type 2 0FC63DAF-8483-4772-8E79-3D69D8477DE4 || 
qcow2die "Cannot set root partition UUID"
 # note down name
-mypartroot=${mydevice}p${mynextpart}
+mypartroot=${mydevice}p2
 
 echo "Re-reading the partition table"
 partprobe ${mydevice} || qcow2die "Probing partition table failed"
@@ -183,12 +143,10 @@ parted -s ${mydevice} -- print || qcow2die "Printing the 
partition table failed"
 echo "Waiting 5s to ensure the partition device nodes exist"
 sleep 5s
 
-if [[ "${clst_qcow2_enable_efi}" == "1" ]] ; then
-       echo "Making a vfat filesystem in ${mypartefi}"
-       mkfs.fat -v -F 32 -n gentooefi ${mypartefi} || qcow2die "Formatting EFI 
partition failed"
-fi
+echo "Making a vfat filesystem in p1"
+mkfs.fat -v -F 32 -n gentooefi ${mypartefi} || qcow2die "Formatting EFI 
partition failed"
 
-echo "Making an xfs filesystem in ${mypartroot}"
+echo "Making an xfs filesystem in p2"
 # nrext64=0 is needed for compatibility with 5.15 kernels
 mkfs.xfs -i nrext64=0 -L gentooroot ${mypartroot} || qcow2die "Formatting root 
partition failed"
 
@@ -198,10 +156,8 @@ blkid ${mydevice}* || qcow2die "blkid failed"
 echo "Mounting things at ${mymountpoint}"
 mkdir -p "${mymountpoint}" || qcow2die "Could not create root mount point"
 mount ${mypartroot} "${mymountpoint}" || qcow2die "Could not mount root 
partition"
-if [[ "${clst_qcow2_enable_efi}" == "1" ]] ; then
-       mkdir -p "${mymountpoint}"/boot || qcow2die "Could not create boot 
mount point"
-       mount ${mypartefi} "${mymountpoint}/boot" || qcow2die "Could not mount 
boot partition"
-fi
+mkdir -p "${mymountpoint}"/boot || qcow2die "Could not create boot mount point"
+mount ${mypartefi} "${mymountpoint}/boot" || qcow2die "Could not mount boot 
partition"
 
 # copy contents in; the source is the stage dir and not any "iso content"
 echo "Copying files into the mounted directories from ${clst_stage_path}"
@@ -215,7 +171,7 @@ rm -f "${mymountpoint}/etc/machine-id"
 touch "${mymountpoint}/etc/machine-id" || qcow2die "Could not set machine-id 
to empty"
 
 # now we can chroot in and install grub
-exec_in_qcow2 "${clst_shdir}/support/qcow2-grub-install.sh" ${mydevice} 
${clst_qcow2_enable_bios} ${clst_qcow2_enable_efi}
+exec_in_qcow2 "${clst_shdir}/support/qcow2-grub-install.sh"
 
 echo "Generating /etc/fstab"
 cat > "${mymountpoint}/etc/fstab" <<END
@@ -226,13 +182,9 @@ cat > "${mymountpoint}/etc/fstab" <<END
 # <fs>                  <mountpoint>    <type>          <opts>          
<dump/pass>
 
 LABEL=gentooroot            /               xfs              noatime,rw   0 1
-END
-
-if [[ "${clst_qcow2_enable_efi}" == "1" ]] ; then
-cat >> "${mymountpoint}/etc/fstab" <<END
 LABEL=gentooefi             /boot           vfat             defaults     1 2
+
 END
-fi
 
 echo "Creating a CONTENTS file ${myqcow2}.CONTENTS"
 pushd "${mymountpoint}/" &> /dev/null || qcow2die "Could not cd into 
mountpoint"
@@ -243,9 +195,7 @@ echo "Compressing the CONTENTS file"
 gzip "${myqcow2}.CONTENTS"      || qcow2die "Could not compress the CONTENTS 
file"
 
 echo "Unmounting things"
-if [[ "${clst_qcow2_enable_efi}" == "1" ]] ; then
-       umount "${mymountpoint}/boot" || qcow2die "Could not unmount boot 
partition"
-fi
+umount "${mymountpoint}/boot" || qcow2die "Could not unmount boot partition"
 umount "${mymountpoint}" || qcow2die "Could not unmount root partition"
 
 echo "Disconnecting ${mydevice}"

diff --git a/targets/support/qcow2-grub-install.sh 
b/targets/support/qcow2-grub-install.sh
index 306dedb3..4806be06 100755
--- a/targets/support/qcow2-grub-install.sh
+++ b/targets/support/qcow2-grub-install.sh
@@ -5,10 +5,6 @@ source /tmp/chroot-functions.sh
 echo "Setting up grub for also serial console"
 cat >> /etc/default/grub <<THISISIT
 
-mydevice="${1}"
-enablebios="${2}"
-enableefi="${3}"
-
 # Added by catalyst
 GRUB_TERMINAL='serial console'
 GRUB_SERIAL_COMMAND='serial --speed 115200 --unit=0 --word=8 --parity=no 
--stop=1'
@@ -20,14 +16,8 @@ grub-mkconfig -o /boot/grub/grub.cfg
 
 case ${clst_hostarch} in
        amd64)
-               if [[ ${enablebios} == "1" ]]; then
-                       echo "Installing grub with target i386-pc in 
${mydevice}"
-                       grub-install --target=i386-pc ${mydevice}
-               fi
-               if [[ ${enableefi} == "1" ]]; then
-                       echo "Installing grub with target x86_64-efi"
-                       grub-install --no-floppy --efi-directory=/boot 
--removable --skip-fs-probe --no-nvram --no-bootsector --target=x86_64-efi
-               fi
+               echo "Installing grub with target x86_64-efi"
+               grub-install --no-floppy --efi-directory=/boot --removable 
--skip-fs-probe --no-nvram --no-bootsector --target=x86_64-efi
                ;;
        arm64)
                echo "Installing grub with target arm64-efi"

Reply via email to