Câu trả lời:
Các udisks
lệnh rất có thể những gì bạn đang tìm kiếm.
Trong khi sudo unmount /dev/sdXY
sẽ hoạt động, udisks có thể làm điều này mà không cần quyền gốc (sudo).
Nếu bạn có một ổ đĩa /dev/sdXY
, được gắn kết, trong đó X là một chữ cái đại diện cho đĩa usb của bạn và Y là số phân vùng (thường là 1), bạn có thể sử dụng các lệnh sau để xóa ổ đĩa một cách an toàn:
udisks --unmount /dev/sdXY
udisks --detach /dev/sdX
Đối với một ví dụ thực tế, nếu tôi có phân vùng /dev/sdb1
được gắn kết, tôi sẽ chạy nó để ngắt kết nối và tách nó ra:
udisks --unmount /dev/sdb1
udisks --detach /dev/sdb
Ban đầu tôi đã tìm thấy điều này thông qua câu hỏi này: https://superuser.com/a/430470/176493 .
Trong các bản phân phối Ubuntu mới hơn (tôi không chắc chắn khi nào chuyển đổi xảy ra), udisks2 được cài đặt thay vì udisks.
Phản chiếu các lệnh trên, để ngắt kết nối và tách đĩa bằng udisks2:
udisksctl unmount -b /dev/sdXY
udisksctl power-off -b /dev/sdX
Ví dụ nếu ổ đĩa của tôi là /dev/sdb1
:
udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb
Detach failed: Not Authorized
khi tôi cố gắng chạy nó mà không có quyền root. (Không phải là một vấn đề nghiêm trọng, nhưng là một sự điều chỉnh nhỏ.)
udisks
.
sudo
, nhưng tôi cũng umount
ed trước khi cố gắng --detach
. Đây là một bản phát hành đáng tin cậy của máy chủ Ubuntu.
Thực tế tương đương với hoạt động Nautilus Mount / Unmount là gvfs-mount -m -d /dev/ice /some/directory
và gvfs-mount -u /some/directory
. Điều này sử dụng cùng API mà Nautilus sử dụng, hệ thống tệp ảo GIO (gvfs), cung cấp các công cụ khác nhau để sử dụng một số dịch vụ như điểm gắn kết, chẳng hạn như smb, NFS, FTP, thiết bị khối, v.v.
Để xác định thiết bị nào bạn cần ngắt kết nối, chỉ cần sử dụng gvfs-mount -l
thiết bị nào là đủ.
Giải pháp này có một điểm đặc biệt là nó không yêu cầu quyền nâng cao, vì mọi thứ được quản lý bởi các dịch vụ umount / gvfsd / polkit, điều này giống với hành vi của Nautilus hơn.
udisks
(được đề xuất trong các câu trả lời khác) là "cách" người dùng không root gắn kết và ngắt kết nối các đĩa di động trên máy tính để bàn, như đã nêu ở đây gvfs-mount
có thể sử dụng các cơ chế khác. (Trên hệ thống Utopic Ubuntu MATE của tôi, gói udisks thậm chí chưa được cài đặt.)
gio
sự thay thế cho gvfs-mount.
Khi bạn biết thiết bị, có thể sử dụng df
thông tin như trong câu trả lời @rcpao , cách tốt nhất để "đẩy" đĩa là, imho, sử dụng cùng một lệnh mà giao diện đồ họa đang sử dụng:
udisksctl unmount --block-device /dev/sdc1
Tôi có một kịch bản để làm một bản sao lưu vào một đĩa mà tôi biết sẽ gắn dưới /media/romano/movlin
, và sau khi sao lưu Tôi làm:
sync
udisksctl unmount -b $(mount | grep movlin | cut -d" " -f1)
Ở đây, mount | grep movlin | cut -d" " -f1
sẽ trích xuất thiết bị được gắn dưới nhãn "Movlin", (sẽ nằm /dev/sdc1
trong trường hợp đó), và sau đó nó sẽ ngắt kết nối thiết bị.
sync
trước udisksctl unmount
?
sync; sync; sync && poweroff
...
udisks
không còn xuất hiện theo mặc định trong Ubuntu udisksctl
có thể là một giải pháp ưa thích. udisksctl power-off --block-device /dev/sdc
tắt đèn trên ổ USB Flash ngoài để nó có thể phù hợp làm lệnh tiếp theo để theo dõi bạn.
df để tìm điểm gắn kết của ổ đĩa flash của bạn.
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
Ngắt kết nối bằng cách sử dụng / dev / sdc1 hoặc / media / rcpao / SD024-64GB.
rcpao@bun:~$ sudo umount /dev/sdc1
[sudo] password for rcpao:
rcpao@bun:~$
hoặc là
rcpao@bun:~$ sudo umount /media/rcpao/SD024-64GB
[sudo] password for rcpao:
rcpao@bun:~$
Bạn sẽ có thể thấy biểu tượng đẩy của ổ flash biến mất trong nautilus ngay sau khi kết thúc.
df
trông rất hữu ích để xác định vị trí của thiết bị.
udisks --detach
rất hữu ích cho việc tách ổ đĩa hoàn toàn sau khi ngắt kết nối.
df
và umount
là các tiện ích UNIX tiêu chuẩn. Luôn luôn là tốt để biết họ, bởi vì những điều này sẽ luôn hoạt động, trong khi udisks
phụ thuộc vào dbus và một udisksd đang chạy .
cp /path/to /drive && umount drive
. Điều này khiến 2 ổ flash (tạm thời) không thể nhận ra cho đến khi tôi nhận ra đó là lệnh gây ra nó. Chạy "Quét & sửa chữa" trên máy Windows đã sửa các ổ đĩa. Câu trả lời của DaboRoss dưới đây an toàn hơn nhiều.
eject
từ gói đẩy :
sudo eject /dev/sdX
xuất hiện cho umount
tất cả các phân vùng và đặt thiết bị ở trạng thái mà bạn phải xóa và gắn lại thiết bị để kết nối lại.