lshw、dmidecode等。
hardinfo(Hardware Information)是一个开源的系统信息查看工具,使用GTK+编写,提供了一个直观的图形界面来查看计算机的硬件和系统信息。它可以生成详细的硬件报告,支持导出为HTML或纯文本格式。
# Ubuntu/Debian
sudo apt-get install hardinfo
# RHEL/CentOS 7(需要EPEL仓库)
sudo yum install epel-release
sudo yum install hardinfo
# RHEL/CentOS 8/Fedora
sudo dnf install hardinfo
# Arch Linux
sudo pacman -S hardinfo
# 从源码编译安装
git clone https://github.com/lpereira/hardinfo
cd hardinfo
mkdir build && cd build
cmake ..
make
sudo make install
# 验证安装
hardinfo --version
# 启动图形界面
hardinfo
# 命令行选项
hardinfo [选项]
# 生成报告
hardinfo -r [格式] > 报告文件
| 选项 | 说明 |
|---|---|
--version |
显示版本信息 |
--help |
显示帮助信息 |
-r, --report |
生成系统报告 |
-f, --format=格式 |
指定报告格式(html, text) |
-b, --benchmark |
运行基准测试 |
-a, --all |
生成所有信息的报告 |
-m, --module=模块 |
只生成指定模块的报告 |
-t, --tab=标签 |
启动时直接打开指定标签页 |
--list-modules |
列出所有可用模块 |
--list-tabs |
列出所有可用标签页 |
# 启动hardinfo图形界面
hardinfo
# 启动时直接打开"计算机"标签页
hardinfo -t computer
# 启动时直接打开"设备"标签页
hardinfo -t devices
# 生成HTML格式的系统报告
hardinfo -r html > system_report.html
# 生成简化版的HTML报告(不包含基准测试)
hardinfo -r html -m computer,memory,storage > hardware_report.html
# 在浏览器中查看报告
firefox system_report.html
# 生成纯文本格式的系统报告
hardinfo -r text > system_info.txt
# 查看CPU信息
hardinfo -r text -m computer | grep -A 20 "Processor"
# 查看内存信息
hardinfo -r text -m memory > memory_info.txt
# 查看hardinfo支持的所有信息模块
hardinfo --list-modules
# 常见模块包括:
# computer - 计算机和处理器信息
# memory - 内存信息
# storage - 存储设备信息
# display - 显示和显卡信息
# network - 网络设备信息
# pci - PCI设备信息
# usb - USB设备信息
# benchmarks - 基准测试结果
# 只生成CPU和内存信息的报告
hardinfo -r html -m computer,memory > cpu_memory.html
# 只生成存储设备报告
hardinfo -r text -m storage > storage_devices.txt
# 生成网络设备报告
hardinfo -r html -m network > network_info.html
# 运行CPU基准测试
hardinfo -b -m cpu
# 运行所有基准测试并生成报告
hardinfo -r html -a > benchmark_report.html
# 在图形界面中查看基准测试结果
hardinfo -t benchmarks
#!/bin/bash
# 自动化硬件信息收集脚本
REPORT_DIR="/var/log/hardware_reports"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
HTML_REPORT="$REPORT_DIR/hardware_report_$TIMESTAMP.html"
TEXT_REPORT="$REPORT_DIR/hardware_info_$TIMESTAMP.txt"
# 创建报告目录
mkdir -p $REPORT_DIR
echo "开始收集硬件信息..." | tee $TEXT_REPORT
echo "收集时间: $(date)" | tee -a $TEXT_REPORT
echo "主机名: $(hostname)" | tee -a $TEXT_REPORT
echo "" | tee -a $TEXT_REPORT
# 使用hardinfo收集信息
echo "=== hardinfo硬件报告 ===" | tee -a $TEXT_REPORT
hardinfo --version | tee -a $TEXT_REPORT
echo "" | tee -a $TEXT_REPORT
# 生成HTML报告
echo "生成HTML报告: $HTML_REPORT"
hardinfo -r html > $HTML_REPORT
# 提取关键信息到文本报告
echo "1. 处理器信息:" | tee -a $TEXT_REPORT
hardinfo -r text -m computer | grep -A 5 "Processor" | tee -a $TEXT_REPORT
echo "" | tee -a $TEXT_REPORT
echo "2. 内存信息:" | tee -a $TEXT_REPORT
hardinfo -r text -m memory | grep -A 5 "Memory" | tee -a $TEXT_REPORT
echo "" | tee -a $TEXT_REPORT
echo "3. 存储设备信息:" | tee -a $TEXT_REPORT
hardinfo -r text -m storage | grep -A 10 "Storage" | tee -a $TEXT_REPORT
echo "" | tee -a $TEXT_REPORT
echo "4. 操作系统信息:" | tee -a $TEXT_REPORT
hardinfo -r text -m computer | grep -A 3 "Operating System" | tee -a $TEXT_REPORT
echo "" | tee -a $TEXT_REPORT
echo "报告生成完成!" | tee -a $TEXT_REPORT
echo "HTML报告: $HTML_REPORT" | tee -a $TEXT_REPORT
echo "文本摘要: $TEXT_REPORT" | tee -a $TEXT_REPORT
| 模块名称 | 包含信息 | 命令行示例 |
|---|---|---|
| computer | 计算机名称、操作系统、内核版本、CPU信息、主板信息 | hardinfo -r text -m computer |
| memory | 物理内存、交换空间、内存插槽、内存速度 | hardinfo -r text -m memory |
| storage | 硬盘、SSD、分区、文件系统、RAID | hardinfo -r text -m storage |
| display | 显卡、显示器、分辨率、OpenGL信息 | hardinfo -r text -m display |
| network | 网卡、IP地址、网络连接、蓝牙 | hardinfo -r text -m network |
| pci | 所有PCI设备详细信息 | hardinfo -r text -m pci |
| usb | 所有USB设备详细信息 | hardinfo -r text -m usb |
| benchmarks | CPU、内存、磁盘基准测试结果 | hardinfo -r text -m benchmarks |
| bios | BIOS/UEFI信息、启动设置 | hardinfo -r text -m bios |
| devices | 所有设备摘要信息 | hardinfo -r text -m devices |
| 测试项目 | 说明 | 测试内容 |
|---|---|---|
| CPU Blowfish | CPU加密性能测试 | 测试CPU进行Blowfish加密的速度 |
| CPU CryptoHash | CPU哈希计算性能 | 测试多种哈希算法(MD5、SHA1、SHA256等)的计算速度 |
| CPU Fibonacci | CPU整数计算性能 | 测试计算斐波那契数列的速度 |
| CPU N-Queens | CPU逻辑运算性能 | 测试解决N皇后问题的速度 |
| FPU FFT | 浮点运算性能 | 测试快速傅里叶变换的计算速度 |
| FPU Raytracing | 浮点运算性能 | 测试光线追踪的计算速度 |
解决方案:使用命令行生成报告或使用其他命令行工具
# 1. 使用hardinfo命令行生成报告
hardinfo -r text > system_info.txt
# 2. 使用其他命令行工具组合
# CPU信息
cat /proc/cpuinfo
lscpu
# 内存信息
free -h
cat /proc/meminfo
# 磁盘信息
lsblk
df -h
fdisk -l
# PCI设备
lspci
lspci -v
# USB设备
lsusb
lsusb -v
# 完整硬件信息(需要root)
sudo lshw
sudo lshw -html > hardware.html
sudo dmidecode
可能原因和解决方案:
# 1. 权限问题(某些信息需要root权限)
sudo hardinfo
# 2. 使用root权限生成报告
sudo hardinfo -r html > full_report.html
# 3. 更新hardinfo到最新版本
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install --only-upgrade hardinfo
# 4. 检查依赖库
ldd $(which hardinfo)
# 5. 使用详细模式查看错误
hardinfo --debug 2>&1 | grep -i error
# 6. 结合其他工具验证
# 验证CPU信息
lscpu
cat /proc/cpuinfo | grep "model name"
# 验证内存信息
sudo dmidecode -t memory
# 验证磁盘信息
sudo smartctl -a /dev/sda
方法:生成完整报告并分享
#!/bin/bash
# 生成完整技术支持报告
REPORT_FILE="system_support_report_$(date +%Y%m%d).tar.gz"
REPORT_DIR="support_report_$(date +%Y%m%d)"
# 创建临时目录
mkdir -p $REPORT_DIR
cd $REPORT_DIR
# 1. 生成hardinfo完整报告
echo "生成hardinfo报告..."
hardinfo -r html > hardware_info.html
hardinfo -r text > hardware_info.txt
# 2. 收集系统日志
echo "收集系统日志..."
dmesg > dmesg.log 2>&1
journalctl --since="1 week ago" > systemd_journal.log 2>&1
# 3. 收集关键配置文件
echo "收集配置文件..."
cp /etc/fstab ./ 2>/dev/null
cp /etc/hosts ./ 2>/dev/null
cp /etc/resolv.conf ./ 2>/dev/null
# 4. 收集硬件信息(使用其他工具)
echo "收集额外硬件信息..."
lspci -vv > lspci_detailed.log 2>&1
lsusb -v > lsusb_detailed.log 2>&1 2>/dev/null
lscpu > lscpu_info.log 2>&1
free -h > memory_info.log 2>&1
df -h > disk_usage.log 2>&1
# 5. 创建说明文件
cat > README.txt << EOF
技术支持报告
生成时间: $(date)
主机名: $(hostname)
操作系统: $(lsb_release -d 2>/dev/null || cat /etc/os-release | grep PRETTY_NAME)
内核版本: $(uname -r)
包含的文件:
1. hardware_info.html - hardinfo完整HTML报告
2. hardware_info.txt - hardinfo文本报告
3. dmesg.log - 内核日志
4. systemd_journal.log - 系统日志(最近一周)
5. 各种硬件信息日志和配置文件
请将所有文件提供给技术支持人员。
EOF
# 打包所有文件
cd ..
tar -czf $REPORT_FILE $REPORT_DIR
rm -rf $REPORT_DIR
echo "技术支持报告已生成: $REPORT_FILE"
echo "文件大小: $(du -h $REPORT_FILE | cut -f1)"
| 工具 | 类型 | 主要功能 | 优点 | 缺点 |
|---|---|---|---|---|
| hardinfo | GUI/CLI | 完整的硬件信息查看和基准测试 | 界面友好,信息全面,支持导出 | 需要GUI,部分信息可能需要root |
lshw |
CLI | 详细硬件配置查看 | 信息非常详细,支持多种输出格式 | 需要root权限,输出可能冗长 |
dmidecode |
CLI | 读取DMI(SMBIOS)信息 | 获取BIOS/主板等底层信息 | 需要root,信息依赖主板制造商 |
lscpu |
CLI | CPU信息 | 简单快速,不需要root | 只显示CPU信息 |
lsblk |
CLI | 块设备信息 | 清晰的树状显示,不需要root | 只显示块设备信息 |
inxi |
CLI | 完整的系统信息工具 | 信息全面,输出格式友好 | 需要单独安装 |
neofetch |
CLI | 系统信息显示(美化) | 输出美观,适合截图分享 | 信息相对简略 |
#!/bin/bash
# 硬件规格快速检查脚本
echo "=== 硬件规格快速检查 ==="
echo "检查时间: $(date)"
echo "主机名: $(hostname)"
echo ""
# 使用hardinfo获取关键信息(如果可用)
if command -v hardinfo &> /dev/null; then
echo "1. 处理器信息:"
hardinfo -r text -m computer | grep -E "(Processor|CPU|Cores|MHz)" | head -10
echo ""
echo "2. 内存信息:"
hardinfo -r text -m memory | grep -E "(Memory|RAM|Swap)" | head -10
echo ""
echo "3. 存储信息:"
hardinfo -r text -m storage | grep -E "(Storage|Disk|Size)" | head -10
else
echo "hardinfo未安装,使用替代命令..."
echo ""
echo "1. 处理器信息:"
lscpu | grep -E "(Model name|CPU\(s\)|MHz|Thread)" | head -10
echo ""
echo "2. 内存信息:"
free -h
echo ""
echo "3. 存储信息:"
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT | grep -v loop
fi
echo ""
echo "4. 操作系统信息:"
if [ -f /etc/os-release ]; then
grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"'
else
cat /etc/issue | head -1
fi
echo "内核版本: $(uname -r)"
echo "系统架构: $(uname -m)"
echo ""
echo "5. 显卡信息:"
if command -v lspci &> /dev/null; then
lspci | grep -i vga
else
echo "lspci不可用"
fi
echo ""
echo "检查完成!"
#!/bin/bash
# 自动化硬件报告生成器
OUTPUT_DIR="$HOME/HardwareReports"
HTML_REPORT="$OUTPUT_DIR/硬件报告_$(date +%Y%m%d_%H%M%S).html"
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
# 创建输出目录
mkdir -p "$OUTPUT_DIR"
# 生成HTML报告头
cat > "$HTML_REPORT" << EOF
硬件系统报告
硬件系统报告
生成时间: $TIMESTAMP
主机名: $(hostname)
操作系统: $(lsb_release -d 2>/dev/null | cut -f2- || cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | tr -d '"')
内核版本: $(uname -r)
EOF
# 收集硬件信息并追加到HTML报告
echo "1. 处理器信息
" >> "$HTML_REPORT"
echo "" >> "$HTML_REPORT"
lscpu >> "$HTML_REPORT" 2>/dev/null || echo "无法获取CPU信息" >> "$HTML_REPORT"
echo "
" >> "$HTML_REPORT"
echo "2. 内存信息
" >> "$HTML_REPORT"
echo "" >> "$HTML_REPORT"
free -h >> "$HTML_REPORT" 2>/dev/null || echo "无法获取内存信息" >> "$HTML_REPORT"
echo "
" >> "$HTML_REPORT"
echo "3. 存储设备信息
" >> "$HTML_REPORT"
echo "" >> "$HTML_REPORT"
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT >> "$HTML_REPORT" 2>/dev/null || echo "无法获取存储设备信息" >> "$HTML_REPORT"
echo "
" >> "$HTML_REPORT"
echo "4. 磁盘使用情况
" >> "$HTML_REPORT"
echo "" >> "$HTML_REPORT"
df -h >> "$HTML_REPORT" 2>/dev/null || echo "无法获取磁盘使用情况" >> "$HTML_REPORT"
echo "
" >> "$HTML_REPORT"
# 如果有hardinfo,添加更详细的信息
if command -v hardinfo &> /dev/null; then
echo "5. Hardinfo详细报告(摘要)
" >> "$HTML_REPORT"
echo "" >> "$HTML_REPORT"
hardinfo -r text -m computer,memory,storage 2>/dev/null | head -100 >> "$HTML_REPORT" || echo "无法获取hardinfo信息" >> "$HTML_REPORT"
echo "" >> "$HTML_REPORT"
fi
# 结束HTML报告
cat >> "$HTML_REPORT" << EOF
报告生成完成。此报告包含基本的硬件信息,如需更详细的信息请使用hardinfo工具。
EOF
echo "硬件报告已生成: $HTML_REPORT"
echo "请在浏览器中打开查看"
# 尝试在默认浏览器中打开(如果支持)
if command -v xdg-open &> /dev/null; then
xdg-open "$HTML_REPORT" &
elif command -v gnome-open &> /dev/null; then
gnome-open "$HTML_REPORT" &
fi
lshw列出硬件配置详细信息
sudo lshw
sudo lshw -html > hw.html
dmidecode读取DMI/SMBIOS信息
sudo dmidecode
sudo dmidecode -t memory
inxi完整的系统信息工具
inxi -F
inxi -Fxxxza
neofetch系统信息显示工具(美化)
neofetch
neofetch --stdout