ไม่สามารถลบไฟล์:“ โครงสร้างต้องทำความสะอาด”


22

ฉันมีฮาร์ดไดรฟ์ภายนอกซึ่งเข้ารหัสผ่าน LUKS มันมี ext4 fs

ฉันเพิ่งได้รับข้อผิดพลาดจาก rsync สำหรับไฟล์ที่อยู่ในไดรฟ์นี้:

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

หากฉันพยายามลบไฟล์ฉันได้รับข้อผิดพลาดเดียวกัน:

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

ไม่มีใครรู้ว่าฉันสามารถทำอะไรเพื่อลบไฟล์และแก้ไขปัญหาที่เกี่ยวข้องกับไดรฟ์ / fs (ถ้ามี)?

คำตอบ:


23

นั่นเป็นตัวบ่งชี้อย่างมากของความเสียหายของระบบไฟล์ คุณควร unmount ทำการสำรองข้อมูลระดับเซกเตอร์ของดิสก์แล้วเรียกใช้ e2fsck เพื่อดูว่ามีอะไรเกิดขึ้น หากมีการทุจริตที่สำคัญคุณอาจมีความสุขในภายหลังว่าคุณได้ทำการสำรองข้อมูลระดับเซกเตอร์ก่อนที่จะปล่อยให้ e2fsck ยุ่งเกี่ยวกับข้อมูล


ทำในสิ่งที่คุณแนะนำ e2fsck แก้ไขข้อผิดพลาด fs บางอย่าง ดูเหมือนว่าฉันจะกลับมาเป็นปกติ Thx =)
Rotareti

ฉันขอแนะนำให้ผู้ใช้ GUI อย่างเช่นgpartedทำเช่นนี้ Gparted ยังคงล้อม e2fsck (ในกรณีที่ตรวจสอบพาร์ติชัน) แต่ส่วนต่อประสานกราฟิกทำให้การเลือกฮาร์ดดิสก์ที่เหมาะสมเป็นเรื่องง่ายขึ้นรวมทั้งทำให้มั่นใจได้ว่าคุณใช้เครื่องมือเหล่านี้ด้วยอาร์กิวเมนต์ที่ถูกต้อง ด้วยข้อโต้แย้งที่ผิดคุณเสี่ยงต่อการสูญเสียข้อมูลอย่างรุนแรง!
Qqwy

7

ถ้ามันช่วยทุกคนฉันมีปัญหาที่คล้ายกัน (การสำรองข้อมูล rsync / rsnapshot ในไฟล์ที่ได้รับผลกระทบ) ฉันโพสต์ปัญหา / แนวทางแก้ไขของฉันที่นี่:

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

สรุป:

ข้อผิดพลาดการสำรองข้อมูล rsnapshot (rsync) บนระบบ arch linux x86_64 ไฟล์ที่มีความลึกซ้อนกันมีข้อผิดพลาดแสดงข้อผิดพลาดปรากฏขึ้นเมื่อฉันพยายามลบไฟล์นั้น:

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

นี่คือปัญหา:

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

[ดูเพิ่มเติมที่: https://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_structure_needs_cleaning/ ]

ไดรฟ์สำรองของฉันคือ / dev / sda1

sudo umount /dev/sda1

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

รีบูตแล้ว: ทุกอย่างดูดี ไปที่ไดรฟ์สำรองลบไฟล์ที่มีปัญหา:

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

[อัพเดท: ใช่; ใช้งานได้: การสำรองข้อมูลของฉันทำงานได้ตามปกติอีกครั้ง! :-)]


2

บางครั้งระบบไฟล์ไม่ได้อยู่ในลำดับและจำเป็นต้องทำความสะอาด สามารถทำได้โดยคำสั่งfsck แต่จำไว้ว่าคุณต้องรัน fsck เฉพาะพาร์ติชั่นที่ไม่ได้ต่อเชื่อมเพื่อหลีกเลี่ยงความเสี่ยงของไฟล์เสียหาย

หากระบบไฟล์ของคุณเป็น ext4 ลองใช้คำสั่งนี้:

fsck -AR -t ext4 -y

0

เป็นข้อผิดพลาดปกติเมื่อลองลบ. Trash-0 หากคุณลองลบ windows ในการเข้ารหัสระบบไฟล์ CP1251 บนระบบ Linux ดังนั้น fs เสียหาย แต่ doster metter นี้ไม่ได้ Fs ของ Windows เกิดความเสียหายเช่นเดียวกับที่เห็นจาก Linux แต่ไม่เป็นเช่นนั้น คุณอาจลองเปิดไฟล์นี้จาก windows os ทั้งหมดจะดี แล้วลบออกในหน้าต่าง และหลังจากถังขยะสะอาดแล้ว


1
นี่ไม่ใช่วิธีแก้ปัญหา: เป็นไดรฟ์ LUKS ที่เข้ารหัสด้วย LUKS การเข้าถึง (หรือพยายามเข้าถึงอย่างน้อย) จาก Windows เป็นความคิดของฉันไม่ใช่ความคิดที่ดีที่สุด
mrc02_kr

-1

ทั้งหมด !! ฉันแก้ไขปัญหานี้ด้วยคำสั่งนี้ในเปลือก proxmox ของฉัน

pct stop 100 ## หยุดคอนเทนเนอร์

pct fsck 100 ## fsck container, วิธีนี้จะซ่อมแซมปัญหา, ในบางประเด็นไฟล์ที่เสียหายในระบบ container

PCT เริ่ม 100 # # เริ่มภาชนะตกลงตอนนี้สำรองและทั้งหมดเป็นสิ่งที่ดี !!

ขอขอบคุณทุกคนเชย


1
ดังนั้นคำตอบของคุณคือ - หยุดซอฟต์แวร์ใด ๆ ที่อาจใช้ดิสก์เรียกใช้fsckและใช้งานดิสก์ต่อ สิ่งนี้แตกต่างจากคำตอบของ DepressedDanielอย่างไร
G-Man กล่าวว่า 'Reinstate Monica'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.