From 890a0c40fe1ad4a0ac90ee5461a21228afa2032c Mon Sep 17 00:00:00 2001 From: mike Date: Sun, 9 Aug 2026 16:44:06 +0800 Subject: [PATCH] Upload files to "/" --- upgrade.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 upgrade.sh diff --git a/upgrade.sh b/upgrade.sh new file mode 100644 index 0000000..3f170f3 --- /dev/null +++ b/upgrade.sh @@ -0,0 +1,67 @@ +#!/bin/sh +# ImmortalWrt 软路由一键升级脚本 +# 用法: curl -fsSL <此脚本的raw地址> -o /tmp/upgrade.sh && sh /tmp/upgrade.sh + +FIRMWARE_URL="https://git.stickrouter.com/mike/AC2100/raw/branch/main/x86.img.gz" +FIRMWARE_FILE="/tmp/x86.img.gz" + +echo "==========================================" +echo " ImmortalWrt 固件升级脚本" +echo "==========================================" +echo "" +echo "固件地址: $FIRMWARE_URL" +echo "下载路径: $FIRMWARE_FILE" +echo "" + +echo "[1/4] 正在下载固件..." +rm -f "$FIRMWARE_FILE" +wget -c -O "$FIRMWARE_FILE" "$FIRMWARE_URL" + +# 若首次下载中断,自动用续传方式重试,最多重试 3 次 +RETRY=0 +while [ $? -ne 0 ] && [ $RETRY -lt 3 ]; do + RETRY=$((RETRY+1)) + echo "下载中断,正在进行第 $RETRY 次续传重试..." + sleep 3 + wget -c -O "$FIRMWARE_FILE" "$FIRMWARE_URL" +done + +if [ $? -ne 0 ]; then + echo "" + echo "!! 下载失败(已重试 3 次),请检查网络连接或固件地址是否正确" + exit 1 +fi + +echo "" +echo "[2/4] 下载完成,检查文件..." + +if [ ! -s "$FIRMWARE_FILE" ]; then + echo "!! 文件为空或不存在,下载可能已损坏" + exit 1 +fi + +FILESIZE=$(ls -l "$FIRMWARE_FILE" | awk '{print $5}') +echo "文件大小: $FILESIZE 字节" + +if [ "$FILESIZE" -lt 10000000 ]; then + echo "!! 文件大小异常偏小 (小于 10MB),可能下载不完整或链接返回了错误页面" + echo "!! 为安全起见,已中止刷机流程" + exit 1 +fi + +echo "" +echo "[3/4] 校验固件与设备兼容性..." +sysupgrade -T "$FIRMWARE_FILE" + +if [ $? -ne 0 ]; then + echo "!! 固件校验未通过,已中止刷机" + echo "!! 如确认固件无误,可手动执行: sysupgrade -v $FIRMWARE_FILE" + exit 1 +fi + +echo "" +echo "[4/4] 校验通过,5 秒后开始刷机..." +echo "!! 刷机过程中请勿断电,设备将自动重启" +sleep 5 + +sysupgrade -v "$FIRMWARE_FILE"