Nautilusからアンマウントした後、USBスティックを切断せずに再マウントするにはどうすればよいですか?


25

USBスティックを再マウントするには、物理​​的に切断してから再接続する必要があります。このような疲れた身体的行動なしでこれを行うにはどうすればよいですか?


3
USBデバイスは論理的に切断されています(カーネルログに影響するメッセージがあるはずです)。これ/dev以上エントリはなく、IIRCも表示されませんlsusb。再接続する方法があるかどうかはわかりません。
ジル 'SO-悪であるのをやめる'

この質問は非常によく似ている:superuser.com/questions/1163375/...
デニスBenzinger

回答:


8

Ubuntuでの私の経験から、Nautilus内からUSBスティックを「イジェクト」すると、デバイスは実際にはシステムから消えます。これがなぜなのかわかりませんが、Nautilusもコマンドラインもそれを取り戻すことはできません。ロジックは、いったんUSBスティックを取り出すと、それを元に戻したくないが、切断するということだと思います。

これを回避する方法(必要な場合)はumount、Nautilusの代わりに使用することです。syncファイルシステムのバッファをディスクにフラッシュするために呼び出すこともできます。

詳細情報があるスレッドを見つけました:http : //ubuntuforums.org/showthread.php?t=1477247

基本的には、a)そのパッチなしでソースからnautilusを再構築する(そしてシステムを更新するときに最新の状態に保つ...)、またはb)別のファイルマネージャを使用する(少なくともアンマウントするとき^^)。


2
/dev/disk/by-idデバイスが本当になくなっているかどうかを確認してください。そうではないのではないかと思いますが、mountコマンドでそこから再マウントできます。
ローレンス

1
@ultrasawbladeに/dev/disk/by-idは、たとえばのデバイスファイルへのシンボリックリンクが含まれています。デバイスが削除された場合(ここで発生したと考えられます)、シンボリックリンクは古く、再マウントには使用できません。/dev/dev/disk/by-id/usb-Kingston_DT_100_G2_001CC0C60DBDFC90D32923CE-0:0 -> ../../sdbudisks --eject
PointedEars 14年

16

これは、私のUbuntu Lucidシステムでの動作です。

2つのパーティションがあるUSBフラッシュ/サムドライブを接続すると、システムは次のように報告します。

$ ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb2

$ udisks --show-info /dev/sdb | grep -A2 'partition table\|by-id'
    by-id:                     /dev/disk/by-id/usb-takeMS_USB_Mini_AA07013000010057-0:0
    by-path:                   /dev/disk/by-path/pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0
  detected at:                 Mon 29 Apr 2013 02:16:50 PM CEST
--
  partition table:
    scheme:                    mbr
    count:                     2

$ udisks --show-info /dev/sdb1 | grep -A2 'partition table\|by-id'
    by-id:                     /dev/disk/by-id/usb-takeMS_USB_Mini_AA07013000010057-0:0-part1
    by-id:                     /dev/disk/by-uuid/581E-EE0B
    by-path:                   /dev/disk/by-path/pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0-part1
  detected at:                 Mon 29 Apr 2013 04:24:25 PM CEST

$ udisks --show-info /dev/sdb2 | grep -A2 'partition table\|by-id'
    by-id:                     /dev/disk/by-id/usb-takeMS_USB_Mini_AA07013000010057-0:0-part2
    by-id:                     /dev/disk/by-uuid/4A0E-A166
    by-path:                   /dev/disk/by-path/pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0-part2
  detected at:                 Mon 29 Apr 2013 04:24:25 PM CEST

$ udevadm info --query=all --name=/dev/sdb | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host13/target13:0:0/13:0:0:0/block/sdb    
$ udevadm info --query=all --name=/dev/sdb1 | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host13/target13:0:0/13:0:0:0/block/sdb/sdb1
$ udevadm info --query=all --name=/dev/sdb2 | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host13/target13:0:0/13:0:0:0/block/sdb/sdb2
$ sudo partprobe /dev/sdb
$

したがって、パーティションのみに/dev/disk/by-uuid; があります。ディスクとパーティションの両方に(異なる)があり/dev/disk/by-idます。

ここで、LucidのGnome2デスクトップのDisk Mounterアプレットのパーティションエントリのいずれかを左クリックすると、「Open」または「Eject」の2つのエントリのみが表示されます([SOLVED] How do you remount lynxでnautilusを使用したUSBドライブ?@ Thomasの回答、16_hide_unmount.patchを参照)。また、palimpsestここではディスクの2つのパーティションを示しています。

パーティションのいずれかで[取り出し]をクリックすると、両方が消えます。この時点でpalimpsest、ディスクは表示されますが、パーティションは表示されず、代わりに「メディアが見つかりません」というメッセージが表示されます。また:

$ ls /dev/sdb*
/dev/sdb

$ udisks --show-info /dev/sdb | grep -A2 'partition table\|by-id'
    by-id:                     /dev/disk/by-id/usb-takeMS_USB_Mini_AA07013000010057-0:0
    by-path:                   /dev/disk/by-path/pci-0000:00:1d.7-usb-0:2:1.0-scsi-0:0:0:0
  detected at:                 Mon 29 Apr 2013 02:16:50 PM CEST

$ udisks --show-info /dev/sdb1 | grep -A2 'partition table\|by-id'
$

$ udevadm info --query=all --name=/dev/sdb | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host13/target13:0:0/13:0:0:0/block/sdb
$ udevadm info --query=all --name=/dev/sdb1 | grep DEVPATH
device node not found

$ sudo partprobe /dev/sdb
Error: Error opening /dev/sdb: No medium found

コメントで述べたように、@ultrasawblade、実際にディスクがありますが、ないパーティションは-けれども、私はパーティション必要と思うデバイスなどをするためには、mount

また、デスクトップGUIの左クリック+「取り出し」と同じ動作で、でターミナルにアクセスできますsudo eject /dev/sdb。注1も開くことができるpalimpsestそこに2つのパーティションのそれぞれをクリックし、「アンマウントし、ボリュームを」クリックから、 -その時点で、パーティションのアイコンがしますまだディスクマウンタアプレットに表示されますが、アンマウントとして注目されます。そして、sudo udisks --detach /dev/sdbこれを行うことができます:これにより、Disk Mounterアプレットからアイコンが消えます-しかし、/dev/sdbデバイスはシステムに存在しなくなります(ただし、lsusbデバイスは表示されます)。

答えをかなり探した後(udevadm monitor --environmentプラグインとアンプラグ中に、を介してすべてのアクションをレプリケートしudevadm triggerBLKRRPARTioctlの動作を調べてみました)、成功せずに- 削除して再挿入せずにUSBスティックを再マウントする方法についにつまずきました-Ubuntu / Debian、答えがあります:

sudo eject -t /dev/sdb

このコマンドを実行すると、2つのパーティションがDisk Mounterアプレットに再び表示されます-USBキーを抜き差しする必要はありません!! あなたが読んだ場合man eject

   -t   With  this  option the drive is given a CD-ROM tray close command.
        Not all devices support this command.

... USBフラッシュ/サムドライブに適用できるとは思わないでしょう!(そしてsys-utils / eject.cを調べてみたところ、明らかなものは何も見えません:)

もちろん、sudo udisks --detach /dev/sdb以前に実行された場合は/dev/sdb存在しないため、でeject -t /dev/sdb失敗しeject: unable to find or open device for: '/dev/sdb'ます。その場合、#7457「論理的に切断されたUSBデバイスを再接続する方法」に記載されているUSB電源サイクル私が回復するのを助けました:

$ sudo sh -c 'echo suspend > /sys/bus/usb/devices/1-2/power/level'
$ sudo sh -c 'echo auto > /sys/bus/usb/devices/1-2/power/level'

これにより、パーティションのアイコンがマウントされた状態で直接Disk Mounterアプレットに再び表示されるようになりました。正しいアドレスを見つけるには、ディスクがマウントされている間に試してください:

$ udevadm info --attribute-walk --name=/dev/sdb | grep "looking\|busnum\|devnum" | grep -B1 'busnum\|devnum'
  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2':
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="13"
  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1':
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="1"

# the first (.../usb1/1-2) should be the right one, check bus/devnum:
$ lsusb -s 1:13
Bus 001 Device 013: ID 090c:1000 Feiya Technology Corp. Flash Drive

# looks good; check for symlinks in `sys/bus/usb/devices` as per "parent device" .../usb1/1-2
$ ls -la /sys/bus/usb/devices/ | grep "usb1/1-2"
lrwxrwxrwx 1 root root 0 2013-04-29 17:17 1-2 -> ../../../devices/pci0000:00/0000:00:1d.7/usb1/1-2
lrwxrwxrwx 1 root root 0 2013-04-29 17:21 1-2:1.0 -> ../../../devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0

# so it should be /sys/bus/usb/devices/1-2; check if it has power/level:
$ ls /sys/bus/usb/devices/1-2/power/level 
/sys/bus/usb/devices/1-2/power/level

1
tl; dr:取り出されたUSBドライブを再び「挿入」するコマンドはeject -t /dev/<DEVICE>です。
デニスベンジンガー

4

Debianベースのシステムでは、少なくとも次のことができるはずです。

  1. ドライブ文字がどうあるべきかを考えてみましょう...ここでは、例として/ dev / sdbと言います。
  2. 「Would Be」ドライブ文字をダブルイジェクトして、デバイスの電源を効果的にオンにします。
  3. 利益!

これは…魔法のためです。

# determine 'would be drive letter'
lsblk
# do magic
eject /dev/sdb; sleep 1; eject -t /dev/sdb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.