最后更新于

CentOS不重启识别新加的磁盘


在CentOS系统中,当新增磁盘后,通常需要重启服务器才能识别新硬盘。但在生产环境中,重启服务器往往不现实。本文将介绍如何在不重启的情况下让系统识别新增磁盘。

🔍 SCSI磁盘扫描命令

通过SCSI总线扫描命令,可以让系统重新扫描并识别新增的磁盘:

echo "- - -" > /sys/class/scsi_host/host0/scan

💡 命令说明:

  • 第一个 -:扫描所有通道
  • 第二个 -:扫描所有SCSI ID
  • 第三个 -:扫描所有LUN

📋 实际操作示例

以下是完整的操作过程:

执行扫描命令

[root@file-15 ~]# echo "- - -" > /sys/class/scsi_host/host0/scan

验证磁盘识别结果

[root@file-15 ~]# fdisk -l
Disk /dev/sda: 1017.6 GB, 1017604210688 bytes
255 heads, 63 sectors/track, 123716 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        6527    52323705   8e  Linux LVM
/dev/sda3            6528      123716   941320642+  8e  Linux LVM

Disk /dev/sdb: 1099.5 GB, 1099511626752 bytes
255 heads, 63 sectors/track, 133674 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 536.8 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table

结果说明: 可以看到系统成功识别了新增的磁盘 /dev/sdb/dev/sdc,无需重启服务器。

🔧 其他扫描方式

如果 host0 不起作用,可以尝试扫描其他主机:

echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan

或者扫描所有SCSI主机:

for host in /sys/class/scsi_host/host*; do
    echo "- - -" > $host/scan
done