我擁有 Seagate Free Agent 外接硬碟已有 4-5 年了。插入並完成文件傳輸後,我將單擊選單“安全刪除”。然後它會優雅地自行關閉,停止內部磁碟的旋轉。如果觸碰我就能感覺到。此外,電源燈也會熄滅。
最近我買了一個新的外接硬碟,WD Elements。如果我對此硬碟發出「安全刪除」命令,它只會被卸載,但不會自行關閉電源,磁碟也會繼續旋轉,我在觸摸時可以感覺到。我還嘗試了 Ubuntu 附帶的“磁碟”應用程式中的“關閉驅動器電源”按鈕。然後,它也只是被卸載。
我希望在手動拔下 WD Elements 硬碟之前先正常關閉它。我認為在設備自行停止之前強行拔掉插頭可能會縮短其使用壽命。
有沒有其他命令或程式可以幫助我做到這一點?
答案1
您需要一個額外的軟體包,其中包含一個實用程式來實際關閉 WD 電源,因為 WD 不支援開箱即用的 Linux:
sudo apt-get install usdisks2
sudo udisksctl power-off --block-device /dev/XdY
其中X
和Y
是與您的磁碟對應的字母。
答案2
到目前為止,我還沒有在文件管理器中找到“安全彈出”的簡單替代方法,因此這是我在這裡使用命令列的理由。
首先,您需要找出您的外接硬碟裝置 ID 或區塊 ID。然後您可以使用 或udisks
來udisksctl
卸載並實際關閉設備電源。我已經回答了相關問題前一段時間,剛開始使用ubuntu,所以我建議你也參考一下。基本上,我使用udisks --unmount /dev/sdb1 && udisks --detach /dev/sdb
sdb1 是安裝點,sdb 是實際磁碟。
您可以lsblk
透過掛載點和大小來使用和識別它;另一方面,您可以使用udisksctl status
.例如,我現在連接了 Sandisk Cruiser USB 驅動器。命令的輸出如下:
正如您所看到的,兩個報告都表明我的 USB 驅動器被識別為 /dev/sdc。每次你插入一個 USB 裝置時,它都會被識別為不同的字母,sdb、sdc、sdf 等等,而 sda 始終是你的硬碟。
udisks --unmount /dev/sdc1 && udisks --detach /dev/sdc
因此,就我而言,我會按照 Fabby 的建議彈出 USB 。對於我使用的單行,我注意到裝置 ID 被保留,即,如果我彈出 USB 並重新連接它,它仍然給出裝置sdc
名稱。
提示:您可以用來udisksctl status | grep -i wd
僅顯示外部硬碟的資訊。
現在,這是我純粹為了好玩而做的事情,但您可能會發現它很有用並適合您自己的需求。如果我們可以編寫一個腳本來為我們執行安全彈出怎麼辦?
我們需要讓 shell 知道外部硬碟或 USB 的區塊 ID。該命令的輸出是什麼:udisksctl status | grep -i sandisk | xargs echo
?它將是這樣的:SanDisk Cruzer Glide 1.27 2005425573077FA0AA67 sdd
,或者換句話說,有關 usb 的信息,以空格分隔,設備 id 是最後一個參數,或第 6 個參數。這裡我們可以使用 cut 指令來擷取它,如下所示:udisksctl status | grep -i sandisk | xargs echo | cut -d' ' -f6
當然,對於你來說,你必須使用udisksctl status | grep -i wd | xargs echo
併計算你的區塊 id 是哪個元素,然後使用適當的數字cut -d' ' -fx
接下來,我整理了腳本remove-usb.sh。這裡是:
#!/bin/sh
DEVICE=$( udisksctl status | grep -i sandisk | xargs echo | cut -d' ' -f6 )
udisks --unmount /dev/$(echo $DEVICE)1 && udisks --detach /dev/$DEVICE
接下來,將其放在我的 /home/user/bin 資料夾中,chmod +x /home/user/bin/remove-usb.sh。不要忘記將 bin 資料夾新增到你的道路。現在您也可以建立一個 .桌面文件或者使腳本在檔案總管中可執行
這是正在運行的腳本
答案3
下面的 shell 腳本可以幫我完成這項工作。
#!/bin/sh
DEVICE=$(udisksctl status | grep -i "WD Elements" | xargs echo | cut -d' ' -f6)
udisks --unmount /dev/$(echo $DEVICE)1
sudo udisksctl power-off --block-device /dev/$DEVICE
它實際上是@Serg 和@Fabby 帖子中的想法的結合。