更改驅動器節點和 hdparm

更改驅動器節點和 hdparm

我目前正在嘗試創建一個在啟動時起作用的命令,以終止我的兩個非常吵鬧的硬碟的電源。我已編輯該etc/rc.local文件以包含此命令:

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

exit 0

雖然我認為這應該可行,但每次我重新啟動時,分配的驅動器似乎都會不斷切換。我有sdasdbsdcsdd、 ,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循環遍歷字母 af
  • if [ "``ntfslabel /dev/sd${drive_letter}1``" == "DATA" ] ; then檢查裝置 /dev/sda1、/dev/sdb1 等的標籤並將其與 DATA 進行比較(抱歉有雙反引號)
  • sudo hdparm -y /dev/sd${drive_letter}1是有效負載

相關內容