fix: cpupower 安全写入与 upgrade-pve 强制升级确认加固

- cpupower.sh: modprobe 失败时跳过驱动写入;backup_file 失败时中止;tmpf 添加 local 并检查 mktemp
- upgrade-pve.sh: 强制升级的 y/N read 替换为 confirm_high_risk_action (FORCE-UPGRADE)
This commit is contained in:
Maple
2026-07-08 13:41:21 +08:00
parent 413f0e0e66
commit 1fc80ec3ca
2 changed files with 28 additions and 10 deletions

View File

@@ -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

View File

@@ -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