support for qcow2 riscv64

This commit is contained in:
chen-huihan 2024-06-19 10:41:10 +08:00
parent fe4f5b3ad3
commit d771b39ca4
4 changed files with 14 additions and 183 deletions

Binary file not shown.

BIN
imageTailor-2.2.0.tar.gz Normal file

Binary file not shown.

View File

@ -2,14 +2,12 @@ Name: imageTailor
Summary: Cut out the ISO
License: Mulan PSL v2
Group: System/Management
Version: 2.0.1
Release: 2
Version: 2.2.0
Release: 1
BuildRoot: %{_tmppath}/%{name}-%{version}
Source: https://gitee.com/openeuler/imageTailor/repository/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Patch1: openEuler-fixed-make-qcow2-in-docker.patch
Requires: dnf-utils tar python3 drpm genisoimage python3-kiwi kiwi-tools kiwi-systemdeps
Requires: dnf-utils tar python3 drpm genisoimage python3-kiwi kiwi-tools kiwi-systemdeps dosfstools parted kpartx xz rsync
%description
Dopralinux custom tool
@ -18,13 +16,15 @@ Dopralinux custom tool
%autopatch -p1
%install
iso_arch=$(uname -m)
sys_arch=$(uname -m)
mkdir -p %{buildroot}/opt/imageTailor
cd %{name}
cp -a conf/${iso_arch}/* %{buildroot}/opt/imageTailor
cp -a conf/${sys_arch}/* %{buildroot}/opt/imageTailor
cp -a conf/common/* %{buildroot}/opt/imageTailor
cp -a mkdliso %{buildroot}/opt/imageTailor
%ifnarch riscv64
# for user install hook config
chmod 600 %{buildroot}/opt/imageTailor/custom/cfg_*/usr_install/hook/install_succ_hook/S00reboot
chmod 600 %{buildroot}/opt/imageTailor/custom/cfg_*/usr_install/hook/after_setup_os_hook/S00setcap
@ -42,6 +42,8 @@ chmod 550 %{buildroot}/opt/imageTailor/kiwi/hook/config.sh
chmod 550 %{buildroot}/opt/imageTailor/kiwi/hook/images.sh
chmod 550 %{buildroot}/opt/imageTailor/mkdliso
%endif
chmod 550 %{buildroot}/opt/imageTailor/custom/cfg_qcow2/bin/*
chmod 550 %{buildroot}/opt/imageTailor/custom/cfg_qcow2/lib/*
chmod 550 %{buildroot}/opt/imageTailor/custom/cfg_qcow2/misc/*
@ -71,6 +73,11 @@ rm -rf %{_tmppath}/%{name}-%{version}
rm -rf $RPM_BUILD_DIR/%{name}-%{version}
%changelog
* Wed Jun 19 2024 chenhuihan <chenhuihan@huawei.com> - 2.2.0-1
- ID:NA
- SUG:NA
- DESC: support for qcow2 riscv64
* Fri Jun 2 2023 chenhuihan <chenhuihan@huawei.com> - 2.0.1-2
- ID:NA
- SUG:NA

View File

@ -1,176 +0,0 @@
From 47df8ef9593ecaf23b84b15e4032557b8aff3005 Mon Sep 17 00:00:00 2001
From: chenhuihan <chenhuihan@huawei.com>
Date: Fri, 2 Jun 2023 10:08:18 +0800
Subject: [PATCH] update
---
.../conf/aarch64/custom/cfg_qcow2/bin/create-image | 9 +++++++++
.../custom/cfg_qcow2/hooks/finalise.d/50-bootloader | 4 ++++
.../conf/x86_64/custom/cfg_qcow2/bin/create-image | 9 +++++++++
.../custom/cfg_qcow2/hooks/finalise.d/50-bootloader | 4 ++++
...4\275\277\347\224\250\346\214\207\345\215\227.md" | 6 +++---
imageTailor/mkdliso | 12 +++++++++---
6 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/imageTailor/conf/aarch64/custom/cfg_qcow2/bin/create-image b/imageTailor/conf/aarch64/custom/cfg_qcow2/bin/create-image
index 49d9d6a..f9b6770 100644
--- a/imageTailor/conf/aarch64/custom/cfg_qcow2/bin/create-image
+++ b/imageTailor/conf/aarch64/custom/cfg_qcow2/bin/create-image
@@ -168,6 +168,9 @@ elif [ $ARCH == "aarch64" ]; then
fi
export DEVICE=`losetup -f`
+num=$(echo $DEVICE | awk -F 'loop' '{print $2}')
+rm -rf "/dev/loop${num}"
+mknod $DEVICE b 7 $num
/usr/sbin/losetup ${DEVICE} ${NAME}
offset=`fdisk -l ${NAME} | grep "${NAME}1" | awk '{print $2}'`
@@ -178,6 +181,9 @@ offset=`echo "${offset}*512" | bc`
if [ $ARCH == "aarch64" ]; then
export BOOT=`losetup -f`
+ num=$(echo $BOOT | awk -F 'loop' '{print $2}')
+ rm -rf "/dev/loop${num}"
+ mknod $BOOT b 7 $num
/usr/sbin/losetup -o ${offset} --sizelimit ${sizelimit} ${BOOT} ${NAME}
/usr/sbin/mkfs.vfat $BOOT
@@ -189,6 +195,9 @@ if [ $ARCH == "aarch64" ]; then
fi
export ROOT=`losetup -f`
+num=$(echo $ROOT | awk -F 'loop' '{print $2}')
+rm -rf "/dev/loop${num}"
+mknod $ROOT b 7 $num
export ROOT_FS_UUID=$(uuidgen -r)
/usr/sbin/losetup -o ${offset} --sizelimit ${sizelimit} ${ROOT} ${NAME}
/usr/sbin/mkfs.ext4 -L "rootfs" ${ROOT}
diff --git a/imageTailor/conf/aarch64/custom/cfg_qcow2/hooks/finalise.d/50-bootloader b/imageTailor/conf/aarch64/custom/cfg_qcow2/hooks/finalise.d/50-bootloader
index 2da4c0f..4883fa0 100644
--- a/imageTailor/conf/aarch64/custom/cfg_qcow2/hooks/finalise.d/50-bootloader
+++ b/imageTailor/conf/aarch64/custom/cfg_qcow2/hooks/finalise.d/50-bootloader
@@ -48,6 +48,8 @@ function install_grub2 ()
echo "EOF" >> /etc/grub.d/00_header
grub2-mkconfig -o $GRUB_CFG
+ sed_str="root=UUID=${ROOT_FS_UUID}"
+ sed -i "s#root=/opt/imageTailor/.*.img#${sed_str}#g" $GRUB_CFG
}
function install_grub2_efi ()
@@ -72,6 +74,8 @@ function install_grub2_efi ()
echo "EOF" >> /etc/grub.d/00_header
GRUB_CFG=/boot/efi/EFI/openEuler/grub.cfg
grub2-mkconfig -o $GRUB_CFG
+ sed_str="root=UUID=${ROOT_FS_UUID}"
+ sed -i "s#root=/opt/imageTailor/.*.img#${sed_str}#g" $GRUB_CFG
}
if [ -f /boot/grub2/device.map ]; then
diff --git a/imageTailor/conf/x86_64/custom/cfg_qcow2/bin/create-image b/imageTailor/conf/x86_64/custom/cfg_qcow2/bin/create-image
index 49d9d6a..f9b6770 100644
--- a/imageTailor/conf/x86_64/custom/cfg_qcow2/bin/create-image
+++ b/imageTailor/conf/x86_64/custom/cfg_qcow2/bin/create-image
@@ -168,6 +168,9 @@ elif [ $ARCH == "aarch64" ]; then
fi
export DEVICE=`losetup -f`
+num=$(echo $DEVICE | awk -F 'loop' '{print $2}')
+rm -rf "/dev/loop${num}"
+mknod $DEVICE b 7 $num
/usr/sbin/losetup ${DEVICE} ${NAME}
offset=`fdisk -l ${NAME} | grep "${NAME}1" | awk '{print $2}'`
@@ -178,6 +181,9 @@ offset=`echo "${offset}*512" | bc`
if [ $ARCH == "aarch64" ]; then
export BOOT=`losetup -f`
+ num=$(echo $BOOT | awk -F 'loop' '{print $2}')
+ rm -rf "/dev/loop${num}"
+ mknod $BOOT b 7 $num
/usr/sbin/losetup -o ${offset} --sizelimit ${sizelimit} ${BOOT} ${NAME}
/usr/sbin/mkfs.vfat $BOOT
@@ -189,6 +195,9 @@ if [ $ARCH == "aarch64" ]; then
fi
export ROOT=`losetup -f`
+num=$(echo $ROOT | awk -F 'loop' '{print $2}')
+rm -rf "/dev/loop${num}"
+mknod $ROOT b 7 $num
export ROOT_FS_UUID=$(uuidgen -r)
/usr/sbin/losetup -o ${offset} --sizelimit ${sizelimit} ${ROOT} ${NAME}
/usr/sbin/mkfs.ext4 -L "rootfs" ${ROOT}
diff --git a/imageTailor/conf/x86_64/custom/cfg_qcow2/hooks/finalise.d/50-bootloader b/imageTailor/conf/x86_64/custom/cfg_qcow2/hooks/finalise.d/50-bootloader
index 2da4c0f..4883fa0 100644
--- a/imageTailor/conf/x86_64/custom/cfg_qcow2/hooks/finalise.d/50-bootloader
+++ b/imageTailor/conf/x86_64/custom/cfg_qcow2/hooks/finalise.d/50-bootloader
@@ -48,6 +48,8 @@ function install_grub2 ()
echo "EOF" >> /etc/grub.d/00_header
grub2-mkconfig -o $GRUB_CFG
+ sed_str="root=UUID=${ROOT_FS_UUID}"
+ sed -i "s#root=/opt/imageTailor/.*.img#${sed_str}#g" $GRUB_CFG
}
function install_grub2_efi ()
@@ -72,6 +74,8 @@ function install_grub2_efi ()
echo "EOF" >> /etc/grub.d/00_header
GRUB_CFG=/boot/efi/EFI/openEuler/grub.cfg
grub2-mkconfig -o $GRUB_CFG
+ sed_str="root=UUID=${ROOT_FS_UUID}"
+ sed -i "s#root=/opt/imageTailor/.*.img#${sed_str}#g" $GRUB_CFG
}
if [ -f /boot/grub2/device.map ]; then
diff --git "a/imageTailor/docs/imageTailor \344\275\277\347\224\250\346\214\207\345\215\227.md" "b/imageTailor/docs/imageTailor \344\275\277\347\224\250\346\214\207\345\215\227.md"
index 72a989e..2103d2e 100644
--- "a/imageTailor/docs/imageTailor \344\275\277\347\224\250\346\214\207\345\215\227.md"
+++ "b/imageTailor/docs/imageTailor \344\275\277\347\224\250\346\214\207\345\215\227.md"
@@ -871,7 +871,7 @@ GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 crashkernel=512M oops=panic soft
openEuler产品openEuler-aarch64.iso 和 openEuler-aarch64.iso.sha256
EMB_rootfs产品openEuler-image-qemu-*.rootfs.cpio.gz 和 openEuler-image-qemu-*.rootfs.cpio.gz.sha256
docker产品docker.*.tar.xz 和 docker.*.tar.xz.sha256sum 和 docker_source.rpmlist 和 docker_binary.rpmlist
- qcow2产品: qcow2.img 和 qcow2.img.sha256sum
+ qcow2产品: openEuler_{arch}.qcow2 和 openEuler_{arch}.qcow2.sha256sum
2. 验证 ISO 镜像文件的完整性。此处假设日期为 2022-03-21-14-48 。
@@ -1059,6 +1059,6 @@ Pacific/ zone.tab
......
create qcow2 success
$ ls result/2023-05-23-15-29/
- qcow2.img
- qcow2.img.sha256sum
+ openEuler_aarch64.qcow2
+ openEuler_aarch64.qcow2.sha256sum
```
diff --git a/imageTailor/mkdliso b/imageTailor/mkdliso
index ae9a9f4..5c24e34 100644
--- a/imageTailor/mkdliso
+++ b/imageTailor/mkdliso
@@ -2426,11 +2426,17 @@ function make_qcow2_image() {
log_error "Failed on build qcow2 image" &> /dev/null
return 1
fi
+ qemu-img convert -f raw -O qcow2 "${PRODUCT_NAME}.img" "openEuler_${ISO_ARCH}.qcow2"
+ if [ $? -ne 0 ];then
+ log_error "Failed on convert img to qcow2" &> /dev/null
+ return 1
+ fi
+ rm -rf "${PRODUCT_NAME}.img"
+ sha256sum "openEuler_${ISO_ARCH}.qcow2" > "openEuler_${ISO_ARCH}.qcow2.sha256sum"
+ copy_file_to_result "openEuler_${ISO_ARCH}.qcow2" "openEuler_${ISO_ARCH}.qcow2.sha256sum"
- sha256sum "${PRODUCT_NAME}.img" > "${PRODUCT_NAME}.img.sha256sum"
- copy_file_to_result "${PRODUCT_NAME}.img" "${PRODUCT_NAME}.img.sha256sum"
echo "create ${PRODUCT_NAME} success"
- rm -rf "${PRODUCT_NAME}.img" "${PRODUCT_NAME}.img.sha256sum"
+ rm -rf "openEuler_${ISO_ARCH}.qcow2" "openEuler_${ISO_ARCH}.qcow2.sha256sum"
return 0
}
--
2.33.0