1
This commit is contained in:
20
backend.py
20
backend.py
@@ -2460,10 +2460,30 @@ def chroot_and_repair_grub(mount_point: str, target_disk: str,
|
|||||||
content = f.read()
|
content = f.read()
|
||||||
menu_entries = content.count('menuentry')
|
menu_entries = content.count('menuentry')
|
||||||
log_info(f" 发现 {menu_entries} 个启动菜单项")
|
log_info(f" 发现 {menu_entries} 个启动菜单项")
|
||||||
|
|
||||||
|
# 验证配置文件是否有效
|
||||||
|
if size < 1000:
|
||||||
|
log_warning(f"配置文件太小 ({size} 字节),可能有问题")
|
||||||
|
if menu_entries == 0:
|
||||||
|
log_warning("配置文件中没有找到启动菜单项!")
|
||||||
|
log_info("尝试重新生成配置...")
|
||||||
|
# 再次尝试生成配置
|
||||||
|
success2, stdout2, stderr2 = run_command(
|
||||||
|
chroot_cmd_prefix + grub_update_cmd,
|
||||||
|
"重新生成GRUB配置",
|
||||||
|
timeout=120
|
||||||
|
)
|
||||||
|
if success2:
|
||||||
|
# 重新读取
|
||||||
|
with open(full_config_path, 'r') as f2:
|
||||||
|
content2 = f2.read()
|
||||||
|
menu_entries2 = content2.count('menuentry')
|
||||||
|
log_info(f"重新生成后: {len(content2)} 字节, {menu_entries2} 个菜单项")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_warning(f" 无法读取配置文件: {e}")
|
log_warning(f" 无法读取配置文件: {e}")
|
||||||
else:
|
else:
|
||||||
log_warning(f" 配置文件未找到: {full_config_path}")
|
log_warning(f" 配置文件未找到: {full_config_path}")
|
||||||
|
return False, f"grub.cfg 文件未生成: {full_config_path}"
|
||||||
|
|
||||||
# ===== 输出启动提示 =====
|
# ===== 输出启动提示 =====
|
||||||
if is_uefi or install_hybrid:
|
if is_uefi or install_hybrid:
|
||||||
|
|||||||
Reference in New Issue
Block a user