Upload files to "/"
This commit is contained in:
parent
53dcf64036
commit
523864cd0f
|
|
@ -0,0 +1,83 @@
|
|||
#!/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"
|
||||
|
||||
RETRY=0
|
||||
MAX_RETRY=5
|
||||
MIN_SIZE=10000000
|
||||
|
||||
while [ $RETRY -le $MAX_RETRY ]; do
|
||||
if [ $RETRY -gt 0 ]; then
|
||||
echo "第 $RETRY 次续传重试..."
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
wget -c -O "$FIRMWARE_FILE" "$FIRMWARE_URL"
|
||||
|
||||
if [ -s "$FIRMWARE_FILE" ]; then
|
||||
CURRENT_SIZE=$(ls -l "$FIRMWARE_FILE" | awk '{print $5}')
|
||||
else
|
||||
CURRENT_SIZE=0
|
||||
fi
|
||||
|
||||
if [ "$CURRENT_SIZE" -ge "$MIN_SIZE" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
RETRY=$((RETRY+1))
|
||||
done
|
||||
|
||||
if [ ! -s "$FIRMWARE_FILE" ] || [ "$(ls -l "$FIRMWARE_FILE" | awk '{print $5}')" -lt "$MIN_SIZE" ]; then
|
||||
echo ""
|
||||
echo "!! 下载失败或文件不完整(已重试 $MAX_RETRY 次),请检查网络连接或固件地址是否正确"
|
||||
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 "!! 刷机过程中请勿断电,设备将自动重启"
|
||||
echo "!! 刷机后 LAN IP、密码等将恢复为固件编译时的默认值"
|
||||
sleep 5
|
||||
|
||||
sysupgrade -n -v "$FIRMWARE_FILE"
|
||||
Loading…
Reference in New Issue