在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