Mục đích của thư mục bị mất + tìm thấy trong Linux và Unix là gì?


644

Có một thư mục gốc của hệ điều hành Linux và Unix được gọi là /lost+found/

Nó dùng để làm gì? Trong hoàn cảnh nào tôi sẽ tương tác với nó? Làm thế nào tôi có thể tương tác với nó?


Lưu ý rằng chỉ sử dụng ext2 (và ext3 và ext4) lost+found. Nếu bạn muốn ẩn nó, hãy sử dụng một hệ thống tập tin khác hoặc gắn kết nó ở nơi khác, giữ mọi thứ trong thư mục con và symlink thư mục con đến nơi "thực" mà bạn sử dụng dữ liệu từ đó.
Adam Katz

4
@Gilles ai đó đã tốt bụng khi thêm nó: vi.wikipedia.org/wiki/Fsck#Use
David Kennedy

Lưu ý rằng lost+foundnó dành riêng cho hệ thống tệp mở rộng của Linux (ext2 Hay4). Các thông báo, ví dụ FreeBSD thường không có thư mục này trên các hệ thống tệp của họ (UFS, ZFS).
FUZxxl

5
Xin lỗi, nhưng lost+foundthực tế đã tồn tại mãi mãi trên các hệ thống BSD. Trên thực tế, tôi chỉ kiểm tra và nó chắc chắn đã có trên 4.3BSD và tôi dường như nhớ lại nó sớm hơn rất nhiều. Và nó chắc chắn là trên FreeBSD ngày hôm nay.
Bob Eager

@BobEager Cảm ơn bạn đã xác nhận điều đó. Tôi cũng nghĩ vậy nhưng tôi sẵn sàng chấp nhận rằng có lẽ tôi đã nhớ không chính xác ...
Pryftan

Câu trả lời:


577

Nếu bạn chạy fsck, lệnh kiểm tra và sửa chữa hệ thống tệp, nó có thể tìm thấy các đoạn dữ liệu không được tham chiếu ở bất kỳ đâu trong hệ thống tệp. Đặc biệt, fsckcó thể tìm thấy dữ liệu trông giống như một tập tin hoàn chỉnh nhưng không có một cái tên trên hệ thống - một inode không có tên tập tin tương ứng. Dữ liệu này vẫn đang sử dụng hết dung lượng, nhưng không thể truy cập bằng bất kỳ phương tiện thông thường nào.

Nếu bạn yêu fsckcầu sửa chữa hệ thống tập tin, nó sẽ biến những tập tin gần như bị xóa này trở lại thành tập tin. Vấn đề là, tập tin đã có tên và vị trí một lần, nhưng thông tin đó không còn nữa. Vì vậy, fsckgửi các tập tin trong một thư mục cụ thể, được gọi lost+found(sau khi mất và tìm thấy tài sản).

Các tệp xuất hiện trong lost+foundcác tệp thường là các tệp đã bị hủy liên kết (nghĩa là tên của chúng đã bị xóa) nhưng vẫn được mở bằng một số quy trình (vì vậy dữ liệu chưa bị xóa) khi hệ thống tạm dừng (hoảng loạn nhân hoặc mất điện). Nếu đó là tất cả những gì đã xảy ra, những tập tin này dự kiến ​​sẽ bị xóa, bạn không cần phải quan tâm đến chúng.

Các tệp cũng có thể xuất hiện lost+founddo hệ thống tệp ở trạng thái không nhất quán do lỗi phần mềm hoặc phần cứng. Nếu đó là trường hợp, đó là cách để bạn tìm các tệp bị mất nhưng việc sửa chữa hệ thống được quản lý để cứu vãn. Các tệp có thể chứa hoặc không chứa dữ liệu hữu ích và ngay cả khi chúng có thể không đầy đủ hoặc đã lỗi thời; tất cả phụ thuộc vào mức độ thiệt hại của hệ thống tập tin.

Trên nhiều hệ thống tệp, lost+foundthư mục này hơi đặc biệt vì nó hiển thị một chút không gian fsckđể gửi tệp ở đó. (Không gian không phải dành cho các tập tin dữ liệu, mà fscklá tại chỗ, nó cho các mục thư mục mà fsckcó để tạo nên.) Nếu bạn vô tình xóa lost+found, không tái tạo nó với mkdir, sử dụng mklost+foundnếu có.


16
Ngoài ra, nếu vô tình xóa fsck có thể tạo lại nó vào lần tiếp theo nó thấy hệ thống tập tin sạch sẽ (có thể sẽ là lần khởi động tiếp theo).
derobert

30
Thư mục này có phải là thứ cần được kiểm tra và làm sạch theo thời gian không?
TheLQ

9
@TheLQ Chỉ khi hệ thống tệp của bạn bị tham nhũng nghiêm trọng, fsckđược yêu cầu và nó đã đề cập đến việc tìm tệp và liên kết chúng trong lost+found. Trong 20 năm với các hệ thống tập tin khác nhau, tôi chỉ thấy điều này một lần. Và đó là trước khi nhật ký là tiêu chuẩn.
Alexios

6
Tôi nghĩ nó cũng xuất hiện nếu bạn định dạng ổ cứng của mình (tôi đã chuyển từ NTFS sang ext4 và nó xuất hiện)
puk

6
@puk Thư mục lost+foundđược tạo bất cứ khi nào bạn tạo một hệ thống tập tin ext4 (như với nhiều hệ thống tập tin khác), cho dù nó được thực hiện như là một phần của cài đặt hệ thống hay không. Định dạng ổ cứng của bạn Ổ cứng của bạn chỉ là một trường hợp đó. Điều gì fscklàm là có thể thêm các tập tin ở đó.
Gilles

64

Thư mục lost+found(không bị mất + Tìm thấy) là một cấu trúc được sử dụng fsckkhi có thiệt hại cho hệ thống tập tin (không phải cho thiết bị phần cứng, nhưng cho fs). Các tệp thường bị mất do hỏng thư mục sẽ được liên kết trong lost+foundthư mục của hệ thống tệp đó bằng số inode. Một số trong số này có thể bị mất thư mục hoặc mất tập tin hoặc thậm chí mất thiết bị. Mỗi hệ thống tệp nên có lost+foundthư mục riêng , nhưng bạn có thể đang xem một hệ thống chỉ có một hệ thống tệp. Nói chung, bạn nên hy vọng rằng thư mục trống; nhưng nếu có tham nhũng, hãy biết ơn rằng trong nhiều điều kiện, các tập tin có thể được phục hồi sau khi fsckđặt chúng ở đây.


4
Tuy nhiên, điểm hợp lệ: những điều này CÓ THỂ trở nên khá phiền toái. Ví dụ: khi cố gắng thực hiện một findthao tác trên một hoặc nhiều ext[2|3|4]phân vùng từ tài khoản người dùng không phải quản trị viên, bạn sẽ luôn gặp phải các lỗi "bị từ chối" hoàn toàn không cần thiết này . Chắc chắn, có nhiều cách để khắc phục các loại lỗi đó - nhưng hơi khó xử vì tiêu chuẩn find . -name '*whatever*'sẽ không thực hiện được.
cú pháp

2
@syntaxerror: Thật tốt khi nghe bạn nói điều đó về những phiền toái của việc tìm kiếm: `./lost+found ': Quyền bị từ chối . Thỉnh thoảng nó cũng làm phiền tôi ...
Johan E

1
@syntaxerror lý do tôi đến với câu hỏi này chính xác là vì tôi đang thực hiện một hoạt động tìm kiếm và tiếp tục tạo ra một Permission deniedcảnh báo. Đưa ra câu trả lời của câu hỏi này, tôi biết đó lost+foundlà một phần của hệ thống tập tin và vì vậy tôi có thể bỏ qua cảnh báo được tạo một cách an toàn (nhưng tôi ước nó không tạo ra cảnh báo).
Trevor Boyd Smith

1
@JohanE Bạn đang nói với tôi. Tuy nhiên, lý do thực tế tại sao tôi gửi nhận xét của tôi là vì câu trả lời này đang cố gắng đề nghị chúng ta "biết ơn" cho lost+found. Điều này cảm thấy quá buồn cười là sự thật (tôi ngồi đây với một nụ cười rộng lớn), vì một vài lần nực cười khi chúng tôi biết ơn vì nó không thể cạnh tranh với những người khi chúng tôi muốn có thể phát "Bắt đầu!" đánh vần để lo điều này + cho điều.
cú pháp

36

Từ "Phân cấp hệ thống tập tin Linux", phần / mất + tìm thấy " :

Như đã được giải thích trước đó trong phần tổng quan về FSSTND, Linux luôn phải trải qua quá trình tắt máy thích hợp. Đôi khi hệ thống của bạn có thể gặp sự cố hoặc mất điện có thể làm hỏng máy. Dù bằng cách nào, ở lần khởi động tiếp theo, việc kiểm tra hệ thống tập tin dài bằng fsck sẽ được thực hiện. Fsck sẽ đi qua hệ thống và cố gắng khôi phục bất kỳ tệp bị hỏng nào mà nó tìm thấy. Kết quả của hoạt động khôi phục này sẽ được đặt trong thư mục này. Các tập tin được phục hồi không có khả năng hoàn thành hoặc có ý nghĩa nhiều nhưng luôn có khả năng một cái gì đó đáng giá được phục hồi. Mỗi phân vùng có thư mục bị mất + tìm thấy riêng. Nếu bạn tìm thấy các tập tin trong đó, hãy cố gắng di chuyển chúng trở lại vị trí ban đầu của chúng. Nếu bạn tìm thấy một cái gì đó giống như một liên kết tượng trưng bị hỏng đến 'tệp', bạn phải cài đặt lại tệp / s từ RPM tương ứng, vì hệ thống tệp của bạn bị hỏng nặng đến mức các tệp bị cắt xén ngoài sự công nhận. Dưới đây là một ví dụ về thư mục / mất + tìm thấy. Như bạn có thể thấy, phần lớn các tập tin chứa ở đây là trong các ổ cắm thực tế. Đối với phần còn lại của các tệp khác, chúng được phát hiện là tệp hệ thống và tệp cá nhân bị hỏng. Những tập tin này đã không thể được phục hồi.

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.