麒麟系统需用hd-idle实现USB移动硬盘可靠休眠:先确认设备名,禁用自动挂载和logind电源干预,再配置hd-idle服务并设TIMEOUT值,重启服务生效。

你想让外接移动硬盘在闲置一段时间后自动停转,避免持续通电导致发热、咔哒异响甚至USB接口供电不稳——但麒麟系统默认不提供图形化硬盘休眠设置,必须通过命令行精准控制底层电源策略。
确认硬盘设备名与当前休眠状态
先确定你要设置的移动硬盘设备节点,避免误操作到系统盘。打开终端,执行:lsblk -o NAME,MODEL,SIZE,MOUNTPOINT。找到对应型号和容量的设备,如 sdb 或 sdc;若显示挂载点(MOUNTPOINT)非空,说明已自动挂载,可继续下一步。
执行 sudo hdparm -I /dev/sdb | grep -i "advanced power"(将 sdb 替换为你的真实设备名),查看输出中是否含 APM level 字样。若无此行,说明该硬盘固件不支持 APM 电源管理,【hdparm 休眠将完全失效】,后续只能依赖 USB 控制器级超时或改用 hd-idle 工具。
用 hdparm 临时设置空闲休眠时间
这一步直接下发指令,无需重启,适合快速验证效果。注意:单位是“5秒倍数”,120 表示空闲 600 秒(10 分钟)后休眠。
执行:sudo hdparm -S 120 /dev/sdb。
立即测试是否生效:运行 sudo hdparm -y /dev/sdb,此时应听到磁头归位声,外壳温度迅速下降;再执行 sudo hdparm -C /dev/sdb,返回 drive state is: standby 即表示已进入低功耗待机态(非完全断电休眠,但已达成降温减震目标)。
⚠️ 若报错 HDIO_DRIVE_CMD(identify) failed: Invalid argument,说明该硬盘(尤其是带 USB 桥接芯片的移动硬盘盒)不接受 ATA 命令,需跳至下一节。
用 hd-idle 实现 USB 移动硬盘可靠休眠
对绝大多数 USB 接口移动硬盘(特别是 NTFS 格式、JMicron/ASMedia 芯片方案),hdparm 失效是常态。hd-idle 是专为 USB 存储设计的守护进程,绕过内核 ATA 层,直接向 USB 设备发送 STANDBY 指令。
方法一:安装并启动 hd-idle
执行:sudo apt update && sudo apt install hd-idle。
创建配置文件:sudo nano /etc/hd-idle.conf,写入以下内容(替换 sdb 为你的设备名):
START_HD_IDLE=trueDEVICES=/dev/sdbTIMEOUT=600
保存后启用服务:sudo systemctl enable hd-idle && sudo systemctl start hd-idle。
方法二:验证是否持续生效
执行:sudo systemctl status hd-idle,确认状态为 active (running);等待 10 分钟无读写后,运行 sudo hd-idle -t /dev/sdb,若返回 /dev/sdb: idle,说明已成功进入休眠态。
持久化配置并禁用干扰策略
1、确保 udisks2 不因挂载行为重置硬盘状态:执行 gsettings set org.gnome.desktop.media-handling automount false,关闭 GNOME 层自动挂载——否则每次插入 U 盘都会触发一次唤醒,抵消休眠效果。
2、防止 logind 干预 USB 设备电源事件:以 root 编辑 /etc/systemd/logind.conf,取消注释并修改两行:
HandleLidSwitch=ignoreHandlePowerKey=ignore
3、执行 sudo systemctl restart systemd-logind 生效。
4、最后一步:将 hd-idle 配置中的 TIMEOUT 值设为你需要的秒数(如 1800 表示 30 分钟),保存配置文件后,sudo systemctl restart hd-idle 即可完成全部设置。

















