Arch Linux下外置HDD安全关机配置方案咨询
Arch Linux下外置HDD安全关机配置方案咨询
兄弟我太懂你这种外置硬盘关机咔哒的糟心了——每次听见那声都怕给盘整出坏道是吧?我来给你捋几个Arch上实测有效的方案,先说说为啥你之前用hdparm的APM没效果:很多外置USB硬盘是通过桥接芯片转成USB的,不支持ATA协议的APM命令,得换用SCSI相关工具或者从系统关机流程入手。
下面是具体方案,按优先级排序:
方案一:配置systemd关机服务,强制卸载并停转硬盘
这是最靠谱的方法,直接在系统关机前手动触发硬盘安全卸载和停转:
- 先确认你的外置硬盘设备名(比如
/dev/sdb)和挂载点(比如/mnt/exthdd),用lsblk或者fdisk -l就能查到,千万别搞错设备名,不然会搞坏系统盘! - 创建一个systemd服务文件:
sudo nano /etc/systemd/system/safe-hdd-shutdown.service - 粘贴以下内容,把路径换成你自己的:
[Unit] Description=Safely spin down external HDD on shutdown After=multi-user.target Before=shutdown.target reboot.target halt.target RequiresMountsFor=/mnt/exthdd [Service] Type=oneshot ExecStart=/bin/true ExecStop=/usr/bin/umount -f /mnt/exthdd # 如果hdparm没用,就把下面这行换成sdparm命令:/usr/bin/sdparm -C stop /dev/sdb ExecStop=/usr/bin/hdparm -Y /dev/sdb [Install] WantedBy=multi-user.target
- 保存退出后,启用并加载服务:
sudo systemctl daemon-reload sudo systemctl enable safe-hdd-shutdown.service
下次关机前,系统会先卸载硬盘,再发送停转命令,应该就不会有咔哒声了。
方案二:用sdparm替代hdparm设置硬盘待机
既然hdparm的APM对你的盘没用,试试SCSI协议的工具sdparm:
- 先安装sdparm:
sudo pacman -S sdparm - 测试控制有效性:
sudo sdparm -C start /dev/sdb(启动硬盘)和sudo sdparm -C stop /dev/sdb(停转硬盘),如果能正常执行,说明你的盘支持SCSI命令。 - 设置自动待机超时(比如闲置10分钟后停转):
sudo sdparm -s STANDBY=600 /dev/sdb,这个设置是临时的,要永久生效可以把命令加到crontab或者上面的systemd服务里。
方案三:启用USB电源自动挂起
如果你的硬盘平时闲置时间多,可以让USB自动挂起硬盘:
- 创建modprobe配置文件:
sudo nano /etc/modprobe.d/usb-power-management.conf - 加入内容:
options usbcore autosuspend=60(60代表闲置60秒后挂起,可根据需求调整) - 重启系统生效,这样硬盘闲置后会自动进入低功耗状态,关机时已经休眠,就不会有咔哒声了。
备注:内容来源于stack exchange,提问作者LankryF




