This commit is contained in:
zj
2026-02-14 14:41:43 +08:00
parent 2ae2837ddc
commit bab2db9e51

213
README.md
View File

@@ -1,3 +1,212 @@
### GURB引导修复 # BootRepairTool - Linux GRUB 引导修复工具
提供图形化界面 [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Python](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/)
> 一个简单易用的 Linux GRUB 引导修复工具,提供图形化界面,适用于 Live USB/CD 环境。
## 📖 项目介绍
**BootRepairTool** 是一个用于修复 Linux 系统 GRUB 引导加载器的图形化工具。当你的系统因为 GRUB 损坏、分区调整、重装 Windows 等原因导致无法启动时,此工具可以帮助你快速修复引导问题。
### 主要功能
- 🔍 **自动扫描分区** - 自动检测系统中的 Linux 分区和 EFI 分区
- 🐧 **多发行版支持** - 支持 Arch、Debian/Ubuntu、CentOS/RHEL/Fedora、openSUSE 等主流发行版
- 🧬 **多架构支持** - 支持 x86_64、i386、arm64、loongarch64 等架构
- 💾 **多种文件系统** - 支持 ext4、btrfs、xfs、lvm、luks 等
- 🔧 **一键修复** - 自动挂载、chroot 环境、重装 GRUB、更新配置
- 🖥️ **图形界面** - 基于 tkinter 的直观图形界面
- 🔒 **Secure Boot 检测** - 自动检测并提示 Secure Boot 状态
## 🚀 使用方法
### 场景一系统无法启动Live USB 环境)
1. 使用 Linux Live USB/CD 启动电脑
2. 连接网络(可选,用于在线安装)
3. 打开终端,运行安装命令
4. 启动 BootRepairTool 进行修复
### 场景二:已安装系统的维护
直接在已安装的 Linux 系统中运行(需要 root 权限)。
## 📦 安装方法
### Arch Linux推荐
#### 方式一:一键安装脚本(自动从 Git 克隆)
```bash
# 下载安装脚本
wget https://raw.githubusercontent.com/yourusername/BootRepairTool/main/arch-install.sh
# 运行安装(默认从 Git 克隆最新版本)
sudo bash arch-install.sh
# 或使用本地文件安装
sudo bash arch-install.sh local
```
安装脚本会自动:
- 安装依赖git、tk、python
- 克隆/复制项目到 `/opt/boot-repair-tool`
- 创建启动脚本 `/bin/boot-repair`
- 创建桌面快捷方式
#### 方式二:手动安装
```bash
# 1. 安装依赖
sudo pacman -S git tk python
# 2. 克隆项目
sudo git clone https://github.com/yourusername/BootRepairTool.git /opt/boot-repair-tool
# 3. 创建启动脚本
sudo ln -s /opt/boot-repair-tool/arch-install.sh /bin/boot-repair
# 4. 运行
sudo boot-repair
```
### 其他发行版Debian/Ubuntu/CentOS 等)
#### 方式一:打包安装
```bash
# 1. 确保有 Python 3.9+
python3 --version
# 2. 安装 PyInstaller
pip3 install pyinstaller
# 3. 打包
python3 build.py
# 4. 安装
sudo bash install.sh
```
#### 方式二:直接运行源码
```bash
# 1. 安装依赖
# Debian/Ubuntu:
sudo apt-get install git python3 python3-tk
# CentOS/RHEL/Fedora:
sudo yum install git python3 tkinter
# 2. 克隆项目
git clone https://github.com/yourusername/BootRepairTool.git
cd BootRepairTool
# 3. 直接运行
sudo python3 frontend.py
```
## 🎮 启动程序
安装完成后,可以通过以下方式启动:
```bash
# 命令行启动
sudo boot-repair
# 或使用 pkexec
pkexec boot-repair
```
或在应用程序菜单中搜索 "Linux GRUB 引导修复工具"。
## 🔧 修复步骤
1. **选择根分区 (/)** - 选择你的 Linux 根分区
2. **选择 /boot 分区**(可选)- 如果 /boot 是独立分区
3. **选择 EFI 分区**UEFI 模式)- 通常是 FAT32 格式的 ESP 分区
4. **选择目标磁盘** - 要安装 GRUB 的磁盘(如 /dev/sda
5. **点击"开始修复"** - 工具会自动完成挂载、chroot、修复、卸载
## 🖼️ 界面预览
```
+--------------------------------------------------+
| Linux GRUB 引导修复工具 v2.0 |
+--------------------------------------------------+
| 系统信息: x86_64 | 64位EFI | Live环境 |
+--------------------------------------------------+
| 1. 选择目标系统分区 |
| 根分区 (/) *: [/dev/sda1 ▼] |
| /boot 分区: [可选 ▼] |
| EFI 分区: [/dev/sda2 ▼] |
+--------------------------------------------------+
| 2. 选择目标磁盘 |
| 磁盘: [/dev/sda ▼] |
| [✓] UEFI 模式 |
+--------------------------------------------------+
| 3. 高级选项 |
| [ 开始修复 ] [ 刷新 ] |
+--------------------------------------------------+
| [日志窗口...] |
+--------------------------------------------------+
```
## 📋 支持的发行版
| 发行版 | 状态 |
|--------|------|
| Arch Linux / Manjaro / EndeavourOS | ✅ 完全支持 |
| Debian / Ubuntu / Linux Mint | ✅ 完全支持 |
| CentOS / RHEL / Rocky Linux / AlmaLinux | ✅ 完全支持 |
| Fedora | ✅ 完全支持 |
| openSUSE Leap / Tumbleweed | ✅ 完全支持 |
| Void Linux | ✅ 完全支持 |
| Gentoo | ✅ 完全支持 |
| NixOS | ✅ 完全支持 |
## ⚠️ 注意事项
1. **需要 root 权限** - 所有磁盘操作需要 `sudo`
2. **Live 环境** - 设计为在 Live USB/CD 中运行
3. **数据备份** - 建议操作前备份重要数据
4. **Secure Boot** - 某些情况下需要先在 BIOS 中禁用 Secure Boot
5. **UEFI/BIOS 模式** - 确保 Live USB 以正确的模式启动(与待修复系统一致)
## 🐛 故障排除
### 启动后黑屏/界面不显示
Arch Linux 可能出现 X11 字体渲染问题,尝试:
```bash
export XLIB_SKIP_ARGB_VISUALS=1
sudo boot-repair
```
### 找不到 EFI 分区
确保以 UEFI 模式启动 Live USB而非 Legacy BIOS 模式。
### 修复后仍然无法启动
1. 检查 BIOS 启动顺序
2. 尝试禁用 Secure Boot
3. 手动选择 EFI 文件启动测试
## 🤝 贡献
欢迎提交 Issue 和 Pull Request
## 📄 许可证
MIT License
## 🙏 致谢
- 参考 [Calamares](https://calamares.io) 引导安装模块实现
- 感谢所有贡献者和测试者
---
**提示**: 如果使用过程中遇到问题,请在终端运行 `sudo boot-repair` 查看详细日志信息。