You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Arch Linux下外置HDD安全关机配置方案咨询

Arch Linux下外置HDD安全关机配置方案咨询

兄弟我太懂你这种外置硬盘关机咔哒的糟心了——每次听见那声都怕给盘整出坏道是吧?我来给你捋几个Arch上实测有效的方案,先说说为啥你之前用hdparm的APM没效果:很多外置USB硬盘是通过桥接芯片转成USB的,不支持ATA协议的APM命令,得换用SCSI相关工具或者从系统关机流程入手。

下面是具体方案,按优先级排序:

方案一:配置systemd关机服务,强制卸载并停转硬盘

这是最靠谱的方法,直接在系统关机前手动触发硬盘安全卸载和停转:

  1. 先确认你的外置硬盘设备名(比如/dev/sdb)和挂载点(比如/mnt/exthdd),用lsblk或者fdisk -l就能查到,千万别搞错设备名,不然会搞坏系统盘
  2. 创建一个systemd服务文件:sudo nano /etc/systemd/system/safe-hdd-shutdown.service
  3. 粘贴以下内容,把路径换成你自己的:
[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
  1. 保存退出后,启用并加载服务:
sudo systemctl daemon-reload
sudo systemctl enable safe-hdd-shutdown.service

下次关机前,系统会先卸载硬盘,再发送停转命令,应该就不会有咔哒声了。

方案二:用sdparm替代hdparm设置硬盘待机

既然hdparm的APM对你的盘没用,试试SCSI协议的工具sdparm:

  1. 先安装sdparm:sudo pacman -S sdparm
  2. 测试控制有效性:sudo sdparm -C start /dev/sdb(启动硬盘)和sudo sdparm -C stop /dev/sdb(停转硬盘),如果能正常执行,说明你的盘支持SCSI命令。
  3. 设置自动待机超时(比如闲置10分钟后停转):sudo sdparm -s STANDBY=600 /dev/sdb,这个设置是临时的,要永久生效可以把命令加到crontab或者上面的systemd服务里。

方案三:启用USB电源自动挂起

如果你的硬盘平时闲置时间多,可以让USB自动挂起硬盘:

  1. 创建modprobe配置文件:sudo nano /etc/modprobe.d/usb-power-management.conf
  2. 加入内容:options usbcore autosuspend=60(60代表闲置60秒后挂起,可根据需求调整)
  3. 重启系统生效,这样硬盘闲置后会自动进入低功耗状态,关机时已经休眠,就不会有咔哒声了。

备注:内容来源于stack exchange,提问作者LankryF

火山引擎 最新活动