fix: 修复审查机器人第二轮反馈 — 回归问题与遗漏边界

- upgrade-pve.sh: 拆分 apt update && dist-upgrade 短路逻辑为独立检查
- intel-legacy.sh: dpkg -i 失败时不再误报成功/锁定包
- cpupower.sh: /etc/modules 备份守卫改用布尔标志,避免重复备份
- popup.sh: 移除 restore_proxmoxlib 中与 reinstall 内部重复的日志
- iommu.sh: disable_pass 添加 /etc/modules backup_file;grub_add_param 失败时 early return
- init.sh(08): backup_file 失败时中止黑名单清理并提示
This commit is contained in:
Maple
2026-07-08 13:34:34 +08:00
parent 0b0b20ed5e
commit 413f0e0e66
6 changed files with 29 additions and 12 deletions

View File

@@ -181,11 +181,13 @@ cpu_add() {
log_warn "没有找到任何驱动,似乎你的系统不支持或驱动安装失败。"
pause_function
else
local modules_backed_up=0
for i in $drivers; do
modprobe $i
if ! grep -qw "$i" /etc/modules; then
if ! grep -q 'modbyshowtempfreq' /etc/modules 2>/dev/null; then
if [[ "$modules_backed_up" -eq 0 ]]; then
backup_file "/etc/modules"
modules_backed_up=1
fi
echo "$i" >> /etc/modules
fi

View File

@@ -58,10 +58,8 @@ restore_proxmoxlib() {
fi
if ! reinstall_pve_webui_packages; then
log_error "恢复失败,请检查软件源或网络后重试"
return 1
fi
log_success "官方 Web UI 文件已恢复"
}
# 合并 local 与 local-lvm

View File

@@ -50,8 +50,12 @@ pve8_to_pve9_upgrade() {
# 1. 更新当前系统到最新 PVE 8.x 版本
log_info "更新当前系统到最新 PVE 8.x 版本..."
if ! apt update && apt dist-upgrade -y; then
log_error "更新 PVE 8.x 到最新版本失败,请检查网络连接或源配置或者前往作者的GitHub反馈issue.."
if ! apt update; then
log_error "apt update 失败,请检查网络连接或源配置"
return 1
fi
if ! apt dist-upgrade -y; then
log_error "apt dist-upgrade 失败请检查软件包冲突或前往作者的GitHub反馈issue"
return 1
fi

View File

@@ -135,13 +135,18 @@ intel_gpu_passthrough() {
if [[ -s "$qemu_deb_file" ]]; then
log_info "正在安装修改版 QEMU..."
dpkg -i "$qemu_deb_file"
rm -f "$qemu_deb_file"
log_success "安装完成"
if dpkg -i "$qemu_deb_file"; then
rm -f "$qemu_deb_file"
log_success "安装完成"
# 阻止更新
apt-mark hold pve-qemu-kvm
log_info "已锁定 pve-qemu-kvm 防止自动更新"
# 阻止更新
apt-mark hold pve-qemu-kvm
log_info "已锁定 pve-qemu-kvm 防止自动更新"
else
rm -f "$qemu_deb_file"
log_error "安装修改版 QEMU 失败,请检查 deb 包完整性"
return 1
fi
else
rm -f "$qemu_deb_file"
log_error "下载失败"

View File

@@ -35,6 +35,9 @@ enable_pass() {
if ! grep -qw "$(echo "$iommu" | cut -d'=' -f1)" /etc/default/grub; then
if grub_add_param "$iommu"; then
update-grub
else
log_error "GRUB 参数添加失败,无法继续配置硬件直通"
return 1
fi
if [ `grep "vfio" /etc/modules|wc -l` = 0 ];then
cat <<-EOF >> /etc/modules
@@ -82,6 +85,7 @@ disable_pass() {
log_warn "您还没有配置过该项"
else
grub_remove_param "$iommu"
backup_file "/etc/modules"
sed -i '/vfio/d' /etc/modules
# 使用安全的配置块删除,而不是直接删除整个文件
remove_block "/etc/modprobe.d/blacklist.conf" "HARDWARE_PASSTHROUGH"

View File

@@ -60,7 +60,11 @@ show_menu_rescue() {
"请确认你需要移除黑名单中的显卡和声卡驱动限制。" \
"CONFIRM"; then
log_info "正在清理黑名单配置..."
backup_file "/etc/modprobe.d/pve-blacklist.conf"
if ! backup_file "/etc/modprobe.d/pve-blacklist.conf"; then
log_error "无法备份 /etc/modprobe.d/pve-blacklist.conf操作中止"
pause_function
break
fi
sed -i '/blacklist i915/d' /etc/modprobe.d/pve-blacklist.conf
sed -i '/blacklist snd_hda_intel/d' /etc/modprobe.d/pve-blacklist.conf
sed -i '/blacklist snd_hda_codec_hdmi/d' /etc/modprobe.d/pve-blacklist.conf