जवाबों:
नहीं और न ही उन्हें होने की जरूरत है; ejectऑप्टिकल ड्राइव खोलने के लिए उपयोग किया जाता है, जहां कोई मीडिया को सीधे नहीं खींच सकता है।
USB / eSATA / etc के लिए अनमाउंटिंग पर्याप्त है। भंडारण उपकरणों।
syncइसे बाहर करने से पहले
ejectइसे अंतर्निहित नहीं करते हैं तो USB डिवाइस ड्राइवर अभी भी लिख सकता है (कोशिश करें) AFTER umountवापस आ गया है। यह स्पष्ट रूप से देखा जा सकता है कि क्या ड्राइव में स्थिति एलईडी है। umountटर्मिनेशन के बाद USB स्टिक को यैंकिंग करना RECIPE FOR DISASTER है।
हाँ। उदाहरण के लिए:
sudo eject /dev/sda
यहां अन्य उत्तर जो इंगित करते हैं कि आपको मैकेनिकल इजेक्शन हार्डवेयर की आवश्यकता है, गलत हैं।
बेदखल करना बेदखल करने जैसी बात नहीं है।
sudoइस कमांड को समाप्त करने के लिए मुझे भी इसका इस्तेमाल करना पड़ा (यह कहने से पहले कि यह फाइल को खोलने में असमर्थ था ड्राइव को अनमाउंट करें)। इसके अलावा, उपयोगी जवाब।
ejectकाम करेगा, लेकिन वास्तव में यूएसबी घूर्णन ड्राइव के बारे में "काम खत्म" नहीं करेगा ।
एक USB बाहरी हार्ड-ड्राइव को अनप्लग करने का सबसे अच्छा तरीका है, उचित अनमाउंटिंग के बाद , यह है:
udisks --detach /dev/sdb
यह आमतौर पर ड्राइव को इनायत से नीचे गिराने का कारण बनता है।
संक्षेप में, वर्तमान कार्यान्वयन :
यह प्रक्रिया उस मैन्युअल प्रक्रिया के करीब है जो यहां सुझाई गई है । प्रारंभिक उत्तर आस्कुबंटु पर था ।
EDIT: इसके अलावा, जैसा कि g.rocket बताते हैं, यह आदेश समतुल्य हो सकता है:
udisksctl power-off -b /dev/sdb
udisksctlजिसमें --detachotion नहीं है उपलब्ध है। इस मामले में क्या करना है? धन्यवाद।
udisks।
udisks? यह मेरे सिस्टम पर नहीं है। मुझे पैकेज मिला udisks2, लेकिन वह बना udisksया udisks2 उपलब्ध नहीं था ।
udisksctl power-off -b /dev/sdwhateverएक ही काम करता है।
अनमाउंटिंग डिस्क / dev / sdb के लिए मैनुअल स्टेप्स (sudo की आवश्यकता है):
echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete
यह डिवाइस को पूरी तरह से पावर-ऑफ कर देगा और सिस्टम से अलग कर देगा। इसे फिर से पता नहीं लगाया जाएगा जब तक कि इसे डिस्कनेक्ट और पुनः संलग्न नहीं किया जाता है।
hdparm -YSATA / IDE ड्राइव के लिए भी उपयोगी है।
यदि आप ध्यान से इजेक्शन (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
"इजेक्टिंग" का ट्रे या अन्य लोडिंग तंत्र के बिना हार्डवेयर के लिए कोई अर्थ नहीं है (मुझे लगता है कि यह टेप ड्राइव के साथ भी काम करता है)।
हालांकि, बाहरी यूएसबी फ्लैश ड्राइव के साथ परीक्षण बताता है कि ejectबहुत काम करता है umount- जैसे कि डिवाइस नोड्स गायब होने के साइड इफेक्ट के साथ, जैसे
% ls /dev/sdc*
/dev/sdc /dev/sdc1
% sudo eject /dev/sdc
% ls /dev/sdc*
/dev/sdc
ध्यान दें कि /dev/sdc1गायब हो गया है।
mt rewofflयह अधिक सुविधाजनक है क्योंकि यह भी याद दिलाता है), लेकिन यह पुराने मैक और सन वर्कस्टेशन पर पाए जाने वाले मोटर चालित फ्लॉपी ड्राइव के साथ काम करता है ।
ओएसएक्स कमांड लाइन में आपको डिस्कुटिल का उपयोग करना चाहिए जहां LABEL आपके यूएसबी ड्राइव का लेबल है।
diskutil eject /Volumes/<LABEL>
ठीक है, मैं इसे बेहतर तरीके से समझाने की कोशिश करूंगा:
udisks कमांड पूरी तरह से हटा देते हैं और सिस्टम से जुड़े किसी भी usb डिवाइस को पूरी तरह से हटा देते हैं या सिस्टम से जोड़ देते हैं, बस पार्टीशन को अनमाउंट करते हैं यानी: dev / sdb1 या जो भी लेकिन usb अभी भी सिस्टम में मौजूद है।
तो वही अदम्य, बेदखल और अलग नहीं है
udisks = usb से बिजली
umount = बस विभाजन को पूरा नहीं करें पूरे पेनड्राइव को अनमाउंट करें
eject = समान या umount कमांड के बहुत करीब
eject /dev/sdXहैsg_start -s /dev/sdX(सेsg3_utilsपैकेज), दोनों SCSI डिवाइस के लिए भेजने के लिए आदेश का उपयोग करें।