Điều gì xảy ra nếu tôi xóa mất + tìm thấy


38

Khi bạn tạo một số hệ thống tệp Linux như ext3, thư mục 'mất + tìm thấy' được tạo. Theo này file sẽ được đặt ở đó nếu các tập tin bị hư hại từ một số loại hệ thống sụp đổ.

Điều gì xảy ra nếu thư mục này bị xóa và hệ thống gặp sự cố. Nếu thư mục bị xóa, tôi chỉ có thể tạo một thư mục mới với mkdir bị mất + tìm thấy hoặc có các thuộc tính chỉ có thể được đặt khi hệ thống tệp được tạo.

Câu trả lời:


35

fsck sẽ tạo lại thư mục bị mất + tìm thấy nếu nó bị thiếu.

Khi khởi động, hầu hết các bản phân phối chạy fsck nếu hệ thống tập tin được phát hiện là không được ngắt kết nối sạch sẽ. Khi fsck tạo thư mục bị mất + tìm thấy nếu nó bị thiếu, nó sẽ tạo nó sau đó và đặt bất cứ thứ gì nó tìm thấy vào thư mục đó.


15

Nếu bạn không thể hoặc không muốn chạy fsck, bạn có thể tạo lại các lost+foundthư mục bằng mklost+found:

mklost + đã tìm thấy phân bổ trước các khối đĩa vào thư mục bị mất + tìm thấy để khi e2fsck (8) đang chạy để khôi phục hệ thống tệp, không cần phân bổ các khối trong hệ thống tệp để lưu trữ một số lượng lớn các tệp không được liên kết. Điều này đảm bảo rằng e2fsck sẽ không phải phân bổ các khối dữ liệu trong hệ thống tệp trong quá trình khôi phục.


Tại RHEL 6.4 cũng như fsckkhông e2fscktạo lại cái này cho tôi, bất kể thư mục có được gắn hay không. cd <root-dir-of-the-mount> && mklost+foundđã làm nó.
Luis Antolín Cano

7

Một thư mục bị mất + tìm thấy trước đó với kích thước đủ lớn để chứa một số lượng lớn các tệp không được liên kết sẽ giảm bớt gánh nặng cho e2fsck để tạo thư mục và phát triển nó đến kích thước phù hợp.

Nó vẫn sẽ cố gắng để làm như vậy, nhưng khi đối mặt với một hệ thống tập tin bị hỏng, nó có thể có nhiều rủi ro hơn.

Các fsck rất cũ cho các hệ thống tệp khác trên các nền tảng khác không thể tạo / mất + tìm thấy, cũng như không thể phát triển nó. Đây là lịch sử cho lý do của / mất + tìm thấy. Nhưng lý do hiện tại chỉ đơn giản là làm cho công việc của e2fsck dễ dàng hơn.


4
Không phải là họ không thể tạo ra mất + tìm thấy - đó là một ý tưởng tồi để tạo các tệp / thư mục trên một hệ thống tệp đã bị hỏng. Thay vào đó, bạn chỉ cần dựng sẵn một thư mục đủ lớn để lưu trữ các mục trong thư mục của bất kỳ mã bị nhai nào bạn tìm thấy trong một hệ thống tập tin bị vặn khi bạn đang cố gắng dọn sạch.
chris

5

Nếu bạn không có lost+found, e2fsck(tôi chưa kiểm tra mã cho các fscktriển khai khác ) sẽ đề nghị tạo mã cho bạn. Nhưng, bạn có thể tự tạo lại nó nếu bạn muốn; không có gì đặc biệt về thư mục đó (ít nhất là không kiểm tra mã).


2
fsck nên tạo lại mất + tìm thấy nếu cần, không?
David Schmitt

2
Cảm ơn, tôi đã kiểm tra mã cho e2fsck và thực sự nó cung cấp để tạo lại mã cho bạn. (Điều này không được đảm bảo để thành công mặc dù --- đó là lý do tại sao một mất + được tạo trước cũng hữu ích.) Neat!
Chris Jester-Young

6
@ ChrisJester-Young - Câu trả lời của bạn không chính xác. lost+foundlà một thư mục đặc biệt. Nó có các khối đĩa được phân bổ trước để các công cụ khôi phục không cần phân bổ các khối trong quá trình khôi phục. Các công cụ như mklost+foundtồn tại cụ thể vì mkdirsẽ không tạo ra nó đúng cách. Xem linux.die.net/man/8/mklost+found
tổng

2

e2fsck sẽ tạo lại mất + tìm thấy và cũng sẽ hủy bất kỳ tệp nào có thể có cùng tên để đảm bảo rằng nó có thể tạo nó dưới dạng thư mục.

Lưu ý rằng nhiều hệ thống tệp Unix cũ hơn yêu cầu mất + tìm thấy được gắn vào inode số 2 một cách cụ thể, do đó cần phải tạo lại hệ thống tệp trong hầu hết các trường hợp nếu thư mục bị mất. e2fsck chỉ đơn giản là thực hiện tìm kiếm bất kỳ inode miễn phí nào, dường như không đặc biệt cần inode 2, điều này giúp cho việc phục hồi đơn giản hơn nhiều so với ngày xưa.


1

Bạn có thể tạo thư mục đó chỉ bằng cách sử dụng mkdir. Nó nên được sở hữu bởi root, với một nhóm của root hoặc wheel. Ngoài ra, không có gì đặc biệt về nó. Trong trường hợp mất điện hoặc tắt máy không đúng cách khi hệ thống khởi động, nó sẽ tự động khởi chạy fsck. 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. Bất kỳ tập tin nào đi qua có khả năng bị hỏng sẽ được chuyển đến đó.

Trường hợp khác cho các tệp được di chuyển là nếu fsck tìm thấy một tệp có nút inode cha bị thiếu. Đây thường là trường hợp nếu một khối bị hỏng trên đĩa ở vị trí cụ thể nơi inode của thư mục đang được lưu trữ. Nó sẽ gán lại inode cha của chúng thành thư mục bị mất + tìm thấy.

Chỉnh sửa: Tôi không chắc chắn nếu trường hợp sau sẽ tạo lại thư mục. Tôi sẽ để nó một mình để ở bên an toàn. Tôi không thể nghĩ ra bất kỳ lý do nào để xóa nó. Không có gì xấu sẽ xảy ra mà không có nó mặc dù.


1
Bạn có chắc chắn chỉ cần tạo ra với mkdir?

Đúng vậy, việc phân bổ không gian không bị ràng buộc với các thư mục inode hoặc thậm chí là đường dẫn. Việc phân bổ không gian dành riêng ít hơn một cờ trên một số bộ nhớ yêu cầu quyền root / kernel và các lệnh gọi đặc biệt để truy cập mà fsck biết, nó chỉ sử dụng khoảng trống đó bằng cách sao chép các tệp có khả năng bị hỏng hoặc bị hỏng vào bộ nhớ đó và tạo ra một tập tin với một inode chỉ vào bộ nhớ mới. Các thao tác tệp sẽ hoạt động bình thường trên các tệp đó nhưng mọi thay đổi như di chuyển hoặc lưu sẽ kéo dữ liệu ra khỏi bộ nhớ dành riêng.
TrueDuality

1

Ngoài ra, trên Debian 6 và Ubuntu 12 LTS, crongói được gửi đi /etc/cron.daily/standardthông báo các lost+foundthư mục bị thiếu trên các hệ thống tệp cục bộ và gửi lời nhắc hàng ngày về nó qua e-mail, khuyến nghị sử dụng mklost+found.

Tuy nhiên, điều này đã bị xóa theo thời gian của Debian 7 và Ubuntu 14 LTS, vì nó đã trở nên lỗi thờ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.