Вопрос или проблема
По какой-то неизвестной причине, я не могу удалить 2 каталога.
Первый каталог называется sw.old, он пуст и может быть удален только с помощью rm
, так как rmdir
не распознает его. Однако, даже после rm
, он все еще отображается:
[02:11:36] user@user:/media/user/exthdd/docs$ ls -il
total 1072064
1456 drwx------ 1 user user 0 Aug 12 10:04 1old.or.probably.unfinished
5717 drwx------ 1 user user 8192 Jan 27 22:58 videos
6528 -rw------- 1 user user 1097779088 Nov 5 16:15 release_Remix_OS_for_PC_Android_M_64bit_B2016112101.zip
8008 drwx------ 1 user user 4096 Jan 28 00:55 txt
64 drwx------ 1 user user 0 Dec 25 22:15 sw.old
[02:12:03] user@user:/media/user/exthdd/docs$ rmdir sw.old/
rmdir: не удалось удалить ‘sw.old/’: Нет такого файла или каталога
[02:12:57] user@user:/media/user/exthdd/docs$ rm -rf sw.old/
[02:13:15] user@user:/media/user/exthdd/docs$ ls -il
total 1072064
1456 drwx------ 1 user user 0 Aug 12 10:04 1old.or.probably.unfinished
5717 drwx------ 1 user user 8192 Jan 27 22:58 videos
6528 -rw------- 1 user user 1097779088 Nov 5 16:15 release_Remix_OS_for_PC_Android_M_64bit_B2016112101.zip
8008 drwx------ 1 user user 4096 Jan 28 00:55 txt
64 drwx------ 1 user user 0 Dec 25 22:15 sw.old
Второй каталог называется misc и содержит поврежденный файл:
[02:24:32] user@user:/media/user/exthdd/docs/txt$ ls -il
total 0
22607 drwx------ 1 user user 0 Dec 31 16:09 misc
[02:24:36] user@user:/media/user/exthdd/docs/txt$ ls -il misc/
ls: невозможно получить доступ к misc/patterns.mp4: Ошибка ввода/вывода
total 0
? -????????? ? ? ? ? ? patterns.mp4
[02:24:54] user@user:/media/user/exthdd/docs/txt$ rm -rf misc/
rm: невозможно удалить ‘misc/patterns.mp4’: Ошибка ввода/вывода
Как я могу удалить эти каталоги (и поврежденный файл внутри одного из них) без форматирования?
Я видел это сообщение об ошибке только тогда, когда возникали проблемы с доступом к самому диску. Учитывая, что это, похоже, внешний диск, я бы проверил кабель, интерфейс, соединения кабеля и диск: если что-либо из этого не работает должным образом, вы получите эти ошибки.
Прежде чем проверять диск и запускать fsck
на файловой системе, я бы не рекомендовал пробовать что-либо дальше.
Вы можете проверить, что записывает в это место или файл с помощью lsof
. Например:
lsof /media/user/exthdd/docs/
или даже:
lsof / |grep sw.old
Кроме того, вы можете создать резервную копию на отдельном диске или архиве и попытаться исправить основную файловую систему, если повреждения имеют место. Однако это зависит от типа файловой системы и/или конфигурации хранения, которую вы используете.
Ответ или решение
Ошибки ввода-вывода и недоступные для удаления директории
Проблемы, возникшие при попытке удалить директории на внешнем жестком диске, могут говорить о более серьезных неполадках, таких как ошибки файловой системы или недоступность самого устройства. В этом руководстве мы рассмотрим два основных случая, описанных вами: недоступную для удаления пустую директорию sw.old
и директорию misc
с поврежденным файлом.
1. Проблема с директорией sw.old
Вы столкнулись с тем, что команда rmdir
не распознает директорию sw.old
, несмотря на то, что она действительно пуста. Это может свидетельствовать о следующих возможных причинах:
- Ошибки файловой системы: директория могла быть повреждена, что и мешает корректной работе команд
rmdir
иls
. - Проблемы доступа: возможно, имеются ограничения на доступ, которые предотвратили удаление.
Рекомендации:
-
Проверьте состояние диска. Выполните команду
fsck
для проверки и исправления ошибок файловой системы. Например, используйте команду:sudo fsck /dev/sdX
Замените
/dev/sdX
на ваш диск. Эта команда может потребовать выполнение в режиме только для чтения, поэтому убедитесь, что диск размонтирован. -
Перезагрузите систему. Иногда перезагрузка может помочь в устранении временных ошибок.
-
Проверьте активные процессы. Используйте команду
lsof
, чтобы выяснить, не занята ли директория каким-либо процессом:lsof +D /media/user/exthdd/docs/sw.old
2. Проблема с директорией misc
В вашем случае с директорией misc
, выдающая сообщение "Input/output error" может говорить о том, что файл patterns.mp4
поврежден, и файловая система не может его корректно обработать.
Рекомендации:
-
Повторное выполнение
fsck
. Это первый шаг к устранению повреждений файловой системы. Если поврежденный файл мешает работе, возможно, вам нужно будет указать параметры, которые позволят выполнить более глубокую проверку:sudo fsck -y /dev/sdX
-
Удаление вручную. Если
fsck
не поможет, вы можете попробовать удалить директорию с помощью командыrm
, добавив--no-preserve-root
:sudo rm -rf --no-preserve-root /media/user/exthdd/docs/txt/misc
-
Копирование данных. Если у вас есть доступ к надежному хранилищу данных, рекомендуется выполнить полное резервное копирование вашего устройства перед выполнением более агрессивных операций. Это позволит вам сохранить ваши данные в случае критической ошибки.
Заключение
Устранение ошибок ввода-вывода и недоступных директорий требует внимательного подхода и чаще всего связано с проверкой состояния файловой системы и оборудования. Следуйте предложенным шагам, чтобы минимизировать риск потери данных и восстановить доступ к вашим директориям. Если вы не уверены в своих действиях или если ситуация не исправляется, лучше обратиться к специалисту по информационным технологиям.