From de93239f974e3c3f462dbf0fc53417aca7fe837e Mon Sep 17 00:00:00 2001 From: Ing Date: Wed, 7 May 2025 15:43:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=95=9C=E5=83=8F=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=A7=E5=B0=8F=E9=80=89=E9=A1=B9=E5=88=B0=E8=A1=A8?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/issues.yml | 98 +++++++++++++------ docs/issues.html | 14 ++- .../opt/rr/lang/ar_SA/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/de_DE/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/en_US/LC_MESSAGES/rr.po | 2 +- .../opt/rr/lang/es_ES/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/fr_FR/LC_MESSAGES/rr.po | 2 +- .../opt/rr/lang/ja_JP/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/ko_KR/LC_MESSAGES/rr.po | 4 +- files/initrd/opt/rr/lang/rr.pot | 2 +- .../opt/rr/lang/ru_RU/LC_MESSAGES/rr.po | 2 +- .../opt/rr/lang/th_TH/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/tr_TR/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/uk_UA/LC_MESSAGES/rr.po | 2 +- .../opt/rr/lang/vi_VN/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/zh_CN/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/zh_HK/LC_MESSAGES/rr.po | 4 +- .../opt/rr/lang/zh_TW/LC_MESSAGES/rr.po | 4 +- files/initrd/opt/rr/menu.sh | 4 +- localbuild.sh | 33 ++++++- 20 files changed, 138 insertions(+), 65 deletions(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index f288274b..4a73a588 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -38,6 +38,7 @@ jobs: warinfo = 'false' format = '' + size = '' language= '' model = '' version = '' @@ -49,6 +50,7 @@ jobs: jsonbody = json.loads(issuebody) iscustom = 'true' format = jsonbody.get('format', '') + size = jsonbody.get('size', '') language = jsonbody.get('language', '') model = jsonbody.get('model', '') version = jsonbody.get('version', '') @@ -66,6 +68,7 @@ jobs: set_output("warinfo", warinfo) set_output("format", format) + set_output("size", size) set_output("language", language) set_output("model", model) set_output("version", version) @@ -262,6 +265,23 @@ jobs: exit 1 fi + case "${{ env.size }}" in + 2GB) + echo "2GB" + ;; + 4GB) + echo "4GB" + sudo ./localbuild.sh resize rr/rr.img +2048M + ;; + 8GB) + echo "8GB" + sudo ./localbuild.sh resize rr/rr.img +6144M + ;; + *) + echo "unknown size" + ;; + esac + ls rr -al RR_VERSION_FILE="rr/ws/mnt/p1/RR_VERSION" @@ -283,38 +303,52 @@ jobs: echo "Of course, you can also modify the settings yourself." } >README.txt - if [ "${{ env.format }}" = "ova" ]; then - . scripts/func.sh "${{ secrets.RRORG }}" - convertova "rr/rr.img" "rr/rr.ova" - (cd rr && sha256sum rr.ova >../sha256sum) - zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova ${USER_CONFIG_FILE} sha256sum README.txt - elif [ "${{ env.format }}" = "vmx" ]; then - . scripts/func.sh "${{ secrets.RRORG }}" - convertvmx "rr/rr.img" "rr.vmx" # rr.vmx is a directory - (cd rr.vmx && sha256sum * >../sha256sum) - zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmx.zip" -r rr.vmx ${USER_CONFIG_FILE} sha256sum README.txt - elif [ "${{ env.format }}" = "vmdk" ]; then - qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' rr/rr.vmdk - (cd rr && sha256sum rr.vmdk >../sha256sum) - zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk ${USER_CONFIG_FILE} sha256sum README.txt - elif [ "${{ env.format }}" = "flat" ]; then - qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=monolithicFlat,compat6' rr/rr.vmdk - (cd rr && sha256sum rr*.vmdk >../sha256sum) - zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.flat.zip" -j rr/rr*.vmdk ${USER_CONFIG_FILE} sha256sum README.txt - elif [ "${{ env.format }}" = "vhd" ]; then - . scripts/func.sh "${{ secrets.RRORG }}" - qemu-img convert rr/rr.img -O vpc rr/rr.vhd - createvmc "rr/rr.vhd" "rr/rr.vmc" - (cd rr && sha256sum rr.vhd >../sha256sum) - zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhd.zip" -j rr/rr.vmc rr/rr.vhd ${USER_CONFIG_FILE} sha256sum README.txt - elif [ "${{ env.format }}" = "vhdx" ]; then - qemu-img convert rr/rr.img -O vhdx -o subformat=dynamic rr/rr.vhdx - (cd rr && sha256sum rr.vhdx >../sha256sum) - zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx ${USER_CONFIG_FILE} sha256sum README.txt - else - (cd rr && sha256sum rr.img >../sha256sum) - zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img ${USER_CONFIG_FILE} sha256sum README.txt - fi + case "${{ env.format }}" in + ova) + echo "OVA" + . scripts/func.sh "${{ secrets.RRORG }}" + convertova "rr/rr.img" "rr/rr.ova" + (cd rr && sha256sum rr.ova >../sha256sum) + zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova ${USER_CONFIG_FILE} sha256sum README.txt + ;; + vmx) + echo "VMX" + . scripts/func.sh "${{ secrets.RRORG }}" + convertvmx "rr/rr.img" "rr.vmx" # rr.vmx is a directory + (cd rr.vmx && sha256sum * >../sha256sum) + zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmx.zip" -r rr.vmx ${USER_CONFIG_FILE} sha256sum README.txt + ;; + vmdk) + echo "VMDK" + qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' rr/rr.vmdk + (cd rr && sha256sum rr.vmdk >../sha256sum) + zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk ${USER_CONFIG_FILE} sha256sum README.txt + ;; + flat) + echo "FLAT" + qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=monolithicFlat,compat6' rr/rr.vmdk + (cd rr && sha256sum rr*.vmdk >../sha256sum) + zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.flat.zip" -j rr/rr*.vmdk ${USER_CONFIG_FILE} sha256sum README.txt + ;; + vhd) + echo "VHD" + . scripts/func.sh "${{ secrets.RRORG }}" + qemu-img convert rr/rr.img -O vpc rr/rr.vhd + createvmc "rr/rr.vhd" "rr/rr.vmc" + (cd rr && sha256sum rr.vhd >../sha256sum) + zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhd.zip" -j rr/rr.vmc rr/rr.vhd ${USER_CONFIG_FILE} sha256sum README.txt + ;; + vhdx) + echo "VHDX" + qemu-img convert rr/rr.img -O vhdx -o subformat=dynamic rr/rr.vhdx + (cd rr && sha256sum rr.vhdx >../sha256sum) + zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx ${USER_CONFIG_FILE} sha256sum README.txt + ;; + *) + echo "IMG" + (cd rr && sha256sum rr.img >../sha256sum) + zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img ${USER_CONFIG_FILE} sha256sum README.txt + esac echo "TAG=${TAG}" >> $GITHUB_ENV diff --git a/docs/issues.html b/docs/issues.html index d53e683f..45c70a79 100644 --- a/docs/issues.html +++ b/docs/issues.html @@ -207,7 +207,7 @@ let formData = new FormData(form); var title = "custom"; var body = {}; - var _parameters = ["title", "format", "language", "model", "version", "kernel", "addons", "modules"]; + var _parameters = ["title", "format", "size", "language", "model", "version", "kernel", "addons", "modules"]; for (var key in _parameters) { var name = _parameters[key]; if ($("#" + name).is(":hidden")) { continue; } @@ -301,6 +301,18 @@ +
+
+ +
+
+ +
+
diff --git a/files/initrd/opt/rr/lang/ar_SA/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/ar_SA/LC_MESSAGES/rr.po index 5778b821..c624943b 100644 --- a/files/initrd/opt/rr/lang/ar_SA/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/ar_SA/LC_MESSAGES/rr.po @@ -1094,8 +1094,8 @@ msgid "No disk selected!" msgstr "لا تم اختيار حاويه!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "حاويه %s حجمها اقل من 1GB و لا يمكن تنسخها!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "حاويه %s حجمها اقل من 2GB و لا يمكن تنسخها!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/de_DE/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/de_DE/LC_MESSAGES/rr.po index 95972e34..41670192 100644 --- a/files/initrd/opt/rr/lang/de_DE/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/de_DE/LC_MESSAGES/rr.po @@ -1095,8 +1095,8 @@ msgid "No disk selected!" msgstr "Keine Festplatte ausgewählt!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "Festplatte %s ist kleiner als 1GB und kann nicht geklont werden!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "Festplatte %s ist kleiner als 2GB und kann nicht geklont werden!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/en_US/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/en_US/LC_MESSAGES/rr.po index 3ecb9ce1..79b456b2 100644 --- a/files/initrd/opt/rr/lang/en_US/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/en_US/LC_MESSAGES/rr.po @@ -1094,7 +1094,7 @@ msgid "No disk selected!" msgstr "" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" msgstr "" #: menu.sh:2342 diff --git a/files/initrd/opt/rr/lang/es_ES/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/es_ES/LC_MESSAGES/rr.po index 5595e928..80a29b23 100644 --- a/files/initrd/opt/rr/lang/es_ES/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/es_ES/LC_MESSAGES/rr.po @@ -1095,8 +1095,8 @@ msgid "No disk selected!" msgstr "¡No hay ningún disco seleccionado!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "Disk %s de tamaño es inferior a 1GB y no se puede clonar!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "Disk %s de tamaño es inferior a 2GB y no se puede clonar!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/fr_FR/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/fr_FR/LC_MESSAGES/rr.po index fedf6a6b..966a1772 100644 --- a/files/initrd/opt/rr/lang/fr_FR/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/fr_FR/LC_MESSAGES/rr.po @@ -1095,7 +1095,7 @@ msgid "No disk selected!" msgstr "Aucun disque sélectionné !" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" msgstr "La taille du disque %s est inférieure à 1 Go et ne peut pas être clonée !" #: menu.sh:2342 diff --git a/files/initrd/opt/rr/lang/ja_JP/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/ja_JP/LC_MESSAGES/rr.po index 946cabcb..11e8fdfd 100644 --- a/files/initrd/opt/rr/lang/ja_JP/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/ja_JP/LC_MESSAGES/rr.po @@ -1094,8 +1094,8 @@ msgid "No disk selected!" msgstr "ディスクが選択されていません!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "ディスク %s のサイズが1GB未満で、クローンできません!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "ディスク %s のサイズが2GB未満で、クローンできません!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/ko_KR/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/ko_KR/LC_MESSAGES/rr.po index 2a0de734..db9a8fb4 100644 --- a/files/initrd/opt/rr/lang/ko_KR/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/ko_KR/LC_MESSAGES/rr.po @@ -1094,8 +1094,8 @@ msgid "No disk selected!" msgstr "선택한 디스크가 없습니다!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "디스크 %s 크기가 1GB 미만이어서 복제할 수 없습니다!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "디스크 %s 크기가 2GB 미만이어서 복제할 수 없습니다!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/rr.pot b/files/initrd/opt/rr/lang/rr.pot index 52ec77e9..44f2574c 100644 --- a/files/initrd/opt/rr/lang/rr.pot +++ b/files/initrd/opt/rr/lang/rr.pot @@ -1239,7 +1239,7 @@ msgid "No disk selected!" msgstr "" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" msgstr "" #: menu.sh:2342 diff --git a/files/initrd/opt/rr/lang/ru_RU/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/ru_RU/LC_MESSAGES/rr.po index c936767d..7f8889ce 100644 --- a/files/initrd/opt/rr/lang/ru_RU/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/ru_RU/LC_MESSAGES/rr.po @@ -1094,7 +1094,7 @@ msgid "No disk selected!" msgstr "Диск не выбран!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" msgstr "Размер диска %s меньше 1 ГБ и не может быть клонирован!" #: menu.sh:2342 diff --git a/files/initrd/opt/rr/lang/th_TH/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/th_TH/LC_MESSAGES/rr.po index f4c928c1..a1aaa326 100644 --- a/files/initrd/opt/rr/lang/th_TH/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/th_TH/LC_MESSAGES/rr.po @@ -1095,8 +1095,8 @@ msgid "No disk selected!" msgstr "ไม่มีดิสก์ที่เลือก!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "ขนาดดิสก์ %s น้อยกว่า 1GB และไม่สามารถคัดลอก!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "ขนาดดิสก์ %s น้อยกว่า 2GB และไม่สามารถคัดลอก!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/tr_TR/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/tr_TR/LC_MESSAGES/rr.po index 25c02e16..c1046cca 100644 --- a/files/initrd/opt/rr/lang/tr_TR/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/tr_TR/LC_MESSAGES/rr.po @@ -1094,8 +1094,8 @@ msgid "No disk selected!" msgstr "Disk seçilmedi!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "%s disk boyutu 1GB'den küçük ve klonlanamaz!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "%s disk boyutu 2GB'den küçük ve klonlanamaz!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/uk_UA/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/uk_UA/LC_MESSAGES/rr.po index d84ea2d6..33f2d275 100644 --- a/files/initrd/opt/rr/lang/uk_UA/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/uk_UA/LC_MESSAGES/rr.po @@ -1095,7 +1095,7 @@ msgid "No disk selected!" msgstr "Немає вибраного диска!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" msgstr "Розмір диска %s менше 1 Гб і не можна клонувати!" #: menu.sh:2342 diff --git a/files/initrd/opt/rr/lang/vi_VN/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/vi_VN/LC_MESSAGES/rr.po index 6e737432..bbc0f296 100644 --- a/files/initrd/opt/rr/lang/vi_VN/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/vi_VN/LC_MESSAGES/rr.po @@ -1095,8 +1095,8 @@ msgid "No disk selected!" msgstr "Không có đĩa nào được chọn!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "Kích thước đĩa %s nhỏ hơn 1GB và không thể được sao chép!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "Kích thước đĩa %s nhỏ hơn 2GB và không thể được sao chép!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/zh_CN/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/zh_CN/LC_MESSAGES/rr.po index b193a365..2cb281d3 100644 --- a/files/initrd/opt/rr/lang/zh_CN/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/zh_CN/LC_MESSAGES/rr.po @@ -1094,8 +1094,8 @@ msgid "No disk selected!" msgstr "未选择磁盘!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "磁盘 %s 的大小小于 1GB,无法克隆!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "磁盘 %s 的大小小于 2GB,无法克隆!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/zh_HK/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/zh_HK/LC_MESSAGES/rr.po index cf5aa2f1..98b84685 100644 --- a/files/initrd/opt/rr/lang/zh_HK/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/zh_HK/LC_MESSAGES/rr.po @@ -1094,8 +1094,8 @@ msgid "No disk selected!" msgstr "未選擇磁碟!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "磁碟 %s 的大小小於 1GB, 無法克隆!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "磁碟 %s 的大小小於 2GB, 無法克隆!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/lang/zh_TW/LC_MESSAGES/rr.po b/files/initrd/opt/rr/lang/zh_TW/LC_MESSAGES/rr.po index a8491746..e5f35858 100644 --- a/files/initrd/opt/rr/lang/zh_TW/LC_MESSAGES/rr.po +++ b/files/initrd/opt/rr/lang/zh_TW/LC_MESSAGES/rr.po @@ -1094,8 +1094,8 @@ msgid "No disk selected!" msgstr "未選擇磁碟!" #: menu.sh:2338 -msgid "Disk %s size is less than 1GB and cannot be cloned!" -msgstr "磁碟 %s 大小小於 1GB,無法複製!" +msgid "Disk %s size is less than 2GB and cannot be cloned!" +msgstr "磁碟 %s 大小小於 2GB,無法複製!" #: menu.sh:2342 msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?" diff --git a/files/initrd/opt/rr/menu.sh b/files/initrd/opt/rr/menu.sh index 8307badd..6cdd5078 100755 --- a/files/initrd/opt/rr/menu.sh +++ b/files/initrd/opt/rr/menu.sh @@ -2359,9 +2359,9 @@ function cloneBootloaderDisk() { fi TODESK="${resp}" SIZE=$(df -m "${TODESK}" 2>/dev/null | awk 'NR==2 {print $2}') - if [ ${SIZE:-0} -lt 1024 ]; then + if [ ${SIZE:-0} -lt 1536 ]; then DIALOG --title "$(TEXT "Settings")" \ - --msgbox "$(printf "$(TEXT "Disk %s size is less than 1GB and cannot be cloned!")" "${TODESK}")" 0 0 + --msgbox "$(printf "$(TEXT "Disk %s size is less than 2GB and cannot be cloned!")" "${TODESK}")" 0 0 return fi diff --git a/localbuild.sh b/localbuild.sh index 99e13f69..b75e5efb 100755 --- a/localbuild.sh +++ b/localbuild.sh @@ -178,9 +178,8 @@ function pack() { local RRIMGPATH LOOPX RRIMGPATH="$(realpath "${1:-rr.img}")" - if [ ! -f "${RRIMGPATH}" ]; then - gzip -dc "${CHROOT_PATH}/initrd/opt/rr/grub.img.gz" >"${RRIMGPATH}" - fi + rm -f "${RRIMGPATH}" + gzip -dc "${CHROOT_PATH}/initrd/opt/rr/grub.img.gz" >"${RRIMGPATH}" fdisk -l "${RRIMGPATH}" LOOPX=$(sudo losetup -f) @@ -220,4 +219,32 @@ function pack() { exit 0 } +function resize() { + 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 + + INPUT_FILE="$(realpath "${INPUT_FILE}")" + OUTPUT_FILE="$(realpath "${OUTPUT_FILE}")" + + local SIZE=$(($(du -sm "${INPUT_FILE}" 2>/dev/null | awk '{print $1}')$(echo "${CHANGE_SIZE}" | sed 's/M//g; s/b//g'))) + [ "${SIZE:-0}" -lt 0 ] && exit 1 + + 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}" >/dev/null 2>&1 + local LOOPX + LOOPX=$(sudo losetup -f) + sudo losetup -P "${LOOPX}" "${OUTPUT_FILE}" + sudo e2fsck -fp "$(find "${LOOPX}p"* -maxdepth 0 2>/dev/null | sort -n | tail -1)" + sudo resize2fs "$(find "${LOOPX}p"* -maxdepth 0 2>/dev/null | sort -n | tail -1)" + sudo losetup -d "${LOOPX}" +} + "$@"