Không thể xóa tập tin: Cấu trúc của nhu cầu làm sạch


21

Tôi có một ổ cứng ngoài được mã hóa thông qua LUKS. Nó chứa một ext4 fs.

Tôi vừa gặp lỗi từ rsync cho một tệp nằm trên ổ đĩa này:

rsync: readlink_stat("/home/some/dir/items.json") failed: Structure needs cleaning (117)

Nếu tôi cố xóa tập tin, tôi gặp lỗi tương tự:

rm /home/some/dir/items.json
rm: cannot remove ‘//home/some/dir/items.json’: Structure needs cleaning

Có ai biết tôi có thể làm gì để xóa tệp và khắc phục các sự cố liên quan với ổ đĩa / fs (nếu có) không?

Câu trả lời:


23

Đó là dấu hiệu mạnh mẽ của tham nhũng hệ thống tập tin. Bạn nên ngắt kết nối, tạo bản sao lưu cấp ngành của đĩa và sau đó chạy e2fsck để xem có gì không. Nếu có tham nhũng lớn, sau này bạn có thể vui mừng rằng bạn đã thực hiện sao lưu cấp ngành trước khi để e2fsck giả mạo dữ liệu.


Đã làm những gì bạn đề nghị. e2fsck đã sửa một số lỗi fs. Có vẻ như tôi đã trở lại bình thường. Thx =)
Rotareti

Tôi thực sự khuyên mọi người nên sử dụng GUI như ví dụ gpartedđể làm điều này. Gparted vẫn kết thúc e2fsck (trong trường hợp kiểm tra phân vùng), nhưng giao diện đồ họa giúp dễ dàng hơn trong việc chọn đĩa cứng phù hợp, cũng như đảm bảo rằng bạn chạy các công cụ này với các đối số chính xác. Với các đối số sai, bạn có nguy cơ mất dữ liệu nghiêm trọng!
Qqwy

6

Nếu nó giúp được bất cứ ai, tôi đã gặp vấn đề tương tự (sao lưu rsync / rsnapshot, trên một tệp bị ảnh hưởng). Tôi đã đăng vấn đề / giải pháp của mình tại đây:

https://ubuntuforums.org/showthread.php?t=2348768&p=13627299#post13627299

TÓM LƯỢC:

lỗi sao lưu rsnapshot (rsync) trên hệ thống arch linux x86_64; một tệp bị hỏng, lồng sâu đã bị lỗi đó, cũng được hiển thị khi tôi cố xóa tệp đó:

sudo rm -fR hourly.5/

rm: cannot remove 'hourly.5/snapshot_root/mnt/Vancouver/temp/temp - old/temp - 09 (Dec 07, 2014 - Sep 02, 2015)/a_OLD-gmail/victoria.a.stuart@gmail.com/[Gmail]/LINUX/rsync, rsnapshot; Other backups/19.bak': Structure needs cleaning

Đây là vấn đề:

cd mnt/Vancouver/temp/temp\ -\ old/temp\ -\ 09\ \(Dec\ 07\,\ 2014\ -\ Sep\ 02\,\ 2015\)/a_OLD-gmail/victoria.a.stuart@gmail.com/\[Gmail\]/LINUX/rsync\,\ rsnapshot\;\ Other\ backups/

ls -l

ls: cannot access '19.bak': Structure needs cleaning
total 0
-????????? ? ? ? ?  ? 19.bak        ## << THAT IS THE PROBLEM!!

[Xem thêm: https://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_structure_need_cleaning/ ]

Ổ đĩa sao lưu của tôi là / dev / sda1.

sudo umount /dev/sda1

sudo fsck.ext4 /dev/sda1  ## << accepted suggested fixes

Khởi động lại: tất cả có vẻ tốt. Đi vào ổ đĩa sao lưu, đã xóa tập tin có vấn đề đó:

/mnt/Backups/rsnapshot_backups/hourly.5/snapshot_root/mnt/Vancouver/temp/temp - old/temp - 09 (Dec 07, 2014 - Sep 02, 2015)/a_OLD-gmail/victoria.a.stuart@gmail.com/[Gmail]/LINUX/rsync, rsnapshot; Other backups/19.bak

QED?!

[Cập nhật: có; đã hoạt động: sao lưu của tôi đang chạy bình thường, một lần nữa! :-)]


2

Hệ thống tập tin đôi khi không theo thứ tự và cần làm sạch. Điều này có thể được thực hiện bằng lệnh fsck . Nhưng hãy nhớ rằng, bạn phải chạy fsck chỉ với các phân vùng chưa được đếm để tránh nguy cơ hỏng tệp.

Nếu hệ thống tệp của bạn là ext4, hãy thử chạy lệnh này:

fsck -AR -t ext4 -y

0

Đó là lỗi thông thường khi thử xóa .Trash-0 nếu bạn thử xóa các cửa sổ trong mã hóa hệ thống tệp CP1251 trên hệ thống Linux. Vì vậy, fs bị hỏng nhưng metter này không thành công. Fs của Windows luôn bị hỏng như nhìn thấy từ Linux. Nhưng không phải vậy. Bạn có thể thử mở tệp này từ windows os Tất cả sẽ ổn. Và sau đó loại bỏ nó trong cửa sổ. Và chỉ sau đó rác sạch.


1
Đó không phải là một giải pháp: đó là ổ LUKS được mã hóa bằng LUKS. Truy cập (hoặc ít nhất là thử truy cập) nó từ Windows theo tôi không phải là ý tưởng tốt nhất.
mrc02_kr

-1

tất cả các!! tôi khắc phục vấn đề này bằng lệnh này trong trình bao proxmox của tôi

pct dừng 100 ## dừng container

pct fsck 100 ## fsck container, điều này sửa chữa vấn đề, về một số vấn đề tệp bị hỏng trên hệ thống container

pct start 100 ## bắt đầu container, ok, bây giờ sao lưu và tất cả đều tốt !!

Cảm ơn tất cả, Chuck


1
Vì vậy, câu trả lời của bạn là - dừng mọi phần mềm có thể đang sử dụng đĩa, chạy fsckvà tiếp tục sử dụng đĩa. Điều này khác với câu trả lời của DepressionDaniel như thế nào?
G-Man nói 'Phục hồi Monica'
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.