我有一个驱动器,无论我做什么,它似乎都处于挂载状态并且很忙。但由于我不想重新启动整个系统,所以我运行 echo 1 > /sys/block/sd*/device/delete
强制内核“拔出”或取消注册该驱动器。
然后我拔下并重新插入磁盘的 SATA 电源线,它再次出现在系统中并按预期工作。
但是如果我无法物理访问它,我该怎么办?除了物理拔掉 SATA 电缆以便系统在运行后再次看到它之外,还有什么其他方法吗echo 1 > /sys/block/sd*/device/delete
?
答案1
您可以通过运行以下命令重新扫描 SCSI 主机总线
echo "- - -" > /sys/class/scsi_host/host0/scan
笔记:上述命令的一部分host0
是主机 ID。您的机器上可能有多个/其他主机 ID。这意味着,如果上述命令没有让您找回驱动器,您可能需要更改主机 ID 以匹配您机器上的主机 ID。
你可以通过运行以下命令来查找你的机器上有哪些可用的主机 ID:
ls /sys/class/scsi_host
在我的计算机上返回
host0 host1 host2 host3 host4 host5
因此,查找您的主机 ID 并在每个 ID 上运行第一个命令,以确保驱动器被检测到。
编辑:
要对每个主机 ID 重复此命令,您可以将其放入这样的循环中:
for host in /sys/class/scsi_host/host*/scan; do echo "- - -" > $host; done