diff --git a/src/modules/01-optimization/cpupower.sh b/src/modules/01-optimization/cpupower.sh index e022e15..3dcd015 100644 --- a/src/modules/01-optimization/cpupower.sh +++ b/src/modules/01-optimization/cpupower.sh @@ -183,13 +183,19 @@ cpu_add() { else local modules_backed_up=0 for i in $drivers; do - modprobe $i - if ! grep -qw "$i" /etc/modules; then - if [[ "$modules_backed_up" -eq 0 ]]; then - backup_file "/etc/modules" - modules_backed_up=1 + if modprobe "$i"; then + if ! grep -qw "$i" /etc/modules; then + if [[ "$modules_backed_up" -eq 0 ]]; then + if ! backup_file "/etc/modules"; then + log_error "无法备份 /etc/modules,跳过驱动持久化" + break + fi + modules_backed_up=1 + fi + echo "$i" >> /etc/modules fi - echo "$i" >> /etc/modules + else + log_warn "modprobe $i 失败,跳过该驱动" fi done sensors @@ -244,7 +250,11 @@ cpu_add() { fi # 生成系统变量 (参考 PVE 8 脚本的改进实现) - tmpf="$(mktemp)" + local tmpf + tmpf="$(mktemp)" || { + log_error "无法创建临时文件" + return 1 + } cat > $tmpf << 'EOF' #modbyshowtempfreq @@ -381,7 +391,11 @@ EOF rm $tmpf ################### 修改pvemanagerlib.js ########################## - tmpf="$(mktemp)" + local tmpf + tmpf="$(mktemp)" || { + log_error "无法创建临时文件" + return 1 + } cat > $tmpf << 'EOF' //modbyshowtempfreq diff --git a/src/modules/02-sources/upgrade-pve.sh b/src/modules/02-sources/upgrade-pve.sh index 3e62a94..9f9c329 100644 --- a/src/modules/02-sources/upgrade-pve.sh +++ b/src/modules/02-sources/upgrade-pve.sh @@ -88,8 +88,12 @@ pve8_to_pve9_upgrade() { log_error "pve8to9 检查发现严重错误!! 一般是软件包冲突或是其他报错!建议修复后再进行升级!" echo -e "${YELLOW}升级检查结果详情:${NC}" cat /tmp/pve8to9_check.log - read -p "您确定要忽略这些错误并继续升级吗?这不是在开玩笑!(y/N): " force_upgrade - if [[ "$force_upgrade" != "y" && "$force_upgrade" != "Y" ]]; then + if ! confirm_high_risk_action \ + "忽略 pve8to9 严重错误并强制升级" \ + "pve8to9 检测到 FAIL 级别错误,忽略可能导致升级失败、系统无法启动或数据丢失。" \ + "将跳过 pve8to9 检查并继续执行 PVE 8.x → 9.x 升级流程。" \ + "这不是在开玩笑!请确保已完整备份并有回滚方案。" \ + "FORCE-UPGRADE"; then log_info "由于存在严重错误,已取消升级操作...返回主界面" return 1 fi