USB sürücülerini çıkarma / çıkarma komutu


55

ejectKomutun hemen hemen tüm donanım bileşenlerini çıkarmak için kullanılabileceğini biliyorum , ancak USB sürücülerini çıkarmak için kullanılabilir mi?

USB sürücülerini ve harici HDD'leri ejectkomutla çıkarmak mümkün müdür ?


3
İlgili: zıt eject /dev/sdXDİR sg_start -s /dev/sdX(den sg3_utilspaketine), hem SCSI aygıtına göndermek için komutları kullanabilirsiniz.
Yeti

Yanıtlar:


15

Hayır. Onların da olması gerekmez; ejectMedyayı doğrudan çekemediği optik sürücüleri açmak için kullanılır.

Çıkarma USB / eSATA / vb. İçin yeterlidir. depolama aygıtları.


Hmm, hdd'yi bir yerde / dev / sda gibi çıkardım. Sanırım referans hatalıydı.
Joe Barr

Yapabilirsin, ama genellikle hiçbir şey yapmıyorsa, çok fazla bir şey yapmaz.
Ignacio Vazquez-Abrams,

1
Bu, cihazın ilk etapta monte edildiğini ve bir başka büyük varsayımlar dizisini taşıdığını varsayar (bir tane için okuyabileceğiniz bir dosya sistemine sahiptir). Bir sürü harici sürücüyü sildiğinizi düşünün - muhtemelen asla monte edilmezler. çıkarmak, doğru olanı kullanmaktır.
James Moore,

1
Eğer hiç emin syncdeğilseniz, dışarı çıkarmadan önce
EkriirkE

Büyük, şişman UYARI: Bu tamamen doğru DEĞİLDİR. Bunu yapmazsanız, ejectUSB Aygıt Sürücüsü yine de (denemeye) devam edebilir umount. Bu, sürücüde bir durum LED'i varsa açıkça görülebilir. USB çubuğunu umountsonlandırdıktan hemen sonra yanmak, AFET İÇİNDİR.
ZioByte

77

Evet. Örneğin:

sudo eject /dev/sda

Burada mekanik fırlatma donanımı gerektirdiğini gösteren diğer cevaplar hatalı.

Çıkarma, çıkarma ile aynı şey değildir.

  1. Bir birimi çıkarırsanız, hemen geri takabilirsiniz, çünkü alttaki cihaz hala kullanılabilir durumdadır. Bazı durumlarda, bu bir güvenlik riski oluşturabilir. Aygıtı çıkardığınızda, yalnızca USB alt sisteminin sıfırlanması (örn. Yeniden başlatma) aygıtı yeniden yükleyecektir.
  2. Aygıtı çıkartarak, aygıta daha fazla erişimi etkili bir şekilde devre dışı bırakırsınız. Yalnızca USB alt sisteminin sıfırlanması (ör. Yeniden başlatma) cihazı yeniden yükleyecektir. Aksi takdirde, yeniden erişmek için USB aygıtını fiziksel olarak çıkarmanız ve yeniden takmanız gerekir.
  3. Çıkarmadan önce, bu komut takılı aygıttaki tüm birimleri çıkartacaktır.
  4. Birimler kullanımdaysa, bazı birimlerin bağlantısı kaldırılmış olabilir ve bazı birimler takılı kalabilir.

1
Ayrıca sudobu komutu bitirmek için kullanmak zorunda kaldım (tek yapması gereken dosyayı açamadığını söylemeden önce sürücünün bağlantısını kesmekti). Bunun dışında faydalı cevap.
GDP2

Bu konuda yetersiz takdir cevap. Sadece FAT32 monte edilmiş bir başparmak sürücüsüne bakın ve sökme ve çıkarma işleminin sadece dosya gezginde (yani: nautilus) yalnızca nasıl bir fark dünyasına sahip olduğunu görün. Basit bir Sansa klibi de bunu göstermeye yardımcı olacaktır.
Bulut

Lsusb yürütülürken cihaz hala mevcut. Yani tüm USB-Subsystem'ı sıfırlamanız gerekmez. Sadece cihaz yeterli. Bunu yapmak için usbreset kullanabilirsiniz github.com/jkulesza/usbreset github.com/CWempe/usbreset usbreset.c dosyalar her iki projelerde aynı olan,
Hannes

38

ejectçalışacak, ancak USB döner sürücülerle ilgili gerçekten "işi bitirmeyecek" .

Bir USB harici sabit sürücüyü düzgün bir şekilde çıkardıktan sonra çıkarmanın en iyi yolu :

udisks --detach /dev/sdb

Bu genellikle sürücünün incelikle dönmesine neden olur.

Tam olarak, mevcut uygulama :

  • SCSI senk-önbellek komutunu gönderir,
  • SCSI durdur komutu gönderir,
  • usb depolama çekirdeği sürücüsünün bağlantısını keser,
  • USB cihazını askıya alır (güç),
  • mantıksal olarak USB portundan çıkarır / kaldırır.

Bu işlem burada önerilen manuel işleme yakındır . İlk cevap askubuntu'daydı .

EDIT: Ayrıca, g.rocket işaret ettiği gibi , bu komut eşdeğer olabilir:

udisksctl power-off -b /dev/sdb

İsteğim udisksctlolmayan ubuntu onilimde var --detach. Bu durumda ne yapmalı? teşekkür ederim.
Wakan Tanka

@WakanTanka yükleyin udisks.
Totor,

Nasıl kurabilirim udisks? Benim sistemimde değil. Paketi buldum udisks2, ancak bu mümkün değildi udisksveya udisks2 mevcut değildi .
Martin Thoma

5
@WakanTanka udisksctl power-off -b /dev/sdwhateveraynı şeyi yapıyor gibi görünüyor.
g.Roket 30:16

@ g.rocket cevap buna göre güncellendi. Teşekkür ederim.
Totor,

8

Disk / dev / sdb'nin çıkarılması için el ile gerçekleştirilecek adımlar (sudo gerektirir):

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

Bu, cihazı tamamen kapatacak ve sistemden çıkaracaktır. Bağlantı kesilip yeniden takılana kadar bir daha algılanmaz.


2
FWIW bu, benim için harici bir USB şarj ünitesine sahip bir Xen dom0'da çalışan tek şey - çıkarma ve udisks komutları hatalar verdi.
Ganesh Sittampalam

1
Bunu arıyordum, dracut acil durum modundayım ve diğer işlevlerden hiçbirine erişimim yok. Teşekkürler!
Nassiel

hdparm -YSATA / IDE sürücüler için de kullanışlıdır.
Walf

6

Eject (1) man sayfasını dikkatlice okuduysanız , 4 çıkarma yöntemi olduğunu görebilirsiniz:

   -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'ye / SCSI'ye çıkarma çağırdığınızda , ioctl(fd, SG_IO, (void *)&io_hdr);komut verilir ( eject.ckaynaklardan kopyala ).

Bu, MS Windows veya MaxOSX'te aygıtı güvenle kaldırdığınızdan eşdeğerdir.

Bazı cihazlar için bunun özel bir anlamı vardır. Örneğin, çıkarma komutundan sonra Kindle 3 şarj moduna getirildi ve ekran kilitlenmeden önce cihazda gezinmeye izin verdi.

Başka bir yardımcı program da aynı şeyi yapar

scsi-spin --force --down /dev/sda

3

"Çıkartma" nın bir tepsi veya başka bir yükleme mekanizması olmayan donanım için bir anlamı yoktur (Teyp sürücüleri ile de çalıştığını farz ediyorum).

Ancak, harici bir USB flash sürücü ile test söyler ejectkadar gibi çalışır umount- Cihaz düğümleri kaybolur yapma yan etkisi olan, örneğin

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

Not /dev/sdc1kayboldu.


1
Bantlarla (ile hiç denemedim mt rewofflo da geri sarma, çünkü daha uygun olur), ama yok eski Mac'ler ve güneş iş istasyonları üzerinde bulunan gibi motorlu disket sürücüleri ile çalışır.
Alexios

@Alexios ilginç.
Renan,

3

Osx komut satırında kullanmanız gereken diskutil nerede ETİKET usb sürücü etikettir.

diskutil eject /Volumes/<LABEL>

2

udisks --detach /dev/sdXburada (X), usb cihazınızın son harfidir. Herhangi bir linux sisteminde iyi çalışıyor.


Cevabınız tamam, belki biraz kısa olsa da. Daha ayrıntılı tavsiye ediyorum: Bu komut neden vb önermek bu nedir, nasıl, ne yaptığını
user259412

0

Tamam, bunu daha iyi açıklamaya çalışacağım:

udisks komutu sisteme monteli komutuna monte edilmiş veya bağlanmış olan herhangi bir usb aygıtını tamamen kaldırır ve kapatır, yani sadece bölmeyi ayırın yani: dev / sdb1 veya ne olursa olsun, ancak sistemde hala usb var.

Yani aynı değil unmount, çıkarma ve ayırma

udisks = usb bağlantısını kapat

umount = sadece pendrive'ı değil, bölümü çıkarın

eject = aynı veya umount komutuna çok yakın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.