私は知っているeject
コマンドは接続されているほぼすべてのハードウェア コンポーネントを取り出すために使用できますが、USB ドライブを取り出すためにも使用できますか?
USBドライブや外付けHDDを取り出すことは可能ですか?eject
指示?
答え1
はい。例えば:
sudo eject /dev/sda
機械的な排出ハードウェアが必要であることを示す他の回答は誤りです。
アンマウントは取り出しと同じではありません。
- ボリュームをアンマウントした場合、基礎となるデバイスはまだ使用可能なので、すぐに再度マウントできます。状況によっては、セキュリティ上のリスクが生じる可能性があります。デバイスを取り出すと、USB サブシステムのリセット (再起動など) によってのみデバイスが再ロードされます。
- デバイスを取り外すと、デバイスへのそれ以上のアクセスが事実上無効になります。USB サブシステムをリセット (再起動など) した場合のみ、デバイスが再ロードされます。それ以外の場合は、USB デバイスを物理的に切断して再接続し、再度アクセスする必要があります。
- このコマンドは、取り出す前に、デバイスにマウントされていたすべてのボリュームをアンマウントします。
- ボリュームが使用中の場合、このコマンドはアンマウントの場合と同様に失敗しますが、一部のボリュームがアンマウントされ、一部のボリュームがマウントされたままになる可能性があります。
答え2
の上リナックスは動作しますが、eject
USBに関しては実際には「仕事を完了」しません。回転するドライブ。
それで、まず、あなたeject /dev/sdb
(またはumount
すべて)。
そしてそれから、適切に取り外した後USB 外付けハードドライブを取り外す最善の方法は次のとおりです。
udisksctl power-off -b /dev/sdb
または
udisks --detach /dev/sdb
これにより、通常、ドライブは正常に回転を停止します。
注: は、udisksctl
より「主流」のツールかもしれませんudisks
(前者は既に私のDebianにインストールされていますが、後者はインストールされておらず、批判された不要なスピンアップ/ダウンを防ぐため。
詳細
udisksctl
の文書には(電源オフオプションについて):
ドライブを安全に取り外し、電源をオフにします。OS 側では、ドライブを使用しているプロセスがないことを確認し、インフライト バッファとキャッシュを安定したストレージにコミットするように要求します。ドライブの電源をオフにする正確な手順は、ドライブ自体と、使用されている相互接続によって異なります。USB 経由で接続されたドライブの場合、USB デバイスが構成解除され、その後、接続されているアップストリーム ハブ ポートが無効になります。
一部の物理デバイスには複数のドライブが含まれているため (たとえば、4-in-1 フラッシュ カード リーダー USB デバイス)、1 つのドライブの電源をオフにすると、他のドライブに影響する場合があります。そのため、このアクションを実行しても、保証されるものはあまりありません。通常、ドライブはプラグを抜いたかのように消えます。
udisks (非推奨?)
正確には、現在の実装(2014年現在):
- SCSI sync-cacheコマンドを送信します。
- SCSI停止コマンドを送信し、
- usb-storageカーネルドライバーをアンバインドします。
- USBデバイス(電源)を一時停止します。
- USB ポートから論理的に無効化/削除します。
このプロセスは、提案されている手動の手順に近いものです。ここ最初の答えはaskubuntuで。
答え3
ディスク /dev/sdb をアンマウントするための手動手順 (sudo が必要):
echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete
これにより、デバイスの電源が完全にオフになり、システムから切り離されます。デバイスは、切断されて再接続されるまで再び検出されません。
答え4
よく読んでみると排出(1)man ページを見ると、排出方法が 4 つあることがわかります。
-r This option specifies that the drive should be ejected using a CDROM
eject command.
-s This option specifies that the drive should be ejected using SCSI
commands.
-f This option specifies that the drive should be ejected using a remov‐
able floppy disk eject command.
-q This option specifies that the drive should be ejected using a tape
drive offline command.
電話すると排出するHDD/SCSI ではioctl(fd, SG_IO, (void *)&io_hdr);
コマンド (ソースからのコピーeject.c
) を発行します。
これは、MS Windows または MaxOSX でデバイスを安全に取り外すのと同じです。
一部のデバイスでは、これは特別な意味を持ちます。例えばKindle 3以降では、排出するコマンドは充電モードに移行し、画面がロックされている間にデバイス上でブラウジングできるようになります。
他のユーティリティも同様のことを行います。
scsi-spin --force --down /dev/sda