Usb-Drive

彈出 USB 驅動器/彈出命令

  • November 29, 2021

我知道該**eject**命令可用於彈出幾乎所有附加的硬體組件,但它可以用於彈出 USB 驅動器嗎?

是否可以使用該**eject**命令彈出 USB 驅動器和外置硬碟?

是的。例如:

sudo eject /dev/sda

此處表明您需要機械彈出硬體的其他答案不正確。

解除安裝與彈出不同。

  1. 如果您解除安裝一個卷,您可以立即將其重新安裝,因為底層設備仍然可用。*在某些情況下,這可能會帶來安全風險。*通過彈出設備,只有 USB 子系統的重置(例如重新啟動)才會重新載入設備。
  2. 通過彈出設備,您可以有效地禁用對設備的任何進一步訪問。只有 USB 子系統的重置(例如重新啟動)才會重新載入設備。否則,您必須物理斷開 USB 設備並重新連接才能再次訪問它。
  3. 在彈出之前,此命令將解除安裝設備上已安裝的所有捲。
  4. 如果卷正在使用中,則此命令將與解除安裝一樣失敗,但某些卷可能已解除安裝並且某些卷可能仍處於安裝狀態。

Linux 上eject可以工作,但不會真正“完成”關於 USB旋轉驅動器的工作。

所以首先,你eject /dev/sdb(或umount一切)。

然後,在正確解除安裝後**,**拔出 USB 外置硬碟的最佳方法是:

   udisksctl power-off -b /dev/sdb

要麼

   udisks --detach /dev/sdb

這通常會導致驅動器正常減速。

注意:與(前者已經安裝在我的 Debian 上,後者沒有)udisksctl相比,它可能是一個更“主流”的工具。udisks

一些細節

udisksctl

文件狀態(關於關機選項):

安排安全移除驅動器並關閉電源。在作業系統方面,這包括確保沒有程序正在使用驅動器,然後請求將執行中的緩衝區和記憶體送出到穩定的儲存。關閉驅動器電源的具體步驟取決於驅動器本身和使用的互連。對於通過 USB 連接的驅動器,效果是 USB 設備將被取消配置,然後禁用它所連接的上游集線器埠。

請注意,由於某些物理設備包含多個驅動器(例如 4 合 1 快閃記憶體卡讀卡器 USB 設備),關閉一個驅動器可能會影響其他驅動器。因此,與執行此操作相關的保證並不多。通常效果是驅動器消失,就好像它被拔掉了一樣。

u盤

準確地說,目前的實現(截至 2014 年):

  • 發送 SCSI 同步記憶體命令,
  • 發送 SCSI 停止命令,
  • 取消綁定 usb-storage 核心驅動程序,
  • 暫停 USB 設備(電源),
  • 邏輯上從其 USB 埠禁用/刪除它。

此過程接近此處建議的手動過程。最初的答案是在 askubuntu 上

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