170 lines
4.3 KiB
Markdown
170 lines
4.3 KiB
Markdown
# 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
|
||
```
|
||
|
||
如果没有安装 pexpect,RAID 创建功能仍能工作,但可能无法处理交互式提示。
|
||
|
||
## 开发信息
|
||
|
||
- **目标 Python 版本**: 3.6+
|
||
- **GUI 库**: Tkinter (内置)
|
||
- **线程库**: threading (内置)
|
||
- **依赖**:
|
||
- 必需: 无(纯 Python 标准库 + tkinter)
|
||
- 可选: pexpect(用于交互式命令)
|
||
|
||
## 许可证
|
||
|
||
与原项目相同。
|