From 3a171765688ca0eef3f0b28b7b2ba0c6a25b097b Mon Sep 17 00:00:00 2001 From: elseif Date: Mon, 25 Aug 2025 21:54:18 +0800 Subject: [PATCH] Update chr.sh Signed-off-by: elseif --- chr.sh | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/chr.sh b/chr.sh index cc5b5d2..e94dc07 100644 --- a/chr.sh +++ b/chr.sh @@ -1,12 +1,28 @@ #!/bin/sh set -e -if [ -d /sys/firmware/efi ]; then - echo "System boot mode: UEFI" - wget --no-check-certificate -O /tmp/chr.img.zip https://github.com/elseif/MikroTikPatch/releases/download/7.19.4/chr-7.19.4.img.zip -else - echo "System boot mode: BIOS/MBR" - wget --no-check-certificate -O /tmp/chr.img.zip https://github.com/elseif/MikroTikPatch/releases/download/7.19.4/chr-7.19.4-legacy-bios.img.zip -fi +LATEST_VERSION="7.19.4" +ARCH=$(uname -m) +case $ARCH in + x86_64|i386|i486|i586|i686) + echo "ARCH: $ARCH" + if [ -d /sys/firmware/efi ]; then + echo "BOOT MODE: UEFI" + IMG_URL="https://github.com/elseif/MikroTikPatch/releases/download/$LATEST_VERSION/chr-$LATEST_VERSION.img.zip" + else + echo "BOOT MOD: BIOS/MBR" + IMG_URL="https://github.com/elseif/MikroTikPatch/releases/download/$LATEST_VERSION/chr-$LATEST_VERSION-legacy-bios.img.zip" + fi + ;; + aarch64) + echo "ARCH: $ARCH" + IMG_URL="https://github.com/elseif/MikroTikPatch/releases/download/$LATEST_VERSION-arm64/chr-$LATEST_VERSION-arm64.img.zip" + ;; + *) + echo "Unsupported architecture: $ARCH" + exit 1 + ;; +esac +wget --no-check-certificate -O /tmp/chr.img.zip "$IMG_URL" cd /tmp unzip -p chr.img.zip > chr.img @@ -16,19 +32,22 @@ STORAGE=$(for d in /sys/block/*; do *) echo $(basename $d); break ;; esac done) -echo "STORAGE is $STORAGE" +echo "STORAGE: $STORAGE" ETH=$(ip route show default | grep '^default' | sed -n 's/.* dev \([^\ ]*\) .*/\1/p') -echo "ETH is $ETH" +echo "ETH: $ETH" ADDRESS=$(ip addr show $ETH | grep global | cut -d' ' -f 6 | head -n 1) -echo "ADDRESS is $ADDRESS" +echo "ADDRESS: $ADDRESS" GATEWAY=$(ip route list | grep default | cut -d' ' -f 3) -echo "GATEWAY is $GATEWAY" +echo "GATEWAY: $GATEWAY" + +DNS=$(grep '^nameserver' /etc/resolv.conf | awk '{print $2}' | head -n 1) +[ -z "$DNS" ] && DNS="8.8.8.8" +echo "DNS: $DNS" if LOOP=$(losetup -Pf --show chr.img 2>/dev/null); then - echo "LOOP device is $LOOP" sleep 3 MNT=/tmp/chr mkdir -p $MNT @@ -36,6 +55,7 @@ if LOOP=$(losetup -Pf --show chr.img 2>/dev/null); then cat <