USBドライブの取り出し/コマンドの取り出し


55

このejectコマンドを使用して、接続されているほとんどすべてのハードウェアコンポーネントをイジェクトでき​​ることは知っていますが、USBドライブをイジェクトするには使用できますか?

ejectコマンドでUSBドライブと外付けHDDを取り出すことは可能ですか?


3
関連:の反対eject /dev/sdXIS sg_start -s /dev/sdX(からsg3_utilsパッケージ)、両方のSCSIデバイスに送信するためにコマンドを使用します。
イエティ

回答:


15

いいえ。そうである必要もありません。ejectメディアを直接引き出すことができない光学ドライブを開くために使用されます。

USB / eSATA / etcの場合はアンマウントで十分です。ストレージデバイス。


うーん、どこかで/ dev / sdaにあるようにhddを取り出すのを見ました。参照は間違っていたと思います。
ジョーバール

あなたはそれを行うことができますが、通常はまったく何もしません。
イグナシオバスケス-アブラムス

1
これは、デバイスが最初にマウントされ、別の大きな一連の仮定に沿っていることを前提としています(1つは読み取り可能なファイルシステムがあります)。たくさんの外付けドライブを消去していると想像してください-おそらくマウントされません。使用するのは正しい方法です。
ジェームズムーア

1
確信が持てない場合は、syncそれを削除する前に
EkriirkE

大きくて太い警告:これは完全に真実ではありません。そうしないejectと、基礎となるUSBデバイスドライバーは、AFTER umountが戻った後も書き込み(試行)を行う場合があります。これは、ドライブにステータスLEDがある場合にはっきりと確認できます。umount終了直後にUSBスティックをヤンクすることは、災害のためのレシピです。
ZioByte

77

はい。例えば:

sudo eject /dev/sda

ここでの機械的取り出しハードウェアが必要であることを示す他の回答は間違っています。

アンマウントは、イジェクトと同じではありません。

  1. ボリュームをアンマウントする場合、基盤となるデバイスがまだ使用可能であるため、すぐに元に戻すことができます。状況によっては、これによりセキュリティ上のリスクが生じる可能性があります。デバイスを取り出すと、USBサブシステムのリセット(再起動など)だけでデバイスがリロードされます。
  2. デバイスを取り出すことにより、デバイスへのそれ以上のアクセスを事実上無効にします。USBサブシステムのリセット(再起動など)のみがデバイスをリロードします。それ以外の場合は、USBデバイスを物理的に切断して再接続し、再度アクセスする必要があります。
  3. 排出する前に、このコマンドはマウントされたデバイス上のすべてのボリュームをアンマウントします。
  4. ボリュームが使用中の場合、一部のボリュームがアンマウントされ、一部のボリュームがマウントされたままになる場合を除き、アンマウントと同様にこのコマンドは失敗します。

1
またsudo、このコマンドを終了するために使用する必要がありました(ファイルを開くことができないと言う前にドライブをアンマウントするだけでした)。それ以外に、役に立つ答え。
GDP2

このスレッドで過小評価された答え。FAT32にマウントされたサムドライブを見て、ファイルエクスプローラー(つまり、ノーチラス)だけでアンマウントとイジェクトが異なる世界を持っていることに注目してください。シンプルなSansaクリップもこれを実証するのに役立ちます。
クラウド

lsusbを実行するとき、デバイスはまだ存在しています。そのため、USBサブシステム全体をリセットする必要はありません。デバイスだけで十分です。あなたはこれを行うにusbreset使用することができますgithub.com/jkulesza/usbreset github.com/CWempe/usbreset usbreset.cファイルは両方のプロジェクトで同じです、
ハンネス

「sda」が正しいことをどのようにして知ることができますか?sda、sdbなどを実際のデバイス名にマッピングできますか?
ユルゲン・K.

38

eject動作しますが、USB 回転ドライブに関して実際には「仕事を終える」ことはありません。

適切にアンマウントした後、USB外付けハードドライブを取り外す最良の方法は次のとおりです。

udisks --detach /dev/sdb

これにより、通常、ドライブは正常にスピンダウンします。

正確には、現在の実装

  • SCSI同期キャッシュコマンドを送信します。
  • SCSI停止コマンドを送信します。
  • usb-storageカーネルドライバーのバインドを解除します。
  • USBデバイス(電源)を一時停止します。
  • USBポートから論理的に無効化/削除します。

このプロセスは、ここで提案されている手動の手順に近いものです。最初の答えはaskubuntuでした

編集:また、g.rocketが指摘しているように、このコマンドは同等かもしれません:

udisksctl power-off -b /dev/sdb

私のubuntuでは、オプションのudisksctlない--detachonylが利用可能です。この場合はどうしますか?ありがとうございました。
和観短歌

@WakanTankaをインストールしudisksます。
トーター

どうすればインストールできudisksますか?私のシステムにはありません。パッケージを見つけましたudisks2が、それは作成udisksudisks2 利用もできませんでした。
マーティントーマ

5
@WakanTanka udisksctl power-off -b /dev/sdwhateverも同じことをしているようです。
g.rocket

@ g.rocketの回答はそれに応じて更新されました。ありがとうございました。
トーター

8

ディスク/ dev / sdbをアンマウントするための手動手順(sudoが必要):

echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete

これにより、デバイスの電源が完全にオフになり、システムから切り離されます。切断して再接続するまで、再び検出されることはありません。


2
FWIWこれは、外部USBクレードルを備えたXen dom0で動作する唯一の方法です。ejectコマンドとudisksコマンドでエラーが発生しました。
GS-モニカに謝罪

1
私はこれを探していました、私はdracut緊急モードにあり、他の機能のいずれにもアクセスできません。ありがとう!
ナシエル

hdparm -YSATA / IDEドライブにも便利です。
ウォルフ

6

慎重にeject(1)のマニュアルページを読むと、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

3

「イジェクト」は、トレイやその他のロードメカニズムのないハードウェアでは意味がありません(テープドライブでも動作すると想定しています)。

しかし、外付けUSBフラッシュドライブを搭載したテストでは、その伝えejectくらいのように動作しますumount-デバイスノードが消える作るの副作用、例えばと

% ls  /dev/sdc*
/dev/sdc  /dev/sdc1
% sudo eject /dev/sdc
% ls  /dev/sdc*
/dev/sdc

/dev/sdc1消えたことに注意してください。


1
(テープでそれを試したことがないmt rewoffl、それはまた、巻き戻しているため、より便利である)が、それはない、古いMacとサンのワークステーション上で見られるような電動式のフロッピードライブで動作。
-Alexios

@Alexios興味深い。
レナン

3

osxコマンドラインでは、LABELがUSBドライブのラベルであるdiskutilを使用する必要があります。

diskutil eject /Volumes/<LABEL>

2

udisks --detach /dev/sdX(X)は、USBデバイスの最後の文字です。どのLinuxシステムでも問題なく動作します。


少し短いかもしれませんが、あなたの答えは大丈夫です。さらに詳しく説明することをお勧めします。このコマンドの機能、方法、理由は何ですか?
-user259412

0

OKこれをもっとよく説明しようと思います:

udisksコマンドは、system unmountコマンドでマウントまたはアタッチされたusbデバイスを完全に削除し、電源をオフにします。dev/ sdb1またはusbがまだシステムに存在するもの以外のパーティションをアンマウントします。

同じアンマウント、イジェクト、デタッチではありません

udisks = USBの電源を切る

umount =ペンドライブ全体ではなく、パーティションを単にアンマウントします

取り出し= umountコマンドと同じか非常に近い

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.