Tidak dapat menghapus file: "Struktur perlu dibersihkan"


22

Saya memiliki hard drive eksternal yang dienkripsi melalui LUKS. Ini berisi ext4 fs.

Saya baru saja mendapat kesalahan dari rsync untuk file yang terletak di drive ini:

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

Jika saya mencoba menghapus file saya mendapatkan kesalahan yang sama:

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

Adakah yang tahu apa yang bisa saya lakukan untuk menghapus file dan memperbaiki masalah terkait dengan drive / fs (jika ada)?

Jawaban:


23

Itu sangat menunjukkan korupsi sistem file. Anda harus melepas, membuat cadangan tingkat sektor dari disk Anda, dan kemudian menjalankan e2fsck untuk melihat apa yang terjadi. Jika ada korupsi besar, Anda mungkin kemudian senang bahwa Anda melakukan backup tingkat sektor sebelum membiarkan e2fsck merusak data.


Melakukan apa yang Anda sarankan. e2fsck memperbaiki beberapa kesalahan fs. Sepertinya saya kembali normal. Thx =)
Rotareti

Saya sangat menyarankan orang untuk menggunakan GUI seperti misalnya gparteduntuk melakukan ini. Gparted masih membungkus e2fsck (dalam hal memeriksa partisi), tetapi antarmuka grafis membuatnya jauh lebih mudah untuk memilih hard-disk yang tepat, serta memastikan bahwa Anda menjalankan alat-alat ini dengan argumen yang benar. Dengan argumen yang salah Anda berisiko kehilangan data yang sangat besar!
Qqwy

7

Jika itu membantu siapa pun, saya memiliki masalah serupa (rsync / rsnapshot backup, pada file yang terpengaruh). Saya memposting masalah / solusi saya, di sini:

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

RINGKASAN:

rsnapshot (rsync) kesalahan cadangan pada sistem linux x86_64 arch; file yang rusak dan bersarang sangat dalam memunculkan kesalahan itu, juga ditampilkan ketika saya mencoba menghapus file itu:

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

Inilah masalahnya:

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!!

[Lihat juga: https://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_structure_needs_cleaning/ ]

Drive cadangan saya adalah / dev / sda1.

sudo umount /dev/sda1

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

Reboot: semua tampak baik-baik saja. Pergi ke drive cadangan, menghapus file yang bermasalah:

/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 ?!

[Perbarui: ya; yang berhasil: backup saya berjalan normal, lagi! :-)]


2

Sistem file terkadang tidak beres dan perlu dibersihkan. Ini dapat dilakukan dengan perintah fsck . Tapi ingat, Anda harus menjalankan fsck hanya ke partisi yang di-mount untuk menghindari risiko korupsi file.

Jika sistem file Anda adalah ext4, coba jalankan perintah ini:

fsck -AR -t ext4 -y

0

Ini kesalahan biasa ketika mencoba menghapus .Trash-0 jika Anda mencoba menghapus windows dalam penyandian sistem file CP1251 pada sistem Linux. Jadi fs rusak tetapi ini bukan metter. Fs Windows selalu rusak seperti yang terlihat dari Linux. Namun tidak demikian. Anda dapat mencoba membuka file ini dari windows os Semua akan baik-baik saja. Dan kemudian hapus di windows. Dan hanya setelah itu sampah bersih.


1
Ini bukan solusi: itu drive LUKS dienkripsi dengan LUKS. Mengakses (atau setidaknya mencoba akses) dari Windows menurut saya bukan ide terbaik.
mrc02_kr

-1

semua!! saya memperbaiki masalah ini dengan perintah ini di proxmox shell saya

pct stop 100 ## menghentikan wadah

pct fsck 100 ## wadah fsck, ini memperbaiki masalah, pada beberapa masalah file yang rusak pada sistem wadah

mulai pct 100 ## mulai wadah, ok, sekarang cadangan dan semuanya baik !!

Terima kasih semuanya, Chuck


1
Jadi jawaban Anda adalah - hentikan perangkat lunak apa pun yang mungkin menggunakan disk, jalankan fsck, dan lanjutkan menggunakan disk. Bagaimana ini berbeda dari jawaban DepressedDaniel ?
G-Man Mengatakan 'Reinstate Monica'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.