我目前正在尝试创建一个在启动时运行的命令,以关闭我两个非常嘈杂的硬盘的电源。我已编辑该etc/rc.local
文件以包含以下命令:
sudo hdparm -y /dev/sdc
sudo hdparm -y /dev/sdd
exit 0
虽然我认为这应该可行,但每次我重新启动时,分配的驱动器似乎都会不断切换。我有sda
、、、和,但它们总是乱七八糟(使我希望关闭的驱动器与哪个驱动器不同,sdb
这使得在启动时关闭正确的驱动器的任务非常麻烦。sdc
sdd
sde
sdd
我有一个功能完好的 ftstab 文件消失了,但我将其从备份中恢复到etc/
目录中:
# <file system> <mount point> <type> <options> <dump> <pass>
#Entry for /dev/sda1 :
UUID=43c09daf-08a5-44f2-89b0-fc7c6f0d1e67 / ext4 errors=remount-ro 0 1
#Entry for /dev/sdd1 :
UUID=443AFBAD7FE50945 /media/DX100 ntfs-3g defaults,nosuid,nodev,locale=en_CA.UTF-8 0 0
#Entry for /dev/sdb1 :
UUID=FCE456F5E456B21E /media/GalaxyM83 ntfs-3g defaults,nosuid,nodev,locale=en_CA.UTF-8 0 0
#Entry for /dev/sdf1 :
UUID=1CA057FDA057DBB8 /media/Holideck ntfs-3g defaults,nosuid,nodev,locale=en_CA.UTF-8 0 0
#Entry for /dev/sdc1 :
UUID=7ABB49654B799D40 /media/JX3P ntfs defaults,nosuid,nodev,locale=en_CA.UTF-8 0 0
似乎每次我启动时驱动器的顺序都会改变。我不知道如何解决这个问题。一个快速的解决方法是使用 UUID 而不是 DEV 字母,方法是编辑 etc/rc.local 文件以包含以下内容:
hdparm -y /dev/disk/by-uuid/443AFBAD7FE50945
hdparm -y /dev/disk/by-uuid/7ABB49654B799D40
所以我认为我已经解决了问题,因为我听到两个硬盘在启动过程中都死机了,但是,只要我登录,两个驱动器就会重新启动!所以现在我必须弄清楚是什么让它们在登录后重新启动,或者也许有另一种方法让它们关闭。登录后我可以执行某种命令吗?我尝试编辑启动应用程序以包含 autossh:
autoshh - sudo hdparm -y /dev/disk/by-uuid/7ABB49654B799D40
autoshh - sudo hdparm -y /dev/disk/by-uuid/443AFBAD7FE50945
但这似乎无法在登录后关闭磁盘。
答案1
看起来您尝试关闭的磁盘包含 NTFS 分区。找出卷标是什么,在下面的示例中,我将使用标签 DATA。然后您可以使用类似以下脚本:
for drive_letter in {a..f} ; do
if [ "`ntfslabel /dev/sd${drive_letter}1`" == "DATA" ] ; then
sudo hdparm -y /dev/sd${drive_letter}1
fi
done
解释
for drive_letter in {a..f} ; do
循环遍历字母 afif [ "``ntfslabel /dev/sd${drive_letter}1``" == "DATA" ] ; then
检查设备 /dev/sda1、/dev/sdb1 等的标签,并将其与 DATA 进行比较(抱歉使用了双反引号)sudo hdparm -y /dev/sd${drive_letter}1
是有效载荷