diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 447a9085..5cd77a77 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,7 +38,7 @@ on: type: boolean microcode: description: "microcode" - default: true + default: false type: boolean extended: description: "extended" @@ -112,6 +112,7 @@ jobs: echo "THEMETAG=${THEMETAG}" >> $GITHUB_ENV echo "BRXTAG=${BRXTAG}" >> $GITHUB_ENV echo "BRSTAG=${BRSTAG}" >> $GITHUB_ENV + echo "BRMTAG=${BRMTAG}" >> $GITHUB_ENV echo "BUILD_TIME=$(date +'%Y-%m-%d %H:%M')" >> $GITHUB_ENV echo "OK" @@ -134,8 +135,8 @@ jobs: echo "ARC_BRANCH=${ARC_BRANCH}" >> $GITHUB_ENV echo "Create Arc Image" - IMAGE_FILE="arc_create.img" - gzip -dc "grub.img.gz" >"${IMAGE_FILE}" + IMAGE_FILE="arc.img" + gzip -dc "files/initrd/opt/arc/grub.img.gz" >"${IMAGE_FILE}" fdisk -l "${IMAGE_FILE}" LOOPX=$(sudo losetup -f) @@ -166,12 +167,7 @@ jobs: sudo losetup --detach ${LOOPX} - # Resize Image - resizeImg "${IMAGE_FILE}" "+1024M" "arc.img" 2>/dev/null - rm -f "${IMAGE_FILE}" - echo "Image Converter" - IMAGE_FILE="arc.img" qemu-img convert -p -f raw -O vmdk ${IMAGE_FILE} arc-dyn.vmdk qemu-img convert -p -f raw -o subformat=monolithicFlat -O vmdk ${IMAGE_FILE} arc.vmdk @@ -198,6 +194,7 @@ jobs: # Cleanup - name: Cleanup + if: ${{ inputs.extended }} run: | rm -rf "arc.img" "arc.vmdk" "arc-dyn.vmdk" "arc-flat.vmdk" "arc.vhd" "arc.ova" "arc.vmc" 2>/dev/null @@ -219,8 +216,8 @@ jobs: echo "ARC_BRANCH=${ARC_BRANCH}" >> $GITHUB_ENV echo "Create Arc Image" - IMAGE_FILE="arc_create.img" - gzip -dc "grub.img.gz" >"${IMAGE_FILE}" + IMAGE_FILE="arc.img" + gzip -dc "files/initrd/opt/arc/grub.img.gz" >"${IMAGE_FILE}" fdisk -l "${IMAGE_FILE}" LOOPX=$(sudo losetup -f) @@ -251,12 +248,7 @@ jobs: sudo losetup --detach ${LOOPX} - # Resize Image - resizeImg "${IMAGE_FILE}" "+1024M" "arc.img" 2>/dev/null - rm -f "${IMAGE_FILE}" - echo "Image Converter" - IMAGE_FILE="arc.img" qemu-img convert -p -f raw -O vmdk ${IMAGE_FILE} arc-dyn.vmdk qemu-img convert -p -f raw -o subformat=monolithicFlat -O vmdk ${IMAGE_FILE} arc.vmdk @@ -283,6 +275,7 @@ jobs: # Cleanup - name: Cleanup + if: ${{ inputs.minimal }} run: | rm -rf "arc.img" "arc.vmdk" "arc-dyn.vmdk" "arc-flat.vmdk" "arc.vhd" "arc.ova" "arc.vmc" 2>/dev/null @@ -304,8 +297,8 @@ jobs: echo "ARC_BRANCH=${ARC_BRANCH}" >> $GITHUB_ENV echo "Create Arc Image" - IMAGE_FILE="arc_create.img" - gzip -dc "grub.img.gz" >"${IMAGE_FILE}" + IMAGE_FILE="arc.img" + gzip -dc "files/initrd/opt/arc/grub.img.gz" >"${IMAGE_FILE}" fdisk -l "${IMAGE_FILE}" LOOPX=$(sudo losetup -f) @@ -336,12 +329,7 @@ jobs: sudo losetup --detach ${LOOPX} - # Resize Image - resizeImg "${IMAGE_FILE}" "+1024M" "arc.img" 2>/dev/null - rm -f "${IMAGE_FILE}" - echo "Image Converter" - IMAGE_FILE="arc.img" qemu-img convert -p -f raw -O vmdk ${IMAGE_FILE} arc-dyn.vmdk qemu-img convert -p -f raw -o subformat=monolithicFlat -O vmdk ${IMAGE_FILE} arc.vmdk @@ -384,9 +372,9 @@ jobs: - Discord Account for Arc Patch needed ### Versions: - ${{ inputs.minimal && '- minimal: Full Image, all dependencies are included (reduced size, faster boot)' || '' }} - ${{ inputs.microcode && '- microcode: Minimal + additional Microcode Updates' || '' }} - ${{ inputs.extended && '- extended: Full Image, all dependencies are included (new features to test)' || '' }} + ${{ inputs.minimal && '- minimal: full image, all dependencies included (reduced size, faster boot)' || '' }} + ${{ inputs.microcode && '- microcode: minimal + additional microcode updates' || '' }} + ${{ inputs.extended && '- extended: full image, all dependencies included (new features to test)' || '' }} ### Dependencies: - Addons: ${{ env.ADDONTAG }} @@ -396,6 +384,7 @@ jobs: - Custom: ${{ env.CUSTOMTAG }} - LKMs: ${{ env.LKMTAG }} ${{ inputs.minimal && format('- Buildroot minimal: {0}', env.BRSTAG) || '' }} + ${{ inputs.microcode && format('- Buildroot microcode: {0}', env.BRMTAG) || '' }} ${{ inputs.extended && format('- Buildroot extended: {0}', env.BRXTAG) || '' }} ### Release diff --git a/grub.img.gz b/files/initrd/opt/arc/grub.img.gz similarity index 61% rename from grub.img.gz rename to files/initrd/opt/arc/grub.img.gz index 05c5c82b..d8ee476c 100644 Binary files a/grub.img.gz and b/files/initrd/opt/arc/grub.img.gz differ diff --git a/img-ext.sh b/img-ext.sh index b4bd9833..e82ce550 100755 --- a/img-ext.sh +++ b/img-ext.sh @@ -31,8 +31,8 @@ mkdir -p "brx" [ ! -f "../brx/bzImage" ] && getBuildrootx "brx" || copyBuildroot "brx" # Sbase -IMAGE_FILE="arc_create.img" -gzip -dc "grub.img.gz" >"${IMAGE_FILE}" +IMAGE_FILE="arc.img" +gzip -dc "files/initrd/opt/arc/grub.img.gz" >"${IMAGE_FILE}" fdisk -l "${IMAGE_FILE}" LOOPX=$(sudo losetup -f) @@ -74,9 +74,5 @@ sudo rm -rf "/tmp/p3" sudo losetup --detach ${LOOPX} -# Resize Image -resizeImg "${IMAGE_FILE}" "+1024M" "arc.img" 2>/dev/null -rm -f "${IMAGE_FILE}" - IMAGE_FILE="arc.img" qemu-img convert -p -f raw -o subformat=monolithicFlat -O vmdk ${IMAGE_FILE} arc.vmdk diff --git a/img-min.sh b/img-min.sh index 71064b13..e4d074b3 100755 --- a/img-min.sh +++ b/img-min.sh @@ -30,8 +30,8 @@ getOffline "files/p3/configs" [ -f "../brs/bzImage" ] && copyBuildroot "brs" || getBuildroots "brs" # Sbase -IMAGE_FILE="arc_create.img" -gzip -dc "grub.img.gz" >"${IMAGE_FILE}" +IMAGE_FILE="arc.img" +gzip -dc "files/initrd/opt/arc/grub.img.gz" >"${IMAGE_FILE}" fdisk -l "${IMAGE_FILE}" LOOPX=$(sudo losetup -f) @@ -73,9 +73,5 @@ sudo rm -rf "/tmp/p3" sudo losetup --detach ${LOOPX} -# Resize Image -resizeImg "${IMAGE_FILE}" "+1024M" "arc.img" 2>/dev/null -rm -f "${IMAGE_FILE}" - IMAGE_FILE="arc.img" qemu-img convert -p -f raw -o subformat=monolithicFlat -O vmdk ${IMAGE_FILE} arc.vmdk diff --git a/scripts/func.sh b/scripts/func.sh index d2d3e58b..97751b2f 100755 --- a/scripts/func.sh +++ b/scripts/func.sh @@ -317,36 +317,46 @@ function repackInitrd() { sudo rm -rf "${RDXZ_PATH}" } -# resizeimg +# resizeImg # $1 input file -# $2 changsize MB eg: +50M -50M +# $2 change size MB e.g., +50M -50M # $3 output file function resizeImg() { - INPUT_FILE="${1}" - CHANGE_SIZE="${2}" - OUTPUT_FILE="${3:-${INPUT_FILE}}" + local INPUT_FILE="${1}" + local CHANGE_SIZE="${2}" + local OUTPUT_FILE="${3:-${INPUT_FILE}}" - [[ -z "${INPUT_FILE}" || ! -f "${INPUT_FILE}" ]] && exit 1 - [ -z "${CHANGE_SIZE}" ] && exit 1 + [[ -z "${INPUT_FILE}" || ! -f "${INPUT_FILE}" ]] && { echo "Input file not specified or does not exist"; exit 1; } + [[ -z "${CHANGE_SIZE}" ]] && { echo "Change size not specified"; exit 1; } INPUT_FILE="$(realpath "${INPUT_FILE}")" OUTPUT_FILE="$(realpath "${OUTPUT_FILE}")" + local CURRENT_SIZE + CURRENT_SIZE=$(du -m "${INPUT_FILE}" | awk '{print $1}') + local SIZE + SIZE=$((CURRENT_SIZE + ${CHANGE_SIZE//M/})) - SIZE=$(($(du -m "${INPUT_FILE}" | awk '{print $1}')$(echo "${CHANGE_SIZE}" | sed 's/M//g; s/b//g'))) - [[ -z "${SIZE}" || "${SIZE}" -lt 0 ]] && exit 1 + [[ -z "${SIZE}" || "${SIZE}" -lt 0 ]] && { echo "Invalid size calculated"; exit 1; } - if [ ! "${INPUT_FILE}" = "${OUTPUT_FILE}" ]; then + if [[ "${INPUT_FILE}" != "${OUTPUT_FILE}" ]]; then sudo cp -f "${INPUT_FILE}" "${OUTPUT_FILE}" fi - sudo truncate -s ${SIZE}M "${OUTPUT_FILE}" - echo -e "d\n\nn\n\n\n\n\nn\nw" | sudo fdisk "${OUTPUT_FILE}" + sudo truncate -s "${SIZE}M" "${OUTPUT_FILE}" + + # Use `parted` to resize partition 3 + sudo parted "${OUTPUT_FILE}" --script -- resizepart 3 "${SIZE}M" + + local LOOPX LOOPX=$(sudo losetup -f) - sudo losetup -P ${LOOPX} "${OUTPUT_FILE}" - sudo e2fsck -fp $(ls ${LOOPX}* | sort -n | tail -1) - sudo resize2fs $(ls ${LOOPX}* | sort -n | tail -1) - sudo losetup -d ${LOOPX} + sudo losetup -P "${LOOPX}" "${OUTPUT_FILE}" + local PARTITION + PARTITION=$(ls "${LOOPX}p3") + sudo e2fsck -fp "${PARTITION}" + sudo tune2fs -l "${PARTITION}" | grep "Block size" + sudo resize2fs "${PARTITION}" + sudo losetup -d "${LOOPX}" } # createvmx @@ -522,4 +532,4 @@ function copyBuildroot() { mkdir -p "${DEST_PATH}" cp -f "../${DEST_PATH}/bzImage" "${DEST_PATH}/bzImage-arc" cp -f "../${DEST_PATH}/rootfs.cpio.zst" "${DEST_PATH}/initrd-arc" -} \ No newline at end of file +} diff --git a/scripts/grub.sh b/scripts/grub.sh index 02702519..ddfddb26 100755 --- a/scripts/grub.sh +++ b/scripts/grub.sh @@ -29,7 +29,7 @@ done popd rm -f grub.img -dd if=/dev/zero of=grub.img bs=1M seek=1024 count=0 +dd if=/dev/zero of=grub.img bs=1M seek=2048 count=0 echo -e "n\np\n1\n\n+50M\nn\np\n2\n\n+50M\nn\np\n3\n\n\na\n1\nw\nq\n" | fdisk grub.img fdisk -l grub.img @@ -71,4 +71,4 @@ sudo umount ${LOOPX}p1 sudo losetup -d ${LOOPX} sudo rm -rf ${NAME}1 -gzip grub.img \ No newline at end of file +gzip grub.img