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

4.3 KiB
Raw Permalink Blame History

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

# 安装 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

# 安装 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

使用方法

方式一:使用启动脚本(推荐)

chmod +x run_tkinter.sh
./run_tkinter.sh

方式二:直接运行

sudo python3 main_tkinter.py

方式三:创建桌面快捷方式

# 创建桌面文件
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

解决:

# CentOS/RHEL
sudo yum install python3-tkinter

# Ubuntu/Debian
sudo apt-get install python3-tk

问题:部分功能无法使用

解决: 确保安装了相应的系统工具:

# CentOS/RHEL
sudo yum install parted mdadm lvm2

# Ubuntu/Debian
sudo apt-get install parted mdadm lvm2

问题:界面显示异常

解决: 尝试设置环境变量:

export DISPLAY=:0
python3 main_tkinter.py

问题:提示缺少 pexpect

解决: pexpect 是可选依赖,用于处理交互式命令(如创建 RAID 时的确认提示)。

sudo pip3 install pexpect

如果没有安装 pexpectRAID 创建功能仍能工作,但可能无法处理交互式提示。

开发信息

  • 目标 Python 版本: 3.6+
  • GUI 库: Tkinter (内置)
  • 线程库: threading (内置)
  • 依赖:
    • 必需: 无(纯 Python 标准库 + tkinter
    • 可选: pexpect用于交互式命令

许可证

与原项目相同。