Đẩy / loại bỏ an toàn vs umount


43

Tôi đang sử dụng Ubuntu 12.04 và khi tôi nhấn vào biểu tượng ổ đĩa flash của mình (trong thanh bên trái Unity), tôi nhận được hai tùy chọn khiến tôi bối rối: đẩy ragỡ bỏ an toàn .
Gần hơn tôi đã đi đến một câu trả lời là chủ đề diễn đàn này , kết luận rằng (đối với một ổ đĩa flash) cả hai đều bằng nhau và cũng tương đương với việc sử dụng umountlệnh. Tuy nhiên, khẳng định cuối cùng này dường như là sai.
Nếu tôi sử dụng umounttừ bảng điều khiển để ngắt kết nối đèn flash của mình, và sau đó tôi sử dụng lệnh lsblk, tôi vẫn thấy thiết bị của mình (tất nhiên không có gì trong MOUNTPOINT). Mặt khác, nếu tôi đẩy hoặc gỡ bỏ ổ đĩa flash một cách an toàn , lsblksẽ không liệt kê nó nữa.

Vì vậy, câu hỏi của tôi là, lệnh / lệnh điều khiển nào thực sự tái tạo hành vi đẩy raloại bỏ một cách an toàn ?


3
Bạn có thể tìm thấy tệp .desktop cho biểu tượng bên dưới /usr/share/applications/hoặc đại loại như thế. Nếu bạn mở nó trong trình soạn thảo văn bản, trường Exec = ... tương ứng với lệnh chạy khi bạn nhấp vào nó.
gameufo

Câu trả lời:


64

Nếu bạn đang sử dụng systemdthì hãy sử dụng udisksctltiện ích với power-offtùy chọn:

tắt nguồn

Sắp xếp cho ổ đĩa được gỡ bỏ an toàn và tắt nguồn. Về phía hệ điều hành, điều này bao gồm việc đảm bảo rằng không có quá trình nào đang sử dụng ổ đĩa, sau đó yêu cầu bộ đệm và bộ đệm trong chuyến bay được cam kết lưu trữ ổn định.

Tôi muốn giới thiệu trước tiên để ngắt kết nối tất cả các hệ thống tập tin trên usb đó. Điều này cũng có thể được thực hiện với udisksctl, vì vậy các bước sẽ là:

udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda

Nếu bạn không sử dụng systemdthì tốt udisksnên làm việc:

udisks --unmount /dev/sda1
udisks --detach /dev/sda

Ôi trời - tôi chỉ nhận ra câu hỏi là làm thế nào để thực hiện điều này từ dòng lệnh - không phải là sự khác biệt giữa thứ này và thứ khác. Tôi sẽ không xóa câu trả lời của mình vì tôi nghĩ rằng nó cung cấp một số quan điểm - nhưng bạn là câu trả lời đúng cho các hệ thống linux, tôi nghĩ (thậm chí không biết đây có phải là một câu hỏi liên quan đến bsd không ...) .
mikeerv

4
udisksctl power-offdường như không tương đương với "loại bỏ an toàn" trong trường hợp của tôi. Với thẻ micro-SD trong đầu đọc thẻ nội bộ, thiết bị của tôi /dev/sdd, không có hệ thống tập tin được gắn, khi tôi sử dụng lệnh udisksctl power-off -b /dev/sdd, đèn LED của trình đọc sẽ tắt, nhưng sau đó toàn bộ thiết bị không thể hoạt động, tôi đoán vì nó hoàn toàn tắt nguồn. Tôi phải khởi động lại hệ thống để nó có thể sử dụng lại được.
ack

1
Đối với @ack: bạn có thể tắt / bật trung tâm (có thể bên trong) nơi trình đọc được kết nối. Bởi vì đó là một trung tâm, nó cũng sẽ thả và sau đó liệt kê lại mọi thứ, kể cả thiết bị còn thiếu. Hy vọng bạn có thể đọc ví dụ này: udisksctl power-off -b /dev/mmcblk0mmc0: card aaaa đã xóa usb 3-1.8: Ngắt kết nối USB, số thiết bị 41 cd /sys/bus/usb/devices/usb3/3-1 echo 0 > authorized echo 1 > authorizedhub 3-1: 1.0: Hub USB tìm thấy usb 3-1: được phép kết nối usb 3-1.8: Đã tìm thấy thiết bị USB mới , idVendor = 0bda, idSản phẩm = 0129 mmc0: thẻ SDHC SDR50 tốc độ cực cao mới tại địa chỉ aaaa
AB

14

umountlà hoàn toàn an toàn cho đĩa. Sau khi hoàn thành, bạn đã ngắt kết nối thành công hệ thống tập tin và bạn không cần phải lo lắng về những dòng đó. Sự khác biệt chính giữa đẩyumountkhông liên quan đến đĩa - thay vào đó là về đầu ra nguồn 5v của cổng USB.

Sau khi umountbạn vẫn có thể thấy đĩa của mình được liệt kê lsblkvì nó vẫn được bật và đính kèm. umounthệ thống tệp của đĩa cứng nội bộ và bạn sẽ thấy hành vi tương tự vì lý do tương tự. Nhưng khi bạn đẩy một thiết bị USB, bạn tắt nguồn thiết bị và nó sẽ ngừng rút 5v thông thường - tôi nghĩ rằng nó đã giảm xuống còn 0,55 nhưng lớp đó đã xảy ra cách đây rất lâu.

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
NAME   FSTYPE LABEL   UUID                                 MOUNTPOINT
sdd                                                        
├─sdd1 vfat   USBESP  3AD6-C7CC                            
└─sdd2 ext4   USBROOT 5afbfe93-6955-44ec-8c4f-cf381f8ef174 

Đây là đường dẫn xe buýt usb của nó ...

cat /sys/bus/usb/devices/5-3/manufacturer 
SanDisk

Mặc dù tôi gần như không bao giờ gắn nó, nó đã được cắm và nhấp nháy trong một thời gian dài, tôi đoán ...

cat /sys/bus/usb/devices/5-3/power/{level,connected_duration}
on
1777877440

Tôi nên làm gì đó về điều đó:

echo 1 | sudo tee /sys/bus/usb/devices/5-3/remove                                      

Bây giờ tôi sẽ xem lại ...

cat /sys/bus/usb/devices/5-3/power/level                            
cat: /sys/bus/usb/devices/5-3/power/level: No such file or directory

Ừm ...

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
lsblk: /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0: not a block device

1
Cảm ơn. Sau umountmột hdd bên ngoài, có an toàn để loại bỏ hdd bên ngoài khỏi máy tính không?
Tim

1
Tôi không nghĩ umountlà tương đương với "loại bỏ một cách an toàn", và cũng không udisksctl power-off, xin vui lòng xem nhận xét của tôi về câu trả lời khác. So sánh với hành vi trong Windows chẳng hạn. Tôi đoán là Windows làm được nhiều hơn một chút so với việc "ngắt kết nối" các hệ thống tập tin trên thiết bị. Tôi đã quan sát thấy nó quay xuống ổ cứng ngoài, tắt đèn LED trên đầu đọc thẻ ( sau đó không khiến thiết bị không sử dụng được trừ khi được cắm lại hoặc hệ thống khởi động lại), v.v.
ack

2
@ack - Windows phải làm gì với điều này? và tại sao bạn đoán? và bạn không phải khởi động lại để nó có thể sử dụng lại được. bạn umountnó sau đó bạn tắt nguồn và tôi không bao giờ đề nghị bất cứ điều gì liên quan đến udiskctlcách này hay cách khác.
mikeerv

1
@mikeerv "Gỡ bỏ phần cứng một cách an toàn" là biểu thức được sử dụng trong Windows. Có khả năng các hệ thống khác sao chép cụm từ đó vì sự quen thuộc của người dùng. Điều quan trọng là phải phân biệt nó với hệ thống tập tin đơn thuần không đếm được. Một ví dụ về vấn đề này rất quan trọng là khi HĐH không chắc chắn về bộ nhớ đệm ghi của thiết bị lưu trữ. Cá nhân tôi đã trải qua mất dữ liệu khá đáng kể (siêu dữ liệu và tệp bị hỏng) sau khi chỉ ngắt kết nối và rút ổ đĩa cứng bên ngoài. Sau đó tôi phát hiện ra rằng Linux đã cảnh báo về điều này: "Không tìm thấy trang chế độ bộ đệm", "Giả sử bộ đệm ổ đĩa: ghi thông qua".
ack

1
@ack - không, điều đó không quan trọng. vấn đề của bạn có lẽ là acpi của bạn. nó không liên quan gì đến hệ điều hành chính xác - chỉ là nhà sản xuất bảng của bạn chỉ viết trình điều khiển cho một hệ điều hành. những thiết bị đa năng nhỏ đó yêu cầu quyền truy cập ở mức độ thấp vào mục tiêu thẻ - chúng phải có khả năng thực hiện những thứ như mắt. chúng không chặn các thiết bị - chúng là các thiết bị nhân vật. chúng chẳng là gì cả như đĩa usb. bo mạch chủ phải xử lý chúng một cách riêng biệt và nếu nhà cung cấp của bạn hỗ trợ kém (không phải là bất thường - hãy thử khởi động từ một) bạn sẽ không gặp may. Nhưng nó không phải là vấn đề của linux.
mikeerv
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.