Ssd

如何安全地從正在執行的系統中移除 SATA 磁碟?

  • August 26, 2021

我有時需要將磁碟插入磁碟托架。在其他時候,我有一個非常奇怪的設置,即使用筆記型電腦上的 SATA-eSATA 電纜連接 SSD,同時從台式機上取電。

如何安全地從系統中移除 SATA 磁碟?這個Phoronix論壇文章有一些建議:

justsumdood 寫道:

> > An(noymous)droid 寫道:
> > 那麼在拔掉電源之前你會在軟體方面做什麼呢?是不是一個簡單的“umount /dev/sd” > > $$ drive letter $$? 解除安裝設備後,“關閉”(或休眠)設備: >

hdparm -Y /dev/sdX

(其中 X 代表您要關閉的設備。例如:/dev/sdb)

這將使驅動器斷電,以便在沒有電壓浪湧風險的情況下將其移除。

這是否意味著磁碟記憶體在此後被正確刷新並關閉?

來自同一執行緒的另一個建議:

chithanh 寫道:

所有 SATA 和 eSATA 硬體在物理上都可以進行熱插拔(即,如果您插入/拔出插頭,則不會損壞)。

晶片組和驅動程序如何處理這是另一個問題。一些驅動程序/晶片組組合不能正確處理熱插拔,需要一個 warmplug 命令,例如以下命令:

echo 0 - 0 > /sys/class/scsi_host/hostX/scan

將 X 替換為您的 SATA/eSATA 埠的相應編號。

我懷疑這樣做是否正確,但我也找不到反對它的證據。

那麼,從系統中刪除附加磁碟的正確方法是什麼?假設我已經解除安裝了磁碟上的每個分區並執行了sync. 如果可能,請指向一些官方文件,我在 Linux 文件樹和Linux ATA wiki中都找不到任何東西。

  1. 解除安裝磁碟上的所有文件系統。( umount ...)
  2. 停用任何 LVM 組。( vgchange -an)
  3. 確保沒有任何東西正在使用磁碟做任何事情。
  • 您可以在此處拔下硬碟,但建議也執行最後兩個步驟
  1. 向下旋轉硬碟。(與 SSD 無關) ( sudo hdparm -Y /dev/(whatever))
  2. 告訴系統,我們正在拔下硬碟,以便它可以自行準備。( echo 1 | sudo tee /sys/block/(whatever)/device/delete)

如果您想格外小心,echo 1 | sudo tee /sys/block/(whatever)/device/delete請先做。這將從核心中取消註冊設備,因此當您拔下它時您知道沒有任何東西在使用它。當我使用 eSATA 機箱中的驅動器執行此操作時,我可以聽到驅動器的磁頭自行停放,因此核心顯然告訴驅動器準備斷電。

如果您使用的是 AHCI 控制器,它應該可以處理拔出的設備。如果您使用的是其他類型的 SATA 控制器,驅動程序可能會因熱插拔而混淆。

根據我的經驗,SATA 熱插拔(使用 AHCI)在 Linux 中執行良好。我拔掉了光碟機,插入了硬碟,掃描了錯誤,創建了文件系統並將數據複製到其中,解除安裝並拔下它,插入了不同的 DVD 驅動器,並刻錄了光碟,所有這些都在機器啟動的情況下完成和執行。

引用自:https://unix.stackexchange.com/questions/43413