![为什么 hdparm -y 不使 HDD 旋转,而管理的文件却旋转? (使用弹出选项)](https://linux22.com/image/143104/%E4%B8%BA%E4%BB%80%E4%B9%88%20hdparm%20-y%20%E4%B8%8D%E4%BD%BF%20HDD%20%E6%97%8B%E8%BD%AC%EF%BC%8C%E8%80%8C%E7%AE%A1%E7%90%86%E7%9A%84%E6%96%87%E4%BB%B6%E5%8D%B4%E6%97%8B%E8%BD%AC%EF%BC%9F%20%EF%BC%88%E4%BD%BF%E7%94%A8%E5%BC%B9%E5%87%BA%E9%80%89%E9%A1%B9%EF%BC%89.png)
使用 SATA 转 USB 适配器读取已使用 10 年以上的 HDD。
使用时sudo hdparm -y /dev/sdj
,硬盘不会关闭。
但当使用喷射文件管理器中的选项,HDD 停止旋转。
附带事实:Microsoft Windows 中的弹出选项也会关闭 HDD。
为什么 hdparm 不会使 HDD 旋转,而文件管理器却会旋转?
答案1
该hdparm
命令只做一件事,即发出特定的 ATA 命令,告诉驱动器转换到待机状态。这并不能阻止任何东西立即使用新命令唤醒驱动器,但是,根据驱动器本身,它甚至可能不会尝试停止运行(聪明的机器会等待一小段时间接收传入命令,只有在没有命令时才停止运行)。请注意,hdparm
手册页并不保证这会降低驱动器的转速,它只是说“通常”会这样做。
相比之下,文件管理器中的“弹出”选项通常具有更多功能。它至少会执行以下操作(尽管不一定按照这个确切的顺序):
- 它确保驱动器上没有打开的文件。
- 它强制刷新从驱动器安装的所有文件系统的所有文件系统缓冲区。
- 它从驱动器上卸载所有已安装的文件系统。
- 它会刷新设备的任何块层缓存,并可能拆除在设备顶部运行的任何中间块层(例如,如果正在使用 FDE,它将被彻底关闭)。
- 如果设备启用了写入缓存,它将刷新设备的写入缓存。
- 如果设备可以通过编程方式进入低功耗或最小功耗状态,它就会这样做。
- 如果设备具有可通过软件弹出的物理可移动介质(例如 CD 驱动器),则会发出相应的弹出命令。否则,它可能会将设备的块级驱动程序与设备本身分离,从而有效地关闭与设备的通信。
前五个步骤在功能上确保用户空间中的任何内容都不会向设备发出任何命令,将其从第六步中触发的低功耗状态中唤醒,最后一步确保设备从系统中正确删除,并被视为下次连接时将显示新连接的设备。