[Linux] Linux 硬件信息查询手册

Grok生成(2025年10月23日23:59:36)

Linux 硬件信息查询手册


目录

  1. 工具安装
  2. 核心查询工具
  3. 存储设备管理
  4. 网络设备诊断
  5. 硬件故障排查
  6. 实际使用案例
  7. 快速参考

1. 工具安装

1.1 安装必要工具包

# Ubuntu/Debian
sudo apt update
sudo apt install lshw pciutils usbutils smartmontools

# CentOS/RHEL
sudo yum install lshw pciutils usbutils smartmontools

2. 核心查询工具

2.1 lshw - 全面硬件信息

用途:列出系统所有硬件设备的详细信息,包括主板、CPU、内存、磁盘、网络卡等。

基本用法

# 查看完整硬件树
sudo lshw

# 简洁列表格式
sudo lshw -short

分类查询

# 存储设备(磁盘+控制器)
sudo lshw -class disk -class storage

# 网络设备
sudo lshw -class network

# USB设备
sudo lshw -class usb

2.2 lspci - PCI设备查询

用途:列出所有PCI/PCIe设备(显卡、网卡、RAID控制器等)。

用法

# 列出所有PCI设备
lspci

# 筛选网卡
lspci | grep -i ethernet

# 筛选RAID控制器
lspci | grep -i raid

2.3 lsusb - USB设备查询

用途:列出所有USB设备及其厂商ID。

用法

# 列出所有USB设备
lsusb

# 筛选特定设备
lsusb | grep -i storage

2.4 lscpu - CPU信息

用途:显示CPU架构、核心数、频率等详细信息。

用法

lscpu

2.5 dmidecode - 主板/BIOS信息

用途:查询主板型号、BIOS版本、序列号等(需要root权限)。

用法

# 主板信息
sudo dmidecode -t baseboard

# BIOS信息
sudo dmidecode -t bios

# 内存信息
sudo dmidecode -t memory

3. 存储设备管理

3.1 lsblk - 块设备查看

用途:显示所有块设备的分区结构和挂载点。

用法

# 显示设备树
lsblk

# 包含文件系统类型
lsblk -f

3.2 fdisk - 分区表查询

用途:查看磁盘分区表和分区类型。

用法

# 列出所有磁盘分区
sudo fdisk -l

3.3 smartctl - 磁盘健康状态

用途:监控SSD/HDD的健康状态、温度、错误率。

用法

# 检查所有磁盘健康状态
sudo smartctl -a /dev/sda

# 快速健康测试
sudo smartctl -t short /dev/sda

# 查看测试结果(30秒后)
sudo smartctl -l selftest /dev/sda

4. 网络设备诊断

4.1 网卡详细信息

# 查看网卡硬件信息
sudo lshw -class network

# 查看网卡驱动和状态
ethtool eth0

4.2 无线网络

# 查看WiFi网卡
iwconfig

# 扫描WiFi热点
sudo iwlist wlan0 scan

5. 硬件故障排查

5.1 系统日志分析

# 最近硬件错误
dmesg | grep -i error | tail -20

# 磁盘相关错误
dmesg | grep -i sd

# 网卡错误
dmesg | grep -i eth

5.2 RAID状态检查

# 软件RAID
cat /proc/mdstat

# 硬件RAID(MegaRAID)
sudo storcli /c0 show

5.3 内存检查

# 查看内存使用
free -h

# 内存错误日志
dmesg | grep -i memory

6. 实际使用案例

案例1:服务器硬件盘点

目标:生成完整的硬件报告用于资产管理。

#!/bin/bash
# hardware_inventory.sh
echo "=== 服务器硬件盘点报告 ===" > hardware_report.txt
echo "生成时间: $(date)" >> hardware_report.txt

# CPU信息
echo "CPU:" >> hardware_report.txt
lscpu | head -15 >> hardware_report.txt

# 内存信息
echo -e "\n内存:" >> hardware_report.txt
sudo dmidecode -t memory | grep -E "Size|Locator" >> hardware_report.txt

# 存储设备
echo -e "\n存储:" >> hardware_report.txt
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT >> hardware_report.txt

# 网卡
echo -e "\n网卡:" >> hardware_report.txt
sudo lshw -class network -short >> hardware_report.txt

echo "报告已生成: hardware_report.txt"

执行chmod +x hardware_inventory.sh && ./hardware_inventory.sh

案例2:磁盘健康检查

目标:自动检查所有磁盘的健康状态。

#!/bin/bash
# disk_health_check.sh
echo "磁盘健康检查报告"
echo "=================="

for disk in /dev/sd*; do
    if [ -b "$disk" ]; then
        echo "检查 $disk:"
        sudo smartctl -H "$disk" | grep "SMART overall-health"
    fi
done

执行./disk_health_check.sh

案例3:网卡故障诊断

目标:诊断网卡连接问题。

#!/bin/bash
# network_diag.sh
INTERFACE=${1:-eth0}

echo "网卡 $INTERFACE 诊断报告"
echo "======================"

# 硬件信息
echo "1. 硬件状态:"
sudo lshw -class network | grep "$INTERFACE"

# 驱动信息
echo -e "\n2. 驱动信息:"
ethtool "$INTERFACE" | grep -E "Speed|Duplex|Link"

# 错误统计
echo -e "\n3. 错误统计:"
cat /proc/net/dev | grep "$INTERFACE"

# 系统日志
echo -e "\n4. 最近日志:"
dmesg | grep "$INTERFACE" | tail -3

执行./network_diag.sh eth0

案例4:USB设备识别

目标:识别新插入的USB存储设备。

#!/bin/bash
# usb_detect.sh
echo "当前USB设备:"
lsusb

echo -e "\n新插入的USB存储:"
lsblk | grep -E "sdb|sr0"

7. 快速参考

# ========== 安装工具 ==========
sudo apt install lshw pciutils usbutils smartmontools

# ========== 核心查询 ==========
sudo lshw -short              # 硬件列表
lspci                        # PCI设备
lsusb                        # USB设备
lscpu                        # CPU
lsblk                        # 磁盘分区

# ========== 存储诊断 ==========
sudo fdisk -l                # 分区表
sudo smartctl -a /dev/sda    # 磁盘健康

# ========== 网络诊断 ==========
sudo lshw -class network     # 网卡硬件
ethtool eth0                 # 网卡状态

# ========== 故障排查 ==========
dmesg | grep -i error        # 硬件错误
cat /proc/mdstat             # RAID状态

# ========== 报告生成 ==========
sudo lshw -html > report.html
posted on 2025-02-12 16:31  风惊庭前叶  阅读(94)  评论(0)    收藏  举报