# 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(用于交互式命令) ## 许可证 与原项目相同。