答案1
因为我花了一些时间才弄清楚如何做到这一点,所以我将其作为问答发布并回答我自己的问题。注意:我将接受任何(有效)答案,并采用替代方法,允许以如下所示的方式标记选择的驱动器但在启动时。
在回忆了一些更高级(和危险的事情)hdparm
能够做的事情之后,我决定查找一下,这确实hdparm
是解决方案。
以下hdparm
选项是相关的:
-y
强制IDE驱动器立即进入低功耗状态支持模式,通常会导致其转速下降。可以使用该-C
选项检查当前电源模式状态。
-Y
强制IDE驱动器立即进入最低功耗睡觉模式,导致其完全关闭。在再次访问驱动器之前,需要进行硬或软重置(如果/需要时,Linux IDE 驱动程序将自动处理发出重置)。可以使用该-C
选项检查当前电源模式状态。
在 Windows 中标记为脱机的磁盘很可能处于类似于所谓的脱机hdparm
模式睡觉上面的模式。唉,作为斯蒂芬指出,即使进入睡眠状态,Linux 仍然会愉快地旋转驱动器。因此,操作系统不会像 Windows 中的脱机标记那样忽略驱动器。
(如果您确定它对应于哪个设置,请创建答案或编辑我的答案。)
答案2
echo 1 > /sys/block/device-name/device/delete
您可以使用where device-name
might be删除存储设备sda
。
参考:红帽文档
确保干净的设备移除
- 关闭设备的所有用户,并根据需要备份设备数据。
- 使用 umount 卸载挂载该设备的所有文件系统。
- 从任何使用该设备的 md 和 LVM 卷中删除该设备。如果设备是 LVM 卷组的成员,则可能需要使用 pvmove 命令将数据移出设备,然后使用 vgreduce 命令删除物理卷,并(可选)pvremove 从设备中删除 LVM 元数据磁盘。
- 如果设备使用多路径,请运行 multipath -l 并记下设备的所有路径。然后,使用 multipath -f device 删除多路径设备。
- 运行 blockdev –flushbufs device 将任何未完成的 I/O 刷新到设备的所有路径。这对于原始设备尤其重要,因为原始设备中没有 umount 或 vgreduce 操作来导致 I/O 刷新。
- 删除系统上的应用程序、脚本或实用程序中对设备基于路径的名称的任何引用,例如 /dev/sd、/dev/disk/by-path 或主要:次要编号。这对于确保将来添加的不同设备不会被误认为是当前设备非常重要。
- 最后,从 SCSI 子系统中删除到设备的每个路径。为此,请使用命令 echo 1 > /sys/block/device-name/device/delete,其中 device-name 可能是 sde。
- 此操作的另一个变体是 echo 1 > /sys/class/scsi_device/h:c:t:l/device/delete,其中 h 是 HBA 编号,c 是 HBA 上的通道,t 是 SCSI 目标 ID, l 是 LUN。