อะไรคือ Command Line ที่เทียบเท่ากับ“ Safely Remove Drive”


คำตอบ:


38

udisksคำสั่งมีแนวโน้มมากที่สุดสิ่งที่คุณกำลังมองหา

ในขณะที่sudo unmount /dev/sdXYจะใช้งานได้ udisks สามารถทำได้โดยไม่ได้รับอนุญาตระดับรูท (sudo)

หากคุณมีไดรฟ์/dev/sdXYติดตั้งโดยที่ X เป็นตัวอักษรแทนดิสก์ usb ของคุณและ Y คือหมายเลขพาร์ติชัน (โดยปกติคือ 1) คุณสามารถใช้คำสั่งต่อไปนี้เพื่อลบไดรฟ์อย่างปลอดภัย:

udisks --unmount /dev/sdXY
udisks --detach /dev/sdX

สำหรับตัวอย่างที่ใช้งานได้จริงถ้าฉันมีพาร์ติชั่น/dev/sdb1ติดตั้งอยู่ฉันจะเรียกใช้เพื่อยกเลิกการต่อเชื่อมและถอดออก:

udisks --unmount /dev/sdb1
udisks --detach /dev/sdb

ฉันเดิมพบนี้ผ่านคำถามนี้: https://superuser.com/a/430470/176493

ใช้ udisks2:

ในการกระจาย Ubuntu รุ่นใหม่ (ฉันไม่แน่ใจว่าเกิดอะไรขึ้นเมื่อสวิตช์), udisks2 จะถูกติดตั้งแทน udisks

ทำมิร์เรอร์คำสั่งด้านบนเพื่อ unmount และแยกดิสก์ด้วย udisks2:

udisksctl unmount -b /dev/sdXY
udisksctl power-off -b /dev/sdX

ตัวอย่างถ้าไดรฟ์ของฉันคือ/dev/sdb1:

udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb

ฉันได้รับDetach failed: Not Authorizedเมื่อฉันพยายามเรียกใช้โดยไม่มีสิทธิ์รูท (ไม่ใช่ปัญหาที่ร้ายแรง แต่เป็นการแก้ไขเล็กน้อย)
Jonathan Y.

Ubuntu รุ่นใดที่คุณใช้อยู่ นอกจากนี้คุณติดตั้งไดรฟ์ได้อย่างไร หากคุณติดตั้งใช้สิทธิ์ root หรือเมื่อเข้าสู่ระบบเป็นผู้ใช้รายอื่น (เมื่อเทียบกับ Nautilus หรือ udisks ในผู้ใช้ปัจจุบัน) udisksผู้ใช้ของคุณจะไม่ได้รับอนุญาตให้ยกเลิกการใช้
daboross

2
ใช่ฉันติดตั้งด้วยsudoแต่ฉันก็umountต้องพยายามก่อน--detachเช่นกัน เป็นการปล่อยเซิร์ฟเวอร์อูบุนตูที่น่าเชื่อถือ
Jonathan Y.

อ่าอาจจะมีความแตกต่างกับเซิร์ฟเวอร์ Ubuntu แล้ว การแยกทำงานไม่ได้รับอนุญาตรูทบนเดสก์ท็อปของฉัน
daboross

2
@morhook ดูคำตอบที่ปรับปรุงแล้วพร้อมการสนับสนุน udisks2!
daboross

20

เทียบเท่าแท้จริง Nautilus เมา / การดำเนินการยกเลิกการเชื่อมต่อเป็นและgvfs-mount -m -d /dev/ice /some/directory gvfs-mount -u /some/directoryสิ่งนี้ใช้ API เดียวกับที่ Nautilus ใช้ระบบไฟล์เสมือน GIO (gvfs) ซึ่งมีเครื่องมือต่าง ๆ ในการใช้บริการหลายอย่างเช่นจุดเชื่อมต่อเช่น smb, NFS, FTP, อุปกรณ์บล็อก ฯลฯ

หากต้องการระบุว่าอุปกรณ์ใดที่คุณต้องการเลิกเมานท์เพียงใช้อุปกรณ์gvfs-mount -lที่ควรจะเพียงพอ

โซลูชันนี้มีลักษณะเฉพาะที่ไม่ต้องการสิทธิ์ระดับสูงเนื่องจากทุกอย่างได้รับการจัดการโดยบริการ umount / gvfsd / polkit ซึ่งคล้ายกับพฤติกรรมของ Nautilus ต่อไป


2
นี่ดูเหมือนจะเป็นคำตอบที่ถูกต้องที่สุด แม้ว่าเราหลายคนจะเคยคิดถึงudisks(แนะนำในคำตอบอื่น ๆ ) เป็น "วิธีการ" ผู้ใช้ที่ไม่ใช่รูทเมานท์และ unmount ดิสก์ที่ถอดออกได้บนเดสก์ท็อปตามที่ระบุไว้ที่นี่gvfs-mountอาจใช้กลไกอื่น ๆ (ในระบบ Ubuntu MATE Utopic ของฉันแพ็คเกจ udisks ยังไม่ได้ติดตั้ง)
Eliah Kagan

1
Ubuntu 18.40 gioนั้นใช้แทน gvfs-mount ได้
studog

12

เมื่อคุณรู้ว่าอุปกรณ์อาจใช้dfข้อมูลใน@rcpao answerวิธีที่ดีที่สุดในการ "eject" ดิสก์คือ imho โดยใช้คำสั่งเดียวกับที่ใช้อินเทอร์เฟซแบบกราฟิก:

udisksctl unmount --block-device /dev/sdc1

ฉันมีสคริปต์ที่จะสำรองข้อมูลไปยังดิสก์ที่ฉันรู้ว่าจะติดตั้งภายใต้/media/romano/movlinและหลังจากการสำรองข้อมูลฉัน:

sync
udisksctl unmount -b $(mount | grep movlin   | cut -d" "  -f1)

ในที่นี้mount | grep movlin | cut -d" " -f1จะแตกอุปกรณ์ที่ติดตั้งภายใต้ป้ายกำกับ "movlin" ( /dev/sdc1ในกรณีนั้น) จากนั้นจะยกเลิกการต่อเชื่อม


จำเป็นหรือไม่ที่syncจะต้องรันด้วยตนเองก่อน udisksctl unmount
Eliah Kagan

อาจจะไม่. แต่ฉันไม่แน่ใจเกี่ยวกับพฤติกรรมที่ถูกต้องของแคชโดยทั่วไป บางครั้งฉันรู้สึกว่าไดรฟ์ USB ยังคงกระพริบหลังจากที่ติดตั้ง ... ในไม่กี่วินาที ปล่อยให้มันบอกว่ามันเป็นเศษเล็กเศษน้อยของเดิมsync; sync; sync && poweroff...
Rmano

@Rmano ฉันเห็นการกะพริบของแฟลชไดรฟ์ที่ไม่ได้ต่อเชื่อม (มักทำผ่าน gui ภายใต้ KDE) หลายครั้ง ฉันพยายามรอก่อนที่จะถอดปลั๊ก สิ่งนี้ดูเหมือน (ต่อตาที่ไม่ได้รับการฝึกฝนของฉัน) เหมือนมีบางอย่างไม่ถูกต้อง มันจะยิ่งแย่ลงเมื่อใช้แฟลชไดรฟ์ที่ไม่มีไฟแสดงสถานะกิจกรรม
Joe

1
Rmano เนื่องจากudisksไม่มีอยู่ใน Ubuntu udisksctlเป็นค่าเริ่มต้นอีกต่อไปอาจเป็นทางออกที่ต้องการ udisksctl power-off --block-device /dev/sdcปิดไฟบน USB แฟลชไดรฟ์ภายนอกดังนั้นจึงอาจเหมาะสมเป็นคำสั่งถัดไปที่จะติดตามคุณ
H2ONaCl

8
  1. df เพื่อค้นหาจุดเชื่อมต่อของแฟลชไดรฟ์ของคุณ

    rcpao@bun:~$ df
    Filesystem                   1K-blocks       Used  Available Use% Mounted on
    /dev/mapper/ubuntu--vg-root 1916153032  658404668 1160390336  37% /
    none                                 4          0          4   0% /sys/fs/cgroup
    udev                          16438692          4   16438688   1% /dev
    tmpfs                          3289976       2156    3287820   1% /run
    none                              5120          0       5120   0% /run/lock
    none                          16449860      18768   16431092   1% /run/shm
    none                            102400         48     102352   1% /run/user
    /dev/sda1                       240972      98990     129541  44% /boot
    /dev/sdc1                     60915712      20992   60894720   1% /media/rcpao/SD024-64GB
    
  2. ถอนติดตั้งโดยใช้ / dev / sdc1 หรือ / media / rcpao / SD024-64GB

    rcpao@bun:~$ sudo umount /dev/sdc1
    [sudo] password for rcpao: 
    rcpao@bun:~$
    

    หรือ

    rcpao@bun:~$ sudo umount /media/rcpao/SD024-64GB
    [sudo] password for rcpao: 
    rcpao@bun:~$
    
  3. คุณควรเห็นไอคอนนำออกของแฟลชไดรฟ์หายไปในหอยโข่งทันทีที่เสร็จสิ้นการติดตั้ง


2
dfดูมีประโยชน์มากสำหรับการระบุตำแหน่งของอุปกรณ์
H2ONaCl

2
สำหรับแฟลชไดรฟ์นี่ถือว่าสมเหตุสมผล สำหรับดิสก์ไดรฟ์ "Safely Remove" ก็จะหมุนลงเช่นกันซึ่งวิธีนี้ไม่ได้ทำ (ดูคำตอบของ DaboRoss สำหรับคำตอบนั้น)
Nate Eldredge

3
ใช่udisks --detachมีประโยชน์สำหรับการถอดไดรฟ์ออกอย่างสมบูรณ์หลังจากถอนติดตั้ง
daboross

1
dfและumountเป็นยูทิลิตี้ UNIX มาตรฐาน เป็นการดีที่จะรู้จักพวกเขาเพราะสิ่งเหล่านี้จะได้ผลเสมอในขณะที่udisksขึ้นอยู่กับdbusและudisksd ที่กำลังทำงานอยู่
Simon Richter

1
@NateEldredge: "สำหรับแฟลชไดรฟ์นี่เป็นเหตุผลที่ ... " - จริง ๆ แล้วมันไม่ได้และฉันลงคะแนนด้วยเหตุผลนี้: เมื่อปีที่แล้วฉันต้องทำการปรับใช้แอป qa และใช้คำสั่งอย่างรวดเร็วตามบรรทัด cp /path/to /drive && umount driveของ แฟลชไดรฟ์ 2 ตัวนี้ (ชั่วคราว) ไม่สามารถเขียนได้จนกว่าฉันจะรู้ว่ามันเป็นคำสั่งที่ทำให้เกิด การใช้งาน "สแกนและซ่อมแซม" บนเครื่อง Windows จะแก้ไขไดรฟ์ คำตอบของ DaboRoss ด้านล่างนั้นปลอดภัยกว่ามาก
Andy E

2

ejectจากแพ็คเกจดีดออก :

sudo eject /dev/sdX

ปรากฏขึ้นumountทุกพาร์ติชันและทำให้อุปกรณ์อยู่ในสถานะที่คุณต้องลบและใส่กลับเข้าไปใหม่เพื่อประกอบใหม่


สำหรับแอปพลิเคชั่นเพียงไม่กี่คำสั่ง eject นี้เป็นวิธีที่ดีที่สุด คำตอบอื่น ๆ ส่วนใหญ่เป็น "ดีพอ" แต่ในทางเทคนิคแล้วไอคอนนำออกบน Nautalis ไม่ได้ทำสิ่งต่าง ๆ เช่นการปิดอุปกรณ์ ในประสบการณ์ของฉันดีดแผ่นดิสก์อยู่ใกล้กับฟังก์ชั่นของปุ่ม eject usb เอง หากคุณต้องการหลีกเลี่ยง sudo คุณสามารถเพิ่มตัวคุณเองในกลุ่มดิสก์ (ต้องออกจากระบบและลงชื่อเข้าใช้) คำสั่งสำหรับสิ่งนี้คือ "ดิสก์ผู้ใช้ sudo adduser"
SpiRail
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.