Bagaimana cara memasang kembali stik USB setelah melepas dari Nautilus tanpa mencabutnya?
25
Saya menemukan bahwa untuk memasang kembali USB stick, saya harus mencabutnya secara fisik, dan kemudian menghubungkan kembali. Bagaimana saya bisa melakukan ini tanpa tindakan fisik yang melelahkan seperti itu?
Perangkat USB terputus secara logis (harus ada pesan yang mempengaruhi log kernel Anda). Itu tidak akan memiliki /deventri lagi, dan IIRC tidak akan muncul di lsusbkeduanya. Saya tidak tahu apakah ada cara untuk menghubungkannya kembali.
Dari pengalaman saya di Ubuntu, ketika Anda "mengeluarkan" stik USB dari dalam Nautilus, perangkat tersebut sebenarnya menghilang dari sistem. Saya tidak yakin mengapa ini terjadi, tetapi Nautilus maupun baris perintah tidak dapat mendapatkannya kembali. Saya kira logikanya adalah bahwa sekali Anda mengeluarkan USB stick Anda tidak ingin kembali, tetapi akan memutuskannya.
Cara saya mengatasi ini (bila perlu), adalah dengan menggunakan umountbukan Nautilus. Anda juga bisa memanggil syncuntuk menyirami buffer sistem file ke disk.
Jadi, pada dasarnya a) Bangun kembali nautilus dari sumber tanpa tambalan itu (dan pertahankan pembaruan saat Anda memperbarui sistem Anda ...) atau b) gunakan pengelola file lain (setidaknya saat unmount ^^).
Periksa /dev/disk/by-iddan lihat apakah perangkat tersebut benar-benar hilang. Saya berani bertaruh itu tidak, dan dapat dipasang kembali dari sana dengan mountperintah.
LawrenceC
1
@ultrasawblade /dev/disk/by-idberisi symlink ke file perangkat /dev, misalnya /dev/disk/by-id/usb-Kingston_DT_100_G2_001CC0C60DBDFC90D32923CE-0:0 -> ../../sdb. Ketika perangkat hilang setelah udisks --eject(yang saya asumsikan terjadi di sini), symlink basi dan tidak dapat digunakan untuk memasang kembali.
PointedEars
16
Ini adalah perilaku yang saya miliki di sistem Ubuntu Lucid saya:
Ketika saya mencolokkan USB flash / thumbdrive saya yang memiliki dua partisi, sistem melaporkan:
Jadi, hanya partisi yang memiliki /dev/disk/by-uuid; sedangkan kedua disk dan partisi memiliki (berbeda) /dev/disk/by-id.
Sekarang, jika saya klik kiri pada salah satu entri partisi dalam applet Disk Mounter di desktop Gnome2 di Lucid, saya hanya mendapatkan dua entri: "Buka" atau "Keluarkan" (sebagaimana disebutkan dalam [ASK] Bagaimana cara Anda remount usb drive dengan nautilus di lynx? , dari @Thomas 'jawaban, mengacu pada 16_hide_unmount.patch ). Juga, di palimpsestsini menunjukkan dua partisi untuk disk.
Ketika saya mengklik Eject di salah satu partisi - keduanya menghilang; pada titik ini, palimpsestmenunjukkan disk, tetapi tidak ada partisi, dan pesan "No medium found" sebagai gantinya; juga:
$ 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
Jadi, seperti yang disebutkan dalam komentar oleh @ultrasawblade , memang disk ada di sana, tetapi tidak partisi - meskipun, saya pikir saya perlu partisi sebagai perangkat , untuk itu mount.
Juga, perilaku yang sama seperti klik kiri + "Keluarkan" di GUI desktop, saya bisa masuk dengan terminal sudo eject /dev/sdb. Perhatikan bahwa seseorang juga dapat membuka palimpsest, dari sana klik pada masing-masing dua partisi, dan klik "Unmount Volume" - pada saat itu, ikon untuk partisi masih akan ditampilkan di applet Disk Mounter, tetapi akan dicatat sebagai tidak terpasang; dan kemudian orang dapat melakukannya sudo udisks --detach /dev/sdb: ini membuat ikon menghilang dari applet Disk Mounter - tetapi juga /dev/sdbperangkat tidak akan hadir pada sistem lagi (namun, lsusbmasih akan menampilkan perangkat)!
Setelah mencari sedikit jawaban (mencoba hal-hal dari udevadm monitor --environmentsaat plug and cabut, dengan mereplikasi semua tindakan melalui udevadm trigger, untuk melihat apa yang dilakukan BLKRRPARTioctl), tanpa hasil - saya akhirnya menemukan Cara Memasang Kembali Stik USB Tanpa Melepas Dan Memasukkan Kembali - Ubuntu / Debian , yang memiliki jawabannya:
sudo eject -t /dev/sdb
Setelah perintah ini dijalankan - dua partisi muncul lagi di applet Disk Mounter - tanpa mencabut / memasang kembali kunci USB !! Ini semua orang asing, karena jika Anda membaca man eject:
-t With this option the drive is given a CD-ROM tray close command.
Not all devices support this command.
... Anda tidak akan pernah berharap itu berlaku untuk USB Flash / Thumb drive! (Dan saya bahkan mencoba melihat ke sys-utils / eject.c , dan saya tidak dapat melihat sesuatu dengan jelas :))
Tentu saja, jika sudo udisks --detach /dev/sdbtelah dijalankan sebelumnya, maka /dev/sdbtidak akan ada, maka eject -t /dev/sdbakan gagal juga eject: unable to find or open device for: '/dev/sdb'. Dalam hal itu, siklus daya USB seperti tercantum dalam # 7457 Bagaimana cara menghubungkan kembali perangkat USB yang terputus secara logis? membantu saya pulih:
$ 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'
Ini membuat ikon partisi ditampilkan lagi di applet Disk Mounter, langsung seperti yang dipasang; untuk menemukan alamat yang tepat, coba saat disk dipasang:
$ 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
/dev
entri lagi, dan IIRC tidak akan muncul dilsusb
keduanya. Saya tidak tahu apakah ada cara untuk menghubungkannya kembali.Jawaban:
Dari pengalaman saya di Ubuntu, ketika Anda "mengeluarkan" stik USB dari dalam Nautilus, perangkat tersebut sebenarnya menghilang dari sistem. Saya tidak yakin mengapa ini terjadi, tetapi Nautilus maupun baris perintah tidak dapat mendapatkannya kembali. Saya kira logikanya adalah bahwa sekali Anda mengeluarkan USB stick Anda tidak ingin kembali, tetapi akan memutuskannya.
Cara saya mengatasi ini (bila perlu), adalah dengan menggunakan
umount
bukan Nautilus. Anda juga bisa memanggilsync
untuk menyirami buffer sistem file ke disk.Baru saja menemukan utas yang memiliki info lebih lanjut: http://ubuntuforums.org/showthread.php?t=1477247
Jadi, pada dasarnya a) Bangun kembali nautilus dari sumber tanpa tambalan itu (dan pertahankan pembaruan saat Anda memperbarui sistem Anda ...) atau b) gunakan pengelola file lain (setidaknya saat unmount ^^).
sumber
/dev/disk/by-id
dan lihat apakah perangkat tersebut benar-benar hilang. Saya berani bertaruh itu tidak, dan dapat dipasang kembali dari sana denganmount
perintah./dev/disk/by-id
berisi symlink ke file perangkat/dev
, misalnya/dev/disk/by-id/usb-Kingston_DT_100_G2_001CC0C60DBDFC90D32923CE-0:0 -> ../../sdb
. Ketika perangkat hilang setelahudisks --eject
(yang saya asumsikan terjadi di sini), symlink basi dan tidak dapat digunakan untuk memasang kembali.Ini adalah perilaku yang saya miliki di sistem Ubuntu Lucid saya:
Ketika saya mencolokkan USB flash / thumbdrive saya yang memiliki dua partisi, sistem melaporkan:
Jadi, hanya partisi yang memiliki
/dev/disk/by-uuid
; sedangkan kedua disk dan partisi memiliki (berbeda)/dev/disk/by-id
.Sekarang, jika saya klik kiri pada salah satu entri partisi dalam applet Disk Mounter di desktop Gnome2 di Lucid, saya hanya mendapatkan dua entri: "Buka" atau "Keluarkan" (sebagaimana disebutkan dalam [ASK] Bagaimana cara Anda remount usb drive dengan nautilus di lynx? , dari @Thomas 'jawaban, mengacu pada 16_hide_unmount.patch ). Juga, di
palimpsest
sini menunjukkan dua partisi untuk disk.Ketika saya mengklik Eject di salah satu partisi - keduanya menghilang; pada titik ini,
palimpsest
menunjukkan disk, tetapi tidak ada partisi, dan pesan "No medium found" sebagai gantinya; juga:Jadi, seperti yang disebutkan dalam komentar oleh @ultrasawblade , memang disk ada di sana, tetapi tidak partisi - meskipun, saya pikir saya perlu partisi sebagai perangkat , untuk itu
mount
.Juga, perilaku yang sama seperti klik kiri + "Keluarkan" di GUI desktop, saya bisa masuk dengan terminal
sudo eject /dev/sdb
. Perhatikan bahwa seseorang juga dapat membukapalimpsest
, dari sana klik pada masing-masing dua partisi, dan klik "Unmount Volume" - pada saat itu, ikon untuk partisi masih akan ditampilkan di applet Disk Mounter, tetapi akan dicatat sebagai tidak terpasang; dan kemudian orang dapat melakukannyasudo udisks --detach /dev/sdb
: ini membuat ikon menghilang dari applet Disk Mounter - tetapi juga/dev/sdb
perangkat tidak akan hadir pada sistem lagi (namun,lsusb
masih akan menampilkan perangkat)!Setelah mencari sedikit jawaban (mencoba hal-hal dari
udevadm monitor --environment
saat plug and cabut, dengan mereplikasi semua tindakan melaluiudevadm trigger
, untuk melihat apa yang dilakukanBLKRRPART
ioctl), tanpa hasil - saya akhirnya menemukan Cara Memasang Kembali Stik USB Tanpa Melepas Dan Memasukkan Kembali - Ubuntu / Debian , yang memiliki jawabannya:Setelah perintah ini dijalankan - dua partisi muncul lagi di applet Disk Mounter - tanpa mencabut / memasang kembali kunci USB !! Ini semua orang asing, karena jika Anda membaca
man eject
:... Anda tidak akan pernah berharap itu berlaku untuk USB Flash / Thumb drive! (Dan saya bahkan mencoba melihat ke sys-utils / eject.c , dan saya tidak dapat melihat sesuatu dengan jelas
:)
)Tentu saja, jika
sudo udisks --detach /dev/sdb
telah dijalankan sebelumnya, maka/dev/sdb
tidak akan ada, makaeject -t /dev/sdb
akan gagal jugaeject: unable to find or open device for: '/dev/sdb'
. Dalam hal itu, siklus daya USB seperti tercantum dalam # 7457 Bagaimana cara menghubungkan kembali perangkat USB yang terputus secara logis? membantu saya pulih:Ini membuat ikon partisi ditampilkan lagi di applet Disk Mounter, langsung seperti yang dipasang; untuk menemukan alamat yang tepat, coba saat disk dipasang:
sumber
eject -t /dev/<DEVICE>
.Pada sistem berbasis Debian, setidaknya, Anda harus dapat melakukan ini:
Ini bekerja karena ... sihir.
sumber