Tắt nguồn ổ cứng ngoài, ổ flash, v.v ... bằng cách sử dụng dòng lệnh trong Linux


8

Tôi luôn nghĩ rằng để gỡ bỏ một cách an toàn một thiết bị đã được gắn là sử dụng umountlệnh và cho đến gần đây khi tôi chuyển sang Ubuntu 12.04 LTS, tôi nhận thấy rằng có khả năng loại bỏ an toàn thiết bị gây tò mò cho tôi.

Tôi đã tìm hiểu một số bài đăng và thấy rằng umountdường như không có nghĩa là tôi có thể gỡ bỏ thiết bị một cách an toàn vì thiết bị không tắt nguồn thiết bị. Tôi biết có tùy chọn để eject. Bây giờ đây là sự hiểu biết của tôi sau khi truy quét Internet. Tài liệu tham khảo bao gồm:

Sau đó tôi đã xem qua một bài viết nhưng thấy quá trình này bị xáo trộn và tôi nghĩ rằng cuối cùng tôi đã trả tiền khi tôi gặp phải lệnh này, udisksvdudisks --unmount /dev/sdb1 && udisks --detach /dev/sdb

Điều khiến tôi bối rối là (ngoài việc umountthực sự có nghĩa là an toàn khi tháo thiết bị mà không mất dữ liệu hay không và tôi có cần sử dụng lệnh synctrước đó hay không cũng như thiết bị đã tắt nguồn mà có thể gỡ bỏ an toàn) Tôi phải sử dụng /dev/sdbtheo sau --detachtrái ngược với/dev/sdb1


Câu trả lời:


6

/dev/sdblà toàn bộ thiết bị. /dev/sdb1là một phân vùng trên thiết bị đó.

Mặc dù bạn có thể sử dụng đĩa mà không cần phân vùng, nhưng điều đó khá bất thường (bên ngoài thiết lập RAID, nhưng sau đó bạn tạo các hệ thống tệp trên các nút thiết bị đột kích, không phải các nút thiết bị vật lý).
Sẽ không thực sự có ý nghĩa khi cố gắng tách (loại bỏ vật lý) một phân vùng duy nhất - bạn muốn xóa toàn bộ thiết bị (có thể chứa nhiều phân vùng), không chỉ một phân vùng của thiết bị đó.

Ngắt kết nối một phân vùng sẽ đồng bộ hóa hệ thống tập tin, vì vậy việc gọi synctrước unmountlà không cần thiết.
Gọi udisks --detachtrên thiết bị sẽ kiểm tra xem bạn không có hệ thống tập tin nào được gắn trên thiết bị đó (bạn nên đảm bảo rằng cuộc gọi đó thực sự thành công) và sẽ thực hiện "tắt máy theo thứ tự", luôn thích hợp hơn với phương pháp "rút phích cắm", bất kể cho dù thiết bị cụ thể đó làm bất cứ điều gì đặc biệt.


Tôi không biết rằng chỉ / dev / sdb đại diện cho toàn bộ thiết bị mà tôi cho là đại diện cho tất cả các phân vùng. Đúng không? Vì vậy, tôi chỉ có thể chạy lệnh như udisks --unmount /dev/sdb && udisks --detach /dev/sdbthể tôi muốn ngắt kết nối tất cả các phân vùng? Làm cho rất hợp lý để chỉ ngắt kết nối một phân vùng nếu tồn tại nhiều phân vùng.
PeanutsMonkey

Làm thế nào để bạn cũng chắc chắn rằng cuộc gọi udisks --detachkhông thành công?
PeanutsMonkey

Không, không đếm được /dev/sdbsẽ không hoạt động. Bạn cần ngắt kết nối từng phân vùng được gắn kết và xem / phân tích đầu ra của các lệnh.
Mat

Xin lỗi, không hoàn toàn làm theo ý bạn bằng cách xem hoặc phân tích đầu ra các lệnh? Tôi không nên ngắt kết nối từng phân vùng và sau đó chạy lệnh udisks --detach /dev/sdb?
PeanutsMonkey
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.