Files
diskmanager2/README_Tkinter.md
2026-02-09 03:14:35 +08:00

170 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Linux 存储管理工具 - Tkinter 版本
这是一个使用 Tkinter 重写的 Linux 存储管理工具,适配低版本系统(如 CentOS 8
## 特性
- **无需 PySide6**: 使用 Python 内置的 Tkinter 模块,无需安装额外的 GUI 库
- **兼容旧系统**: 支持 Python 3.6+,兼容 CentOS 8/RHEL 8 等系统
- **完整功能**: 保留原版本的所有功能,包括:
- 块设备管理(查看、创建分区、格式化、挂载/卸载)
- RAID 管理(创建、停止、删除阵列)
- LVM 管理PV/VG/LV 的创建和删除)
- 设备占用解除
## 系统要求
- Python 3.6 或更高版本
- tkinter 模块(通常随 Python 一起安装)
- 以下系统工具(根据功能需求):
- `lsblk` - 块设备信息
- `parted` - 分区管理
- `mdadm` - RAID 管理
- `lvm2` - LVM 管理
## 安装
### CentOS 8 / RHEL 8
```bash
# 安装 Python 3 和 tkinter
sudo yum install -y python3 python3-tkinter
# 安装必要的存储管理工具
sudo yum install -y parted mdadm lvm2 util-linux
# 可选:安装 pexpect用于交互式命令推荐安装
sudo pip3 install pexpect
```
### Ubuntu 20.04 / Debian 10
```bash
# 安装 Python 3 和 tkinter
sudo apt-get update
sudo apt-get install -y python3 python3-tk
# 安装必要的存储管理工具
sudo apt-get install -y parted mdadm lvm2 util-linux
# 可选:安装 pexpect
sudo pip3 install pexpect
```
## 使用方法
### 方式一:使用启动脚本(推荐)
```bash
chmod +x run_tkinter.sh
./run_tkinter.sh
```
### 方式二:直接运行
```bash
sudo python3 main_tkinter.py
```
### 方式三:创建桌面快捷方式
```bash
# 创建桌面文件
cat > ~/.local/share/applications/linux-storage-manager.desktop << 'EOF'
[Desktop Entry]
Name=Linux 存储管理器
Comment=Linux 存储管理工具
Exec=python3 /path/to/diskmanager/main_tkinter.py
Type=Application
Terminal=false
Icon=drive-harddisk
Categories=System;Filesystem;
EOF
```
## 文件说明
| 文件 | 说明 |
|------|------|
| `main_tkinter.py` | 程序入口 |
| `mainwindow_tkinter.py` | 主窗口实现 |
| `dialogs_tkinter.py` | 对话框组件 |
| `logger_config_tkinter.py` | 日志配置Tkinter 版本)|
| `disk_operations_tkinter.py` | 磁盘操作模块Tkinter 版本)|
| `raid_operations_tkinter.py` | RAID 操作模块Tkinter 版本)|
| `lvm_operations_tkinter.py` | LVM 操作模块Tkinter 版本)|
| `occupation_resolver_tkinter.py` | 设备占用解除模块Tkinter 版本)|
| `system_info.py` | 系统信息获取模块(无需修改)|
| `run_tkinter.sh` | 启动脚本 |
| `verify_tkinter.py` | 环境验证脚本 |
## 与原版本的区别
1. **GUI 框架**: PySide6 → Tkinter
2. **线程机制**: QThread → threading.Thread
3. **信号/槽**: Qt Signal/Slot → Python 回调函数 + queue
4. **对话框**: QDialog → tkinter.Toplevel
5. **消息框**: QMessageBox → tkinter.messagebox
6. **输入框**: QInputDialog → tkinter.simpledialog
## 注意事项
1. **权限**: 程序需要 root 权限才能执行存储管理操作
2. **数据安全**: 删除、格式化等操作会永久删除数据,请谨慎操作
3. **备份**: 执行重要操作前请备份重要数据
4. **兼容性**: 虽然适配了旧系统,但建议使用前先在测试环境验证
## 故障排除
### 问题:无法启动,提示缺少 tkinter
**解决**:
```bash
# CentOS/RHEL
sudo yum install python3-tkinter
# Ubuntu/Debian
sudo apt-get install python3-tk
```
### 问题:部分功能无法使用
**解决**: 确保安装了相应的系统工具:
```bash
# CentOS/RHEL
sudo yum install parted mdadm lvm2
# Ubuntu/Debian
sudo apt-get install parted mdadm lvm2
```
### 问题:界面显示异常
**解决**: 尝试设置环境变量:
```bash
export DISPLAY=:0
python3 main_tkinter.py
```
### 问题:提示缺少 pexpect
**解决**: pexpect 是可选依赖,用于处理交互式命令(如创建 RAID 时的确认提示)。
```bash
sudo pip3 install pexpect
```
如果没有安装 pexpectRAID 创建功能仍能工作,但可能无法处理交互式提示。
## 开发信息
- **目标 Python 版本**: 3.6+
- **GUI 库**: Tkinter (内置)
- **线程库**: threading (内置)
- **依赖**:
- 必需: 无(纯 Python 标准库 + tkinter
- 可选: pexpect用于交互式命令
## 许可证
与原项目相同。