更改驱动器节点和 hdparm

更改驱动器节点和 hdparm

我目前正在尝试创建一个在启动时运行的命令,以关闭我两个非常嘈杂的硬盘的电源。我已编辑该etc/rc.local文件以包含以下命令:

sudo hdparm -y /dev/sdc 
sudo hdparm -y /dev/sdd

exit 0

虽然我认为这应该可行,但每次我重新启动时,分配的驱动器似乎都会不断切换。我有sda、、、和,但它们总是乱七八糟(使我希望关闭的驱动器与哪个驱动器不同,sdb这使得在启动时关闭正确的驱动器的任务非常麻烦。sdcsddsdesdd

我有一个功能完好的 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循环遍历字母 af
  • if [ "``ntfslabel /dev/sd${drive_letter}1``" == "DATA" ] ; then检查设备 /dev/sda1、/dev/sdb1 等的标签,并将其与 DATA 进行比较(抱歉使用了双反引号)
  • sudo hdparm -y /dev/sd${drive_letter}1是有效载荷

相关内容