确保干净的设备移除

确保干净的设备移除

我正在寻找类似于在 Windows 磁盘管理中将驱动器设置为脱机的功能:

Windows 磁盘管理

问题是我不知道 Windows 在那里做什么。但似乎会影响整个磁盘。

答案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-namemight be删除存储设备sda

参考:红帽文档

确保干净的设备移除

  1. 关闭设备的所有用户,并根据需要备份设备数据。
  2. 使用 umount 卸载挂载该设备的所有文件系统。
  3. 从任何使用该设备的 md 和 LVM 卷中删除该设备。如果设备是 LVM 卷组的成员,则可能需要使用 pvmove 命令将数据移出设备,然后使用 vgreduce 命令删除物理卷,并(可选)pvremove 从设备中删除 LVM 元数据磁盘。
  4. 如果设备使用多路径,请运行 multipath -l 并记下设备的所有路径。然后,使用 multipath -f device 删除多路径设备。
  5. 运行 blockdev –flushbufs device 将任何未完成的 I/O 刷新到设备的所有路径。这对于原始设备尤其重要,因为原始设备中没有 umount 或 vgreduce 操作来导致 I/O 刷新。
  6. 删除系统上的应用程序、脚本或实用程序中对设备基于路径的名称的任何引用,例如 /dev/sd、/dev/disk/by-path 或主要:次要编号。这对于确保将来添加的不同设备不会被误认为是当前设备非常重要。
  7. 最后,从 SCSI 子系统中删除到设备的每个路径。为此,请使用命令 echo 1 > /sys/block/device-name/device/delete,其中 device-name 可能是 sde。
  8. 此操作的另一个变体是 echo 1 > /sys/class/scsi_device/h:c:t:l/device/delete,其中 h 是 HBA 编号,c 是 HBA 上的通道,t 是 SCSI 目标 ID, l 是 LUN。

相关内容