linux无需重启即可识别新硬盘,关键在于手动触发scsi总线扫描:先确认硬件层已添加磁盘,再通过ls /sys/class/scsi_host/找出host0等控制器,执行echo "- - -" > /sys/class/scsi_host/host0/scan扫描,最后用lsblk等命令验证并分区格式化使用。

不用重启,Linux 能立刻识别新硬盘,关键在于触发 SCSI 总线重新扫描。虚拟机热添加或物理机在线插入 SCSI/SAS 类型磁盘后,系统不会自动发现,必须手动通知内核去“找一找”。
确认新硬盘已挂载到虚拟/物理层
先确保操作已在底层完成:VMware 或 KVM 中已完成硬盘添加并保存配置;物理服务器上已将磁盘接入 HBA 卡并分配 LUN。此时系统尚未感知,但设备已存在于硬件总线上。
查出可用的 SCSI 主机控制器
运行以下命令列出当前所有 SCSI 控制器:
ls /sys/class/scsi_host/
输出类似 host0 host1 host2。多数虚拟机只有 host0,多路径或复杂存储环境可能有多个。这个目录名就是后续扫描的目标。
执行扫描命令让系统发现新盘
对每个 host 执行标准扫描:
- echo "- - -" > /sys/class/scsi_host/host0/scan
- 如存在 host1、host2,同样执行:echo "- - -" > /sys/class/scsi_host/host1/scan
注意:三个短横之间必须有空格,不能写成 --- 或 - - -(无空格)。该命令含义是扫描所有通道、所有目标、所有 LUN。
验证与后续操作
扫描完成后立即检查:
-
lsblk —— 查看是否出现新的
/dev/sdb、/dev/sdc等设备 - fdisk -l | grep "^Disk" —— 快速过滤出磁盘列表
- dmesg | tail -20 —— 观察内核日志中是否有 “Attached SCSI disk” 类似提示
确认识别成功后,即可按需分区(fdisk 或 parted)、格式化(mkfs.xfs)、挂载(mount)使用。











