我最近买了一个 LaCie 2TB Thunderbolt 总线供电 USB 外置坚固硬盘。我将其与 Raspberry Pi 2 一起使用,效果很好。它通过 rsync 用作远程备份。
但是,我习惯于不让 Rugged Drive 一直处于通电状态。我认为在长时间不需要使用 LaCie Drive 时,没有办法关闭它。我对自供电 LaCie Rugged Drive(物理尺寸较大)的经验是,如果整天都开着,即使驱动器没有任何活动,它们也会很烫。
Raspberry Pi 2 是否会在一段时间不活动后让外部 USB 硬盘进入睡眠状态?如果是,这个计时器可以控制吗?默认值是多少?
答案1
在 Raspberry 上(我假设你使用 Rasbian),必须安装 hdparm,
sudo apt-get install hdparm
然后,您必须重新启动 RPI,以便 hdparm 能够正确地与 进行交互udev
。
sudo hdparm -I /dev/sda
将打印出设备的所有已知特性。它很长,很笨重,但非常全面。
您正在搜索与电源管理相关的属性。非常有用的 Arch Linux Wiki说:
-B
设置高级电源管理功能。可能的值介于 1 到 255 之间,值越低表示电源管理越积极,值越高表示性能越好。值 1 到 127 允许降速,而值 128 到 254 不允许。值 255 完全禁用该功能。
-S
设置驱动器的待机(旋转停机)超时。超时指定在关闭电机以节省电量之前等待空闲(无磁盘活动)的时间。值 0 表示禁用旋转停机,值 1 到 240 表示 5 秒的倍数,值 241 到 251 表示 30 分钟的倍数。
例如,您可以这样查询 B 的当前值:
sudo hdparm -B /dev/sda
并将其设置为
sudo hdparm -B 255 /dev/sda
同样如此-S
。
再次,永远有帮助的状态:
警告:过于激进的电源管理会因频繁停车和停机而缩短硬盘的使用寿命。
这应该允许您根据自己的喜好配置电源管理。
答案2
我已经安装了hdparm像这样:
sudo apt install hdparm
sudo hdparm -y /dev/sda # Legt HDD sofort schlafen
sudo nano /etc/hdparm.conf
START_HD_IDLE=true
/dev/sda {
spindown_time = 240
}
sudo hdparm -B 127 -S 240 /dev/sda
sudo hdparm -W 0 /dev/sda1
sudo /usr/lib/pm-utils/power.d/95hdparm-apm resume
我还是没看到 spindown。所以我添加了高清空闲:
sudo apt-get install build-essential fakeroot debhelper -y
cd Downloads/
wget http://sourceforge.net/projects/hd-idle/files/hd-idle-1.05.tgz
tar -xvf hd-idle-1.05.tgz && cd hd-idle
dpkg-buildpackage -rfakeroot
sudo dpkg -i ../hd-idle_*.deb
sudo nano /etc/default/hd-idle
START_HD_IDLE=true
HD_IDLE_OPTS="-i 1200 -l /var/log/hd-idle.log"
sudo systemctl restart hd-idle
大致遵循以下指南 -https://www.htpcguides.com/spin-down-and-manage-hard-drive-power-on-raspberry-pi/
监控
我用以下方法监控了旋转:
less +F /var/log/hd-idle.log
我仍然没有得到硬盘停止旋转的信息。通过查看硬盘 LED,我可以看到和听到有东西访问了硬盘,因此硬盘继续旋转。所以我添加了两个监控工具。
通知
sudo apt-get install inotify-tools
inotifywait -m /mnt/backup/
和黑踪
sudo apt install blktrace
sudo btrace /dev/sda
禁用守护进程
Btrace 显示带有“... [smartd]”的行,因此我禁用了它。
sudo systemctl stop smartd
sudo systemctl disable smartd
和“... [pool]”,它是 udisk2 crypt-mounting 的一部分。
sudo systemctl stop udisks2
sudo systemctl disable udisks2
禁用两个守护进程后,我的计算机就停止运行了。