Ubuntu 17.10下hdparm.conf开机设置不生效,HDD无法自动停转求助
解决Ubuntu 17.10开机自动让备份HDD停转的问题
我明白你想让仅用于备份和长期存储的HDD在开机后自动进入停转状态,但尝试hdparm.conf配置始终没效果的困扰,下面给你梳理两种可靠的解决方案:
一、修正hdparm.conf的正确配置格式
你之前的配置格式存在错误,hdparm.conf针对设备的正确配置语法应该是这样的:
/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H { spindown_time = 1 }
spindown_time对应hdparm -S的参数值,1代表5秒后停转(你可以按需调整,比如240对应20分钟)- 先确认设备路径无误:执行
ls /dev/disk/by-id/核对你的HDD设备名 - 编辑完配置后,重启
hdparm服务让设置生效:
sudo systemctl restart hdparm.service
之后用命令验证效果:
sudo hdparm -C /dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H
如果输出显示standby或sleeping,说明配置生效;若仍为active/idle,可能是hdparm服务启动时机的问题,试试下面的systemd自定义服务方案。
二、用systemd自定义服务实现开机自动停转
如果hdparm.conf方式始终不生效,我们可以直接创建一个systemd服务,确保系统启动完成后执行停转命令:
- 创建服务配置文件:
sudo nano /etc/systemd/system/hdd-spindown.service
- 写入以下内容:
[Unit] Description=自动停转备份用HDD After=multi-user.target [Service] Type=oneshot ExecStart=/sbin/hdparm -S 1 /dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H [Install] WantedBy=multi-user.target
After=multi-user.target保证服务在系统进入多用户模式后执行,此时磁盘已完成挂载Type=oneshot表示这是一次性执行的任务
- 启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable hdd-spindown.service sudo systemctl start hdd-spindown.service
- 再次用
hdparm -C命令检查磁盘状态,确认是否进入停转状态。
额外注意点
- 部分USB外接HDD可能不支持
hdparm的停转功能,这类设备可以尝试添加-B 127参数设置APM级别 - 如果磁盘停转后又被唤醒,用
lsof /dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H查看是哪个进程在访问磁盘 - 调整
-S参数时注意对应时间:1-240代表5秒到20分钟(每步+5秒),241-251代表30分钟到5.5小时(每步+30分钟),252对应21分钟,255则禁用自动停转
内容的提问来源于stack exchange,提问作者Trish




