USB ड्राइव / बेदखल आदेश निकालें


55

मुझे पता है कि ejectकमांड का उपयोग लगभग किसी भी हार्डवेयर घटक को निकालने के लिए किया जा सकता है, लेकिन क्या इसका उपयोग यूएसबी ड्राइव को बाहर करने के लिए किया जा सकता है?

क्या USB ड्राइव और बाहरी HDD को ejectकमांड से बाहर निकालना संभव है ?


3
संबंधित: के विपरीत eject /dev/sdXहै sg_start -s /dev/sdX(से sg3_utilsपैकेज), दोनों SCSI डिवाइस के लिए भेजने के लिए आदेश का उपयोग करें।
यति

जवाबों:


15

नहीं और न ही उन्हें होने की जरूरत है; ejectऑप्टिकल ड्राइव खोलने के लिए उपयोग किया जाता है, जहां कोई मीडिया को सीधे नहीं खींच सकता है।

USB / eSATA / etc के लिए अनमाउंटिंग पर्याप्त है। भंडारण उपकरणों।


हम्म, मैंने कहीं पर / देव / sda के रूप में hdd को देखा। मुझे लगता है कि संदर्भ तब गलत था।
जो बर

आप इसे कर सकते हैं, लेकिन यह आमतौर पर बहुत कुछ नहीं करता है अगर कुछ भी।
इग्नासियो वाज़केज़-अब्राम्स

1
यह मानता है कि डिवाइस पहले स्थान पर लगाया गया है, और यह मान्यताओं के एक और बड़े सेट के साथ किया जाता है (यह एक फाइलसिस्टम है जिसे आप पढ़ सकते हैं, एक के लिए)। कल्पना कीजिए कि आप बाहरी ड्राइव का एक गुच्छा मिटा रहे हैं - वे शायद कभी माउंट नहीं होते हैं। बेदखल करना सही बात है।
जेम्स मूर

1
अगर मैं कभी भी अनिश्चित हूं, तो मैं syncइसे बाहर करने से पहले
एक्रीकी

बड़ा, मोटा चेतावनी: यह पूरी तरह से सच नहीं है। यदि आप ejectइसे अंतर्निहित नहीं करते हैं तो USB डिवाइस ड्राइवर अभी भी लिख सकता है (कोशिश करें) AFTER umountवापस आ गया है। यह स्पष्ट रूप से देखा जा सकता है कि क्या ड्राइव में स्थिति एलईडी है। umountटर्मिनेशन के बाद USB स्टिक को यैंकिंग करना RECIPE FOR DISASTER है।
ZioByte

77

हाँ। उदाहरण के लिए:

sudo eject /dev/sda

यहां अन्य उत्तर जो इंगित करते हैं कि आपको मैकेनिकल इजेक्शन हार्डवेयर की आवश्यकता है, गलत हैं।

बेदखल करना बेदखल करने जैसी बात नहीं है।

  1. यदि आप एक वॉल्यूम अनमाउंट करते हैं, तो आप तुरंत इसे वापस माउंट कर सकते हैं, क्योंकि अंतर्निहित डिवाइस अभी भी उपलब्ध है। कुछ स्थितियों में, यह सुरक्षा जोखिम पेश कर सकता है। डिवाइस को अस्वीकार करके, केवल USB सबसिस्टम (जैसे एक रिबूट) का एक रीसेट डिवाइस को फिर से लोड करेगा।
  2. डिवाइस को बेदखल करके, आप प्रभावी रूप से डिवाइस के किसी भी आगे पहुंच को अक्षम करते हैं। केवल USB सबसिस्टम का रीसेट (जैसे एक रिबूट) डिवाइस को फिर से लोड करेगा। अन्यथा, आपको USB डिवाइस को भौतिक रूप से डिस्कनेक्ट करना होगा और इसे फिर से एक्सेस करने के लिए इसे फिर से कनेक्ट करना होगा।
  3. अस्वीकार करने से पहले, यह कमांड उस डिवाइस पर सभी संस्करणों को अनमाउंट करेगा जो माउंट किए गए थे।
  4. यदि वॉल्यूम उपयोग में हैं, तो यह कमांड अनमाउंट के साथ विफल हो जाएगा, सिवाय इसके कि कुछ वॉल्यूम अनमाउंट किए जा सकते हैं और कुछ वॉल्यूम माउंट किए जा सकते हैं।

1
sudoइस कमांड को समाप्त करने के लिए मुझे भी इसका इस्तेमाल करना पड़ा (यह कहने से पहले कि यह फाइल को खोलने में असमर्थ था ड्राइव को अनमाउंट करें)। इसके अलावा, उपयोगी जवाब।
जीडीपी 2

इस धागे में अंडर-प्रशंसित उत्तर। बस एक FAT32 माउंटेड थंब ड्राइव को देखें, और ध्यान दें कि कैसे केवल फ़ाइल एक्सप्लोरर (यानी: नॉटिलस) में अकेले और बेदखल करने वाले अंतर में अंतर होता है। एक साधारण सांसा क्लिप भी इसे प्रदर्शित करने में मदद करेगा।
क्लाउड

Lsusb निष्पादित करते समय डिवाइस अभी भी मौजूद है। इसलिए आपको पूरे USB- सबसिस्टम को रीसेट करने की आवश्यकता नहीं है। बस उपकरण पर्याप्त है। ऐसा करने के लिए उपयोग कर सकते हैं usbreset github.com/jkulesza/usbreset github.com/CWempe/usbreset usbreset.c फ़ाइलें दोनों परियोजनाओं में हूबहू कर रहे हैं,
हैनेस

मुझे कैसे पता चलेगा कि "एसडीए" सही है? क्या मैं sda, sdb, इत्यादि को वास्तविक डिवाइस नामों से मैप कर सकता हूं?
जुरगेन के

38

ejectकाम करेगा, लेकिन वास्तव में यूएसबी घूर्णन ड्राइव के बारे में "काम खत्म" नहीं करेगा ।

एक USB बाहरी हार्ड-ड्राइव को अनप्लग करने का सबसे अच्छा तरीका है, उचित अनमाउंटिंग के बाद , यह है:

udisks --detach /dev/sdb

यह आमतौर पर ड्राइव को इनायत से नीचे गिराने का कारण बनता है।

संक्षेप में, वर्तमान कार्यान्वयन :

  • SCSI सिंक-कैश कमांड भेजता है,
  • SCSI स्टॉप कमांड भेजता है,
  • यूएसबी-स्टोरेज कर्नेल ड्राइवर को unbinds,
  • USB डिवाइस (पावर) को निलंबित करता है,
  • तार्किक रूप से इसे अपने USB पोर्ट से निष्क्रिय / हटा देता है।

यह प्रक्रिया उस मैन्युअल प्रक्रिया के करीब है जो यहां सुझाई गई है । प्रारंभिक उत्तर आस्कुबंटु पर था ।

EDIT: इसके अलावा, जैसा कि g.rocket बताते हैं, यह आदेश समतुल्य हो सकता है:

udisksctl power-off -b /dev/sdb

मेरे ubuntu onyl पर udisksctlजिसमें --detachotion नहीं है उपलब्ध है। इस मामले में क्या करना है? धन्यवाद।
वकान तन्खा

आप स्थापित करें udisks
टोटर

मैं कैसे स्थापित कर सकता हूं udisks? यह मेरे सिस्टम पर नहीं है। मुझे पैकेज मिला udisks2, लेकिन वह बना udisksया udisks2 उपलब्ध नहीं था ।
मार्टिन थोमा

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
एफडब्ल्यूआईडब्ल्यू यह एकमात्र ऐसी चीज है जो एक्सएम डोम 0 में मेरे लिए बाहरी यूएसबी क्रैडल के साथ काम करती है - बेदखल और यूडिक्क्स कमांड ने त्रुटियां दीं।
जीएस -

1
मैं इस के लिए खोज कर रहा था, मैं drakut आपातकालीन मोड में हूं और मेरे पास अन्य कार्यों में से कोई भी नहीं है। धन्यवाद!
नासील

hdparm -YSATA / IDE ड्राइव के लिए भी उपयोगी है।
वालफ

6

यदि आप ध्यान से इजेक्शन (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.

जब आप एचडीडी / एससीएसआई पर बेदखल करते हैं तो यह ioctl(fd, SG_IO, (void *)&io_hdr);कमांड ( eject.cस्रोतों से कॉपी ) जारी करता है।

यह बराबर है क्योंकि आप MS Windows या MaxOSX में डिवाइस को सुरक्षित रूप से हटा देते हैं।

कुछ उपकरणों के लिए इसका विशेष मतलब है। उदाहरण के लिए इजेले कमांड के बाद किंडल 3 को चार्जिंग मोड में ले जाया जा रहा है और डिवाइस पर ब्राउजिंग की अनुमति है, जबकि स्क्रीन लॉक होने से पहले।

एक और यूटिलिटीज भी ऐसा ही करती है

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

3

"इजेक्टिंग" का ट्रे या अन्य लोडिंग तंत्र के बिना हार्डवेयर के लिए कोई अर्थ नहीं है (मुझे लगता है कि यह टेप ड्राइव के साथ भी काम करता है)।

हालांकि, बाहरी यूएसबी फ्लैश ड्राइव के साथ परीक्षण बताता है कि ejectबहुत काम करता है umount- जैसे कि डिवाइस नोड्स गायब होने के साइड इफेक्ट के साथ, जैसे

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

ध्यान दें कि /dev/sdc1गायब हो गया है।


1
इसे टेप के साथ कभी भी आज़माया नहीं गया ( mt rewofflयह अधिक सुविधाजनक है क्योंकि यह भी याद दिलाता है), लेकिन यह पुराने मैक और सन वर्कस्टेशन पर पाए जाने वाले मोटर चालित फ्लॉपी ड्राइव के साथ काम करता है
अलेक्सियो

@ एलेक्सियो दिलचस्प।
रेनन


2

udisks --detach /dev/sdXजहाँ (X) आपके USB डिवाइस का अंतिम अक्षर है। यह किसी भी लिनक्स सिस्टम पर ठीक काम करता है।


आपका उत्तर ठीक है, हालाँकि शायद यह थोड़ा छोटा है। मैं अधिक विस्तार से
बताने का

0

ठीक है, मैं इसे बेहतर तरीके से समझाने की कोशिश करूंगा:

udisks कमांड पूरी तरह से हटा देते हैं और सिस्टम से जुड़े किसी भी usb डिवाइस को पूरी तरह से हटा देते हैं या सिस्टम से जोड़ देते हैं, बस पार्टीशन को अनमाउंट करते हैं यानी: dev / sdb1 या जो भी लेकिन usb अभी भी सिस्टम में मौजूद है।

तो वही अदम्य, बेदखल और अलग नहीं है

udisks = usb से बिजली

umount = बस विभाजन को पूरा नहीं करें पूरे पेनड्राइव को अनमाउंट करें

eject = समान या umount कमांड के बहुत करीब

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.