Lười biếng hoặc vượt qua một ổ đĩa bận rộn trong Linux


19

Tôi đã đọc được rằng có thể 'umount' một đĩa đang bận bằng cách sử dụng tùy chọn 'lười biếng'. Trang này có cái này để nói về nó:

umount - hệ thống tập tin unmount

-l Lười biếng không đếm được. Bây giờ hãy tách hệ thống tập tin khỏi hệ thống phân cấp hệ thống tập tin và dọn sạch tất cả các tham chiếu đến hệ thống tập tin ngay khi nó không còn bận nữa. Tùy chọn này cho phép một hệ thống tập tin "bận rộn" không thể đếm được. (Yêu cầu kernel 2.4.11 trở lên.)

Nhưng điều gì sẽ là điểm trong đó? Tôi đã xem xét lý do tại sao chúng tôi tháo gỡ các phân vùng:

  1. Để loại bỏ phần cứng
  2. Để thực hiện các hoạt động trên hệ thống tập tin sẽ không an toàn khi thực hiện khi gắn kết

Trong cả hai trường hợp này, tất cả các 'un' unmount phục vụ IMHO là làm cho việc xác định xem đĩa có thực sự bị tháo gỡ hay không và bạn thực sự có thể tiến hành những hành động này. Ứng dụng duy nhất umount -ldường như dành cho người dùng thiếu kinh nghiệm để "cảm thấy" như họ đã đạt được điều gì đó mà họ chưa từng có.

Tại sao bạn sẽ sử dụng một unmount lười biếng?

Câu trả lời:


10

Bởi vì bạn lười biếng - bạn muốn ngắt kết nối sau khi các thao tác đĩa được thực hiện.

Đây là một kịch bản hợp lý:

Bạn đang sử dụng rsyncđể thực hiện sao lưu của bạn và bỏ đi. Bạn có thể umount -lổ đĩa và sau khi sao chép và đồng bộ hóa xong, nó sẽ ngắt kết nối, để khi bạn quay lại sau giờ nghỉ (mà bạn biết sẽ mất nhiều thời gian hơn bản sao lưu), bạn có thể rút ổ đĩa ra thay vì phải gõ lại bàn phím .


Nếu bạn lười biếng, chắc chắn bạn sẽ muốn tiết kiệm nhiều thời gian hơn bằng cách không phải sử dụng đối số, bởi vì một khi bạn quay lại, bạn biết rằng bạn có thể gỡ bỏ nó ngay lập tức khi sao lưu xong? Hoặc thực hiện tháo gỡ phần ổ đĩa của các hoạt động sau sao lưu?
deed02392

Hãy nghĩ về nó theo cách này: đĩa không còn bận nữa - hãy ngắt kết nối ngay bây giờ. Nó không còn được gắn kết vì vậy không có gì khác có thể viết cho nó. Đó là "làm điều này khi bạn có thể" thay vì lỗi.
Broam

Vậy làm thế nào để bạn biết khi các hoạt động đĩa được thực hiện? Xem ví dụ này (lỗi?) Về việc có thể ghi một tệp vào một hệ thống tệp đã được đếm chưa
Tom Hale

5

Điều này thực sự được thực hiện để có thêm thời gian thực hiện các nhiệm vụ tiếp theo trong các nhiệm vụ hành chính.

Nếu các nhiệm vụ tiếp theo, độc lập với nhiệm vụ này đang chờ trong đường ống, thì bạn có thể lười biếng - ngắt kết nối và tiếp tục với các nhiệm vụ khác.

Ví dụ : Nhiệm vụ 1 và Nhiệm vụ 2 là hai nhiệm vụ quản trị được lên lịch trở lại.

Nhiệm vụ 1 Sao lưu hàng ngày

Cái này sao chép một số lượng lớn các tệp từ phân vùng dự án sang phân vùng sao lưu, giả sử, / mnt / backupProj, sẽ được gắn khi đang di chuyển và ngắt kết nối ở cuối nhiệm vụ này. Việc sao chép mất một lượng thời gian đáng kể.

Nhiệm vụ 2 Cập nhật các khung nhìn SQL

Thực hiện một loạt các cập nhật xem cơ sở dữ liệu trên một máy chủ chuyên dụng.

Nhiệm vụ 2 rõ ràng là hoàn toàn độc lập với Nhiệm vụ 1, vì vậy chúng ta có thể lười biếng-unmount / mnt / backupProj mà không cần chờ tác vụ sao lưu hoàn tất.


1
bạn có thể cung cấp một ví dụ? Trong tình huống nào nó sẽ 'đạt được / tiết kiệm thời gian'?
deed02392

4

Tôi sử dụng umount lười biếng trong trường hợp rõ ràng nó bị kẹt vì nhiều lý do (chẳng hạn như máy chủ nfs), khi tôi cần xem nội dung gốc của thư mục được gắn kết bởi mount. Trong cả hai trường hợp gắn kết là bận rộn. Tôi nghĩ rằng có những trường hợp cạnh khác nhưng đây là 2 lý do phổ biến nhất mà tôi đã sử dụng tùy chọn.


Các khuyến nghị --forcecho trường hợp NFS.
Tom Hale

3

Hãy xem xét một liên kết gắn kết như bạn có thể thấy khi làm việc với chroot:

mount --rbind /proc /mnt/proc
# do stuff
umount /mnt/proc

Nếu bạn có một daemon trên hệ thống liên tục thẩm vấn /proc(tôi đang nhìn bạn ksysguardd), thì bạn sẽ không thể umount /mnt/proc. Lười sẽ cho bạn umounttrong trường hợp này.


Tại sao không sử dụng --forceở đây để thay thế?
Tom Hale

2

Ổ đĩa USB đôi khi bị đình trệ vì lỗi phần cứng. Ngay cả khi bạn kết nối lại ổ đĩa một cách vật lý, bạn sẽ có được một tên thiết bị khác. Tên thiết bị cũ không thể được ngắt thông thường. số tiền -l buộc mục nhập chết biến mất.


1

Giả sử bạn thực sự cần thay đổi âm lượng mà phần mềm đang ghi nhật ký, ví dụ: máy chủ web, nhưng nó có nhiều lưu lượng truy cập và không thể tắt cho hoạt động cũng như không thể thay đổi đường dẫn đăng nhập.

Với chế độ ngắt kết nối lười biếng, bạn có thể ngắt âm lượng một cách an toàn trong khi phần mềm vẫn đang chạy, gắn một âm lượng khác vào cùng điểm đó và ra lệnh cho phần mềm mở lại các tệp.

Lý tưởng nhất là vì bạn không cần tắt phần mềm, không có yêu cầu nào bị mất và về cơ bản cũng không có mục nhật ký nào bị mất, vì chúng vẫn được ghi vào mount cũ cho đến khi các tệp được mở lại (phần mềm xử lý tốt như thế nào khi mở lại các tập tin là tùy thuộc vào phần mềm).

Diễn giải trang chủ, điều đó có nghĩa là nếu ổ đĩa có tệp mở khi lười biếng không được đếm, trong thực tế, nó vẫn được gắn nhưng chỉ không thể truy cập qua hệ thống tệp và chỉ thực sự được ngắt khi tệp mở cuối cùng được đóng.


1
Cảm ơn điều này nghe giống như một ứng dụng hữu ích. Sẽ lsofhiển thị các tập tin đang mở trên mountpoint cũ? Ngoài ra tôi tự hỏi làm thế nào nó sẽ phân biệt các tệp đang mở trên ổ đĩa cũ và mới?
deed02392

0

Tôi sử dụng encfs để mã hóa một phần dữ liệu nhạy cảm của mình.

Khi đĩa được gắn kết, nautilus xây dựng bản xem trước (tôi nghĩ, tôi không chắc chắn) và khóa các tệp. Khi tôi muốn ngắt kết nối nó, nó nói rằng nó bị khóa bởi một quá trình khác.

Bằng cách lười biếng ngắt kết nối nó, thư mục biến mất khỏi hệ thống phân cấp của tôi và bị ẩn đi. Và khi quá trình nền kết thúc, nó thành công chưa từng có.

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.