Не удается удалить файл: «Структура нуждается в очистке»

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 (если они есть)?

Rotareti
источник

Ответы:

23

Это сильно свидетельствует о повреждении файловой системы. Вы должны размонтировать, сделать резервную копию диска на уровне сектора, а затем запустить e2fsck, чтобы увидеть, что случилось. Если есть серьезное повреждение, вы можете быть счастливы, что сделали резервное копирование на уровне сектора, прежде чем позволить e2fsck вмешиваться в данные.

DepressedDaniel
источник
Сделал то, что вы предложили. e2fsck исправил некоторые ошибки fs. Похоже, я вернулся к нормальной жизни. Спасибо =)
Ротарети
Я настоятельно рекомендую людям использовать графический интерфейс, например, 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, если вы пытаетесь удалить окна в кодировке файловой системы CP1251 в системе Linux. Так что ФС испорчена, но это не важно. ФС Windows всегда поврежден, как видно из Linux. Но это не так. Вы можете попробовать открыть этот файл из Windows OS Все будет хорошо. И затем удалите это в окнах. И только после этого чистый мусор.

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

все!! я исправляю эту проблему с помощью этой команды в моей оболочке proxmox

pct stop 100 ## остановка контейнера

pct fsck 100 ## fsck container, это исправляет проблему, при некоторых проблемах файлы, поврежденные в системе контейнера

pct start 100 ## запустите контейнер, хорошо, теперь сделайте резервную копию и все хорошо !!

Спасибо всем, Чак

цыпленок
источник
1
Итак, ваш ответ - остановите все программы, которые могут использовать диск, запустите fsckи возобновите использование диска. Чем это отличается от ответа DepressedDaniel ?
G-Man говорит «Восстановить Монику»