feat: improve Linux bootable USB stability and user experience

- Enhanced Live USB environment detection and support
- Added troubleshooting guide (TROUBLESHOOTING.md)
- Added installation test script (test-installation.sh)
- Improved error handling in PowerShell scripts
- Better network retry logic for downloads
- Enhanced desktop integration for Live environments
- Added detailed improvements summary (IMPROVEMENTS_SUMMARY.md)
- Updated README with troubleshooting links

Key improvements:
1. Auto-detection of Live USB environment (boot=casper)
2. Additional dependency installation for Live environments
3. Network download retry mechanism (3 attempts)
4. Smart browser opening with fallback instructions
5. Comprehensive installation validation script
6. Detailed fault diagnosis and recovery guide
This commit is contained in:
dongsheng123132
2026-03-16 19:59:58 +08:00
parent a93e9161dd
commit 5813e384af
7 changed files with 736 additions and 8 deletions

View File

@@ -56,15 +56,48 @@ if (Test-Path $VentoyZip) {
Write-Host "[INFO] Ventoy archive already cached, skipping download." -ForegroundColor Green
} else {
Write-Host "[INFO] Downloading Ventoy v${VentoyVersion}..." -ForegroundColor Yellow
# 检查网络连接
try {
$netTest = Test-NetConnection -ComputerName "github.com" -Port 443 -WarningAction SilentlyContinue
if (-not $netTest.TcpTestSucceeded) {
Write-Host "[WARN] Network connection to GitHub may be unstable." -ForegroundColor Yellow
}
} catch {
Write-Host "[WARN] Network check failed, continuing anyway..." -ForegroundColor Yellow
}
try {
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri $VentoyUrl -OutFile $VentoyZip -UseBasicParsing
# 设置超时和重试
$retryCount = 0
$maxRetries = 3
$downloaded = $false
while ($retryCount -lt $maxRetries -and -not $downloaded) {
try {
if ($retryCount -gt 0) {
Write-Host "[INFO] Retry $retryCount of $maxRetries..." -ForegroundColor Yellow
Start-Sleep -Seconds 2
}
Invoke-WebRequest -Uri $VentoyUrl -OutFile $VentoyZip -UseBasicParsing -TimeoutSec 30
$downloaded = $true
Write-Host "[OK] Download complete." -ForegroundColor Green
} catch {
Write-Host "[ERROR] Download failed: $_" -ForegroundColor Red
$retryCount++
if ($retryCount -eq $maxRetries) {
throw $_
}
}
}
} catch {
Write-Host "[ERROR] Download failed after $maxRetries attempts: $($_.Exception.Message)" -ForegroundColor Red
Write-Host " You can manually download from:" -ForegroundColor Yellow
Write-Host " https://github.com/ventoy/Ventoy/releases" -ForegroundColor Yellow
Write-Host " Save to: $VentoyZip" -ForegroundColor Yellow
Read-Host "Press Enter to exit"
exit 1
}

View File

@@ -0,0 +1,213 @@
# U-Claw Linux Bootable USB 改进总结
## 改进概述
基于实际测试和用户反馈对U-Claw Linux启动盘模式进行了以下改进提高了稳定性、易用性和故障恢复能力。
## 主要改进
### 1. Linux安装脚本优化 (`setup-openclaw.sh`)
**问题修复**:
- ✅ 增加了Live USB环境检测 (`boot=casper`)
- ✅ 为Live环境安装额外的图形依赖包
- ✅ 改进了桌面快捷方式创建逻辑
- ✅ 增加了安装完成后的自动测试
**新增功能**:
- 📦 自动检测并安装Live环境所需依赖
- 🖥️ 为Live环境创建简化的启动脚本
- 🔧 安装完成后自动运行测试验证
### 2. 启动脚本优化 (`start-openclaw.sh`)
**问题修复**:
- ✅ 改进了错误提示信息
- ✅ 增加了图形环境检测
- ✅ 改进了浏览器自动打开逻辑
**新增功能**:
- 🌐 智能检测图形环境无GUI时提供手动访问提示
- 🚪 更友好的错误退出机制
- 📍 详细的故障排查指引
### 3. PowerShell脚本优化
**问题修复**:
- ✅ 增加了网络连接检查
- ✅ 实现了下载重试机制最多3次
- ✅ 改进了错误处理和信息提示
**新增功能**:
- 🔄 自动重试失败的下载
- 📊 网络稳定性检测
- 💾 提供手动下载指引
### 4. 新增文档
**新增文件**:
1. **`TROUBLESHOOTING.md`** - 完整的故障排除指南
- 涵盖制作、启动、使用各阶段问题
- 提供详细的解决方案和调试技巧
- 包括性能优化建议
2. **`test-installation.sh`** - 安装测试脚本
- 自动检查所有关键组件
- 提供彩色输出和错误统计
- 包含自动修复选项
3. **`IMPROVEMENTS_SUMMARY.md`** - 本改进文档
### 5. 教程文档更新
**更新内容**:
- 📖 在README中添加了故障排除文档链接
- 🔗 提供了更详细的问题解决方案
- 🛠️ 增加了调试技巧和性能优化建议
## 技术细节
### Live USB环境特殊处理
```bash
# 检测Live环境
if grep -q "boot=casper" /proc/cmdline 2>/dev/null; then
# 安装额外依赖
apt-get install -y -qq curl xdg-utils gvfs-bin libgtk-3-0 ...
# 创建简化启动器
cat > "$HOME/Desktop/Start-U-Claw.sh" ...
fi
```
### 智能错误处理
```bash
# 检查图形环境
if [[ -n "$DISPLAY" ]] && command -v xdg-open >/dev/null 2>&1; then
# 自动打开浏览器
(sleep 3 && xdg-open "http://localhost:$PORT" 2>/dev/null) &
else
# 提供手动访问提示
echo "请手动打开 http://localhost:$PORT"
fi
```
### 网络下载重试
```powershell
$retryCount = 0
$maxRetries = 3
while ($retryCount -lt $maxRetries -and -not $downloaded) {
try {
Invoke-WebRequest -Uri $Url -OutFile $Output -TimeoutSec 30
$downloaded = $true
} catch {
$retryCount++
if ($retryCount -eq $maxRetries) { throw $_ }
}
}
```
## 测试验证
### 测试脚本功能
```bash
# 运行测试
bash /opt/u-claw/test-installation.sh
# 输出示例
✓ 安装目录存在: PASS
✓ Node.js版本: v22.14.0
✓ OpenClaw已安装: PASS
✓ 配置文件存在: PASS
✓ 启动脚本存在且可执行: PASS
✓ 端口 18789 可用: PASS
```
### 测试覆盖范围
1. ✅ 目录结构检查
2. ✅ Node.js安装验证
3. ✅ OpenClaw包检查
4. ✅ 配置文件验证
5. ✅ 启动脚本测试
6. ✅ 端口可用性检查
7. ✅ 桌面快捷方式验证
## 用户体验改进
### 制作阶段
- 🚀 更稳定的下载过程
- 🛡️ 更好的错误恢复
- 📋 更清晰的进度提示
### 安装阶段
- 🔍 自动环境检测
- 📦 智能依赖安装
- ✅ 安装后自动验证
### 使用阶段
- 🖱️ 改进的桌面集成
- 🌐 智能浏览器处理
- 🛠️ 详细的故障指引
## 向后兼容性
所有改进都保持了向后兼容性:
- ✅ 现有脚本接口不变
- ✅ 配置文件格式兼容
- ✅ 安装目录结构不变
- ✅ 启动方式保持不变
## 推荐使用流程
1. **制作U盘**:
```powershell
.\1-prepare-usb.ps1
.\2-download-iso.ps1
.\3-create-persistence.ps1
.\4-copy-to-usb.ps1
```
2. **启动并安装**:
- 从U盘启动选择"Ubuntu (persistence)"
- 打开终端,运行:
```bash
sudo bash /media/ubuntu/u-claw-linux/setup-openclaw.sh
```
3. **验证安装**:
```bash
bash /opt/u-claw/test-installation.sh
```
4. **启动使用**:
```bash
bash /opt/u-claw/start-openclaw.sh
# 或双击桌面图标
```
## 未来优化方向
1. **性能优化**
- 预下载依赖包到ISO中
- 优化Live环境启动速度
2. **功能增强**
- 离线安装支持
- 多语言界面
- 硬件加速支持
3. **易用性改进**
- 图形化安装界面
- 一键更新机制
- 远程管理功能
## 贡献与反馈
欢迎通过以下渠道提供反馈:
- GitHub Issues: https://github.com/dongsheng123132/u-claw/issues
- 微信: hecare888
- 邮件: [项目维护者]
这些改进将使U-Claw Linux启动盘更加稳定可靠为用户提供更好的AI助手体验。

View File

@@ -296,3 +296,8 @@ bootable/
- **Node.js**: v22.14.0 LTSnpmmirror.com国内或 nodejs.org
- **OpenClaw**: npm latest安装到 `/opt/u-claw/`
- **完全独立**: 不引用仓库内 `portable/`、`u-claw-app/`、`website/` 的任何文件
## 详细故障排除
遇到问题请参考详细故障排除指南:
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - 完整的问题排查步骤和解决方案

224
bootable/TROUBLESHOOTING.md Normal file
View File

@@ -0,0 +1,224 @@
# U-Claw Bootable USB 故障排除指南
## 常见问题与解决方案
### 1. Ventoy安装失败
**问题**: Ventoy安装时提示"Access Denied"或无法写入U盘
**解决方案**:
1. 以管理员身份运行PowerShell
2. 关闭所有可能占用U盘的程序文件资源管理器、杀毒软件等
3. 尝试使用Ventoy的"只读模式"安装
4. 如果U盘有写保护开关请关闭它
### 2. Ubuntu ISO下载缓慢或失败
**问题**: 下载Ubuntu ISO时速度慢或中断
**解决方案**:
1. 脚本会自动尝试多个国内镜像(清华、阿里、中科大)
2. 如果全部失败,可以手动下载:
- 访问 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/24.04/
- 下载 `ubuntu-24.04.2-desktop-amd64.iso`
- 放到 `bootable/.download-cache/` 目录
3. 重新运行 `2-download-iso.ps1`
### 3. 持久化存储创建失败
**问题**: `3-create-persistence.ps1` 提示磁盘空间不足
**解决方案**:
1. 确保U盘至少有32GB空间
2. 默认持久化大小为20GB可以修改脚本中的 `$PersistenceSizeGB` 变量
3. 最小建议值8GB
### 4. Linux启动后无法进入桌面
**问题**: 从U盘启动后黑屏或卡住
**解决方案**:
1. 启动时按 `F6``Esc` 进入引导选项
2. 添加内核参数:
- `nomodeset` - 禁用显卡驱动
- `quiet splash` - 禁用启动画面
3. 如果使用NVIDIA显卡尝试 `nouveau.modeset=0`
### 5. OpenClaw安装失败
**问题**: `setup-openclaw.sh` 执行失败
**解决方案**:
1. **网络问题**:
```bash
# 测试网络连接
ping -c 3 npmmirror.com
# 如果网络有问题,使用代理
export http_proxy=http://your-proxy:port
export https_proxy=http://your-proxy:port
```
2. **权限问题**:
```bash
# 确保以root运行
sudo bash setup-openclaw.sh
```
3. **依赖问题**:
```bash
# 手动安装依赖
sudo apt-get update
sudo apt-get install curl xdg-utils
```
### 6. OpenClaw无法启动
**问题**: `start-openclaw.sh` 启动失败
**解决方案**:
1. **检查Node.js**:
```bash
/opt/u-claw/runtime/node-linux-x64/bin/node --version
# 应该显示 v22.14.0
```
2. **检查OpenClaw安装**:
```bash
ls -la /opt/u-claw/core/node_modules/openclaw/
```
3. **端口冲突**:
```bash
# 检查端口占用
ss -tlnp | grep :18789
# 如果端口被占用,手动指定端口
cd /opt/u-claw/core
node node_modules/openclaw/openclaw.mjs gateway run --port 18800
```
### 7. 浏览器无法打开
**问题**: 启动后浏览器没有自动打开
**解决方案**:
1. **手动打开浏览器**:
- 访问 http://localhost:18789
- 或 http://127.0.0.1:18789
2. **检查防火墙**:
```bash
# Ubuntu Live通常没有防火墙但可以检查
sudo ufw status
```
### 8. 持久化数据丢失
**问题**: 重启后安装的软件或数据丢失
**解决方案**:
1. 确保启动时选择了"Ubuntu (persistence)"选项
2. 检查持久化文件大小:
```bash
ls -lh /media/ubuntu/persistence.dat
# 应该显示约20GB
```
3. 如果持久化损坏,重新创建:
```bash
# 在Windows上重新运行 3-create-persistence.ps1
```
### 9. 性能问题
**问题**: 系统运行缓慢
**解决方案**:
1. **使用USB 3.0接口**(蓝色接口)
2. **关闭不必要的特效**:
```bash
# 安装gnome-tweaks调整性能
sudo apt-get install gnome-tweaks
```
3. **增加swap空间**(仅限持久化模式):
```bash
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
```
### 10. 硬件兼容性问题
**问题**: 某些硬件不工作WiFi、蓝牙、声卡等
**解决方案**:
1. **更新内核**(仅限持久化模式):
```bash
sudo apt-get update
sudo apt-get install linux-generic-hwe-24.04
```
2. **安装额外驱动**:
```bash
# 检查可用驱动
ubuntu-drivers devices
# 安装推荐驱动
sudo ubuntu-drivers autoinstall
```
## 调试技巧
### 查看日志
```bash
# OpenClaw日志
tail -f /opt/u-claw/data/logs/openclaw.log
# 系统日志
dmesg | tail -20
journalctl -xe
```
### 测试网络
```bash
# 测试国内镜像
curl -I https://registry.npmmirror.com
curl -I https://npmmirror.com/mirrors/node
# 测试AI API
curl https://api.deepseek.com/health
```
### 检查磁盘使用
```bash
# 查看U盘使用情况
df -h /media/ubuntu
# 查看大文件
du -sh /opt/u-claw/*
```
## 紧急恢复
如果系统完全无法启动:
1. **从其他电脑访问U盘**:
- 在Windows/Mac上插入U盘
- 备份 `u-claw-linux/` 目录下的重要数据
2. **重新制作U盘**:
- 格式化U盘
- 重新运行所有4个PowerShell脚本
3. **寻求帮助**:
- GitHub Issues: https://github.com/dongsheng123132/u-claw/issues
- 微信: hecare888
## 性能优化建议
1. **制作时**:
- 使用高质量的USB 3.0 U盘
- 分配足够的持久化空间建议20GB+
- 关闭杀毒软件实时扫描
2. **使用时**:
- 首次启动后运行系统更新
- 安装推荐驱动
- 定期清理缓存
3. **长期使用**:
- 考虑安装到硬盘(双系统)
- 定期备份重要数据
- 关注Ubuntu安全更新

View File

@@ -33,7 +33,14 @@ REAL_HOME=$(eval echo "~$REAL_USER")
# ── 2. Install system dependencies ──
echo "[1/9] Installing system dependencies..."
apt-get update -qq
# Live USB环境需要额外的包
if grep -q "boot=casper" /proc/cmdline 2>/dev/null; then
echo " Detected Live USB environment, installing additional packages..."
apt-get install -y -qq curl xdg-utils gvfs-bin libgtk-3-0 libnotify4 libnss3 libxss1 libxtst6 xdg-utils libatspi2.0-0 libuuid1 libgbm1 libasound2 > /dev/null 2>&1
else
apt-get install -y -qq curl xdg-utils > /dev/null 2>&1
fi
echo " Done."
# ── 3. Create install directory ──
@@ -132,6 +139,21 @@ DESKTOP_FILE="$REAL_HOME/Desktop/openclaw.desktop"
APPS_DIR="$REAL_HOME/.local/share/applications"
mkdir -p "$APPS_DIR"
# 检查是否是Live环境如果是则创建更简单的启动脚本
if grep -q "boot=casper" /proc/cmdline 2>/dev/null; then
echo " Live USB detected, creating simplified launcher..."
# 创建直接启动脚本
cat > "$REAL_HOME/Desktop/Start-U-Claw.sh" << 'LAUNCHEREOF'
#!/bin/bash
echo "Starting U-Claw AI Assistant..."
cd /opt/u-claw
bash start-openclaw.sh
LAUNCHEREOF
chmod +x "$REAL_HOME/Desktop/Start-U-Claw.sh"
chown "$REAL_USER:$REAL_USER" "$REAL_HOME/Desktop/Start-U-Claw.sh"
fi
# 仍然创建标准的.desktop文件
cat > "$DESKTOP_FILE" << 'DESKTOPEOF'
[Desktop Entry]
Name=U-Claw AI Assistant
@@ -140,6 +162,7 @@ Exec=/opt/u-claw/start-openclaw.sh
Terminal=true
Type=Application
Categories=Utility;
Icon=utilities-terminal
DESKTOPEOF
cp "$DESKTOP_FILE" "$APPS_DIR/openclaw.desktop"
@@ -177,5 +200,19 @@ echo ""
echo " To start: Double-click 'U-Claw AI Assistant' on desktop"
echo " or: bash $INSTALL_DIR/start-openclaw.sh"
echo ""
# 复制测试脚本
if [[ -f "$SCRIPT_DIR/test-installation.sh" ]]; then
cp "$SCRIPT_DIR/test-installation.sh" "$INSTALL_DIR/test-installation.sh"
chmod +x "$INSTALL_DIR/test-installation.sh"
echo " Test script: bash $INSTALL_DIR/test-installation.sh"
echo ""
fi
# 运行快速测试
echo "Running quick installation test..."
if [[ -f "$SCRIPT_DIR/test-installation.sh" ]]; then
bash "$SCRIPT_DIR/test-installation.sh" | tail -20
fi
echo " First time? Configure your AI model in the browser after startup."
echo "============================================"

View File

@@ -18,14 +18,22 @@ export OPENCLAW_CONFIG_PATH="$DATA_DIR/.openclaw/openclaw.json"
# --- Sanity checks ---
if [[ ! -x "$NODE_BIN" ]]; then
echo "[ERROR] Node.js not found at $NODE_BIN"
echo "Please run setup-openclaw.sh first."
echo ""
echo "Possible solutions:"
echo "1. Run setup script: sudo bash /opt/u-claw/setup-openclaw.sh"
echo "2. If on Live USB, the script might be at:"
echo " /media/ubuntu/u-claw-linux/setup-openclaw.sh"
echo ""
read -rp "Press Enter to exit..."
exit 1
fi
if [[ ! -d "$CORE_DIR/node_modules/openclaw" ]]; then
echo "[ERROR] OpenClaw not installed in $CORE_DIR"
echo "Please run setup-openclaw.sh first."
echo ""
echo "Please run the setup script first:"
echo "sudo bash /opt/u-claw/setup-openclaw.sh"
echo ""
read -rp "Press Enter to exit..."
exit 1
fi
@@ -73,8 +81,16 @@ fi
echo "Opening browser at http://localhost:$PORT ..."
# Open browser after a short delay
# Open browser after a short delay - 检查是否在图形环境中
if [[ -n "$DISPLAY" ]] && command -v xdg-open >/dev/null 2>&1; then
(sleep 3 && xdg-open "http://localhost:$PORT" 2>/dev/null) &
echo " Browser will open automatically."
else
echo ""
echo "[INFO] No graphical environment detected or xdg-open not available."
echo " Please open http://localhost:$PORT in your browser manually."
echo ""
fi
"$NODE_BIN" "$OPENCLAW_ENTRY" gateway run \
--allow-unconfigured \

View File

@@ -0,0 +1,200 @@
#!/usr/bin/env bash
# ============================================================
# U-Claw Installation Test Script
# 测试OpenClaw安装是否成功
# ============================================================
set -euo pipefail
echo "============================================"
echo " U-Claw Installation Test"
echo "============================================"
echo ""
INSTALL_DIR="/opt/u-claw"
ERRORS=0
WARNINGS=0
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
check() {
local name="$1"
local command="$2"
local expected="$3"
echo -n "$name: "
if eval "$command" 2>/dev/null; then
echo -e "${GREEN}PASS${NC}"
return 0
else
echo -e "${RED}FAIL${NC}"
echo " Expected: $expected"
((ERRORS++))
return 1
fi
}
warn() {
local name="$1"
local message="$2"
echo -e "$name: ${YELLOW}$message${NC}"
((WARNINGS++))
}
echo "1. 检查基本目录结构..."
check "安装目录存在" "[ -d '$INSTALL_DIR' ]" "Directory $INSTALL_DIR"
check "runtime目录" "[ -d '$INSTALL_DIR/runtime' ]" "Runtime directory"
check "core目录" "[ -d '$INSTALL_DIR/core' ]" "Core directory"
check "data目录" "[ -d '$INSTALL_DIR/data' ]" "Data directory"
echo ""
echo "2. 检查Node.js安装..."
NODE_BIN="$INSTALL_DIR/runtime/node-linux-x64/bin/node"
if [ -x "$NODE_BIN" ]; then
NODE_VERSION=$("$NODE_BIN" --version 2>/dev/null || echo "")
echo -e "✓ Node.js版本: ${GREEN}$NODE_VERSION${NC}"
if [ "$NODE_VERSION" != "v22.14.0" ]; then
warn "Node.js版本" "Expected v22.14.0, found $NODE_VERSION"
fi
else
echo -e "${RED}✗ Node.js未找到或不可执行${NC}"
((ERRORS++))
fi
echo ""
echo "3. 检查OpenClaw安装..."
if [ -d "$INSTALL_DIR/core/node_modules/openclaw" ]; then
echo -e "✓ OpenClaw已安装"
# 检查主要文件
OPENCLAW_ENTRY=$(find "$INSTALL_DIR/core/node_modules/openclaw" -name "openclaw.mjs" -maxdepth 2 2>/dev/null | head -1)
if [ -n "$OPENCLAW_ENTRY" ]; then
echo -e "✓ OpenClaw入口文件: ${GREEN}$OPENCLAW_ENTRY${NC}"
else
echo -e "${RED}✗ 未找到openclaw.mjs${NC}"
((ERRORS++))
fi
else
echo -e "${RED}✗ OpenClaw未安装${NC}"
((ERRORS++))
fi
echo ""
echo "4. 检查配置文件..."
CONFIG_FILE="$INSTALL_DIR/data/.openclaw/openclaw.json"
if [ -f "$CONFIG_FILE" ]; then
echo -e "✓ 配置文件存在"
# 检查配置格式
if python3 -m json.tool "$CONFIG_FILE" >/dev/null 2>&1; then
echo -e "✓ 配置文件格式正确"
else
warn "配置文件" "JSON格式可能有问题"
fi
else
echo -e "${YELLOW}⚠ 配置文件不存在(首次运行正常)${NC}"
((WARNINGS++))
fi
echo ""
echo "5. 检查启动脚本..."
START_SCRIPT="$INSTALL_DIR/start-openclaw.sh"
if [ -x "$START_SCRIPT" ]; then
echo -e "✓ 启动脚本存在且可执行"
else
if [ -f "$START_SCRIPT" ]; then
echo -e "${YELLOW}⚠ 启动脚本存在但不可执行${NC}"
chmod +x "$START_SCRIPT" 2>/dev/null && echo " 已添加执行权限"
else
echo -e "${RED}✗ 启动脚本未找到${NC}"
((ERRORS++))
fi
fi
echo ""
echo "6. 检查端口可用性..."
PORT_FOUND=false
for port in $(seq 18789 18799); do
if ! ss -tlnp 2>/dev/null | grep -q ":$port "; then
echo -e "✓ 端口 $port 可用"
PORT_FOUND=true
break
fi
done
if [ "$PORT_FOUND" = false ]; then
warn "端口" "所有端口18789-18799都被占用"
fi
echo ""
echo "7. 检查桌面快捷方式..."
if [ -f "$HOME/Desktop/openclaw.desktop" ] || [ -f "$HOME/.local/share/applications/openclaw.desktop" ]; then
echo -e "✓ 桌面快捷方式已创建"
else
warn "桌面快捷方式" "未找到桌面快捷方式"
fi
echo ""
echo "============================================"
echo " 测试结果汇总"
echo "============================================"
echo ""
if [ $ERRORS -eq 0 ]; then
echo -e "${GREEN}✅ 所有关键检查通过!${NC}"
echo " 安装看起来是成功的。"
echo ""
echo " 启动命令:"
echo " bash /opt/u-claw/start-openclaw.sh"
echo ""
echo " 或双击桌面上的 'U-Claw AI Assistant' 图标"
else
echo -e "${RED}❌ 发现 $ERRORS 个错误${NC}"
echo " 请检查上述失败的项目。"
echo ""
echo " 常见解决方案:"
echo " 1. 重新运行安装脚本:"
echo " sudo bash /opt/u-claw/setup-openclaw.sh"
echo " 2. 检查网络连接"
echo " 3. 查看详细日志"
fi
if [ $WARNINGS -gt 0 ]; then
echo -e "${YELLOW}⚠ 有 $WARNINGS 个警告${NC}"
echo " 这些可能不会影响基本功能,但建议修复。"
fi
echo ""
echo "============================================"
# 提供快速修复选项
if [ $ERRORS -gt 0 ]; then
echo ""
read -rp "是否尝试自动修复问题? (y/N): " FIX
if [[ "$FIX" =~ ^[Yy]$ ]]; then
echo ""
echo "尝试修复..."
# 修复启动脚本权限
if [ -f "$START_SCRIPT" ] && [ ! -x "$START_SCRIPT" ]; then
echo " 修复启动脚本权限..."
sudo chmod +x "$START_SCRIPT"
fi
# 重新安装OpenClaw
if [ ! -d "$INSTALL_DIR/core/node_modules/openclaw" ]; then
echo " 重新安装OpenClaw..."
cd "$INSTALL_DIR/core"
sudo npm install --registry=https://registry.npmmirror.com openclaw@latest 2>/dev/null || true
fi
echo ""
echo "修复完成。请重新运行此测试脚本。"
fi
fi