Неможливо видалити файл: "Структура потребує очищення"


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

Це сильно свідчить про корупцію файлової системи. Вам слід відключити, зробити резервну копію диска на рівні сектору, а потім запустити e2fsck, щоб побачити, що відбувається. Якщо є велика корупція, пізніше ви можете бути щасливі, що ви зробили резервне копіювання на рівні сектору, перш ніж дозволити підробляти дані e2fsck.


Зробив те, що ти запропонував. e2fsck виправив деякі помилки fs. Здається, я повернувся до норми. Thx =)
Ротарети

Я настійно пропоную людям використовувати графічні інтерфейси, наприклад, 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 є корумпованим, але це не відповідає. Fs Windows завжди пошкоджується, як бачать Linux. Але це не так. Ви можете спробувати відкрити цей файл з Windows OS. Все буде добре. А потім видаліть його у вікнах. І тільки після цього чистимо сміття.


1
Це не рішення: це привід LUKS, зашифрований LUKS. Доступ (або принаймні спроба доступу) до нього з Windows - це, на мою думку, не найкраща ідея.
mrc02_kr

-1

все !! Я вирішую цю проблему за допомогою цієї команди в моїй оболонці proxmox

pct стоп 100 ## зупинити контейнер

pct fsck 100 ## контейнер fsck, це усуне проблему, щодо деяких файлів, які пошкоджені в контейнерній системі

pct start 100 ## запустити контейнер, добре, тепер резервне копіювання, і все добре !!

Спасибі всім, Чак


1
Отже, ваша відповідь - зупиніть будь-яке програмне забезпечення, яке може використовувати диск, запускайте fsckта продовжуйте використовувати диск. Чим це відрізняється від відповіді DepressDaniel ?
G-Man каже: "Відновіть Моніку"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.