Не удаляется, даже от рута по rm -rf, ошибка типа rm: невозможно удалить '/var/lib/pacman/local/_hren/files': Неправильное сообщение

Сабдж.

Дело было так - делаем pacman -Syu, закачивает, распаковывает и ругается на python2-pep517, снести его не дает, переустановить тоже. Пытаемся ручками прибить места хранения и находим гнилое место - директорий. mv в имя _hren - единственное, что удалось сделать. Далее что бы ни пробовал - все одно,

rm -rf
rmdir
mv .. /dev/null

mv: не удалось выполнить stat для '_hren/files': Неправильное сообщение
chattr: Неправильное сообщение while trying to stat ../_hren//mtree

ls -latr
ls: невозможно получить доступ к 'mtree': Неправильное сообщение
ls: невозможно получить доступ к 'files': Неправильное сообщение
итого 76
-????????? ? ? ? ? ? mtree
-????????? ? ? ? ? ? files
dr-------- 2 root root 4096 фев 15 18:03 .
drwxr-xr-x 1196 root root 69632 фев 15 18:24 ..
chmod: невозможно получить доступ к '_hren/mtree': Неправильное сообщение
chmod: невозможно получить доступ к '_hren/files': Неправильное сообщение

Нагуглить ничего разумного не смог.

Какие будут мнения?
wau
Какие будут мнения?
Попробуйте
cd /var/lib/pacman/local/_hren
sudo rm -i *
#да
#да да ....
Интересно, а что покажут выводы ls -il /var/lib/pacman/local/_hren .... ls -il /var/lib/pacman/local/_hren/files ... ls -il /var/lib/pacman/local/_hren /mtree ???
Ошибки не исчезают с опытом - они просто умнеют
думаю для начала следует проверить: fsck
ls -il /var/lib/pacman/local/_hren
ls: невозможно получить доступ к '/var/lib/pacman/local/_hren/mtree': Неправильное сообщение
ls: невозможно получить доступ к '/var/lib/pacman/local/_hren/files': Неправильное сообщение
итого 0
? -????????? ? ? ? ? ? files
? -????????? ? ? ? ? ? mtree

ls -il /var/lib/pacman/local/_hren/files
ls: невозможно получить доступ к '/var/lib/pacman/local/_hren/files': Неправильное сообщение

ls -il /var/lib/pacman/local/_hren/mtree
ls: невозможно получить доступ к '/var/lib/pacman/local/_hren/mtree': Неправильное сообщение

rm -i *
rm: невозможно удалить 'files': Неправильное сообщение
rm: невозможно удалить 'mtree': Неправильное сообщение
wau, ты же уже освоил strace - мог бы и запустить и посмотреть какой системный вызов не дает ...
Сначала идет openat .... и другие, среди которых (почти в конце) есть один интересный вызов unlinkat (unlink) - вот что о нем пишут
Системный вызов unlinkat() работает также как unlink() ...
unlink() удаляет имя из файловой системы. Если это имя было последней ссылкой на файл и больше нет процессов, которые держат этот файл открытым, данный файл удаляется и место, которое он занимает, освобождается для дальнейшего использования.
Если имя было последней ссылкой на файл, но какие-либо процессы всё ещё держат этот файл открытым, файл будет оставлен, пока последний файловый дескриптор, указывающий на него, не будет закрыт.
Если имя указывает на символьную ссылку, то будет удалена ссылка.
Если имя указывает на сокет, FIFO или устройство, то имя будет удалено, но процессы, которые открыли любой из этих объектов могут продолжать его использовать.
Если rm не удаляет файл, то такие файлы обычно называют плохие файлы, как правило не удаляются если держит какой то процесс - нужно узнать этот процесс. Но есть и еще не хорошие нюансы - это когда одному inode соответствует несколько файлов (как при принятии большого количества алкоголя - двоится). Обычно удаляют сам inode.
Ошибки не исчезают с опытом - они просто умнеют
wau
ls -il /var/lib/pacman/local/_hren
ls: невозможно получить доступ к '/var/lib/pacman/local/_hren/mtree': Неправильное сообщение
ls: невозможно получить доступ к '/var/lib/pacman/local/_hren/files': Неправильное сообщение
Этой командой хотел узнать номер inode - не получилось.
Рекомендую для начала перегрузиться и проверить если ли изменения - иногда рассасывается само собой.
Ошибки не исчезают с опытом - они просто умнеют
Есть много способов удаления плохих файлов, погугли - не найдешь, завтра поищу у себя.
В основном не удаляется. если держит процесс, но в твоем случае, вероятнее всего в имени файла нечитаемые символы или другая кодировка ... и другое, вообщем что то типа этого - способы разные, но есть один, если причина в этом, - жесткий способ - удаление по hex-коду
Ошибки не исчезают с опытом - они просто умнеют
С утра еще раз посмотрел на свежую голову и, похоже, ситуация серъезнее, чем представлял ее вчера ночью.
Причина, имхо, не в наименовании файла, а, скорее всего, учитывая что работал pacman, связана с процессом зомби - был несуществующий процесс, который завершился, но осталась какая то плохая запись - скорее всего (что потверждается и отсутсвием иноде) несуществующий или неправильный иноде. А если это так, то скорее всего будет не возможно удалить даже с Live CD ...
И в данной ситуации, если причина действительно в этом, то полностью согласен с ghost
ghost
думаю для начала следует проверить: fsck

EDIT 1 - интересно, с целью ликбеза, узнать на каком системном вызове дает ошибку strace для команды rm ...

EDIT 2 - этот вывод тоже не получится посмотреть? - sudo debugfs -R 'imap /var/lib/pacman/local/_hren' /dev/sdaN ... не забываем изменить N
неплохо бы посмотреть этот же вывод, но вместо _hren вписать то, что там было на самом деле
Ошибки не исчезают с опытом - они просто умнеют
Комп не мой, доступ к нему по ssh, потому с активными действиями временю. За напоминание о srtace спасибо, как-то в голову не пришло его к rm применить.
_hren - это реальное имя (запало как-то в душу высказывание С. Фарады в роли доктора из Миллиона в брачной корзине)
strace rm -rf /var/lib/pacman/local/_hren

execve("/usr/bin/rm", ["rm", "-rf", "/var/lib/pacman/local/_hren"], 0x7ffc47e74b00 /* 22 vars */) = 0
brk(NULL)                               = 0x5642da75d000
arch_prctl(0x3001 /* ARCH_??? */, 0x7fff3ca4d310) = -1 EINVAL (Недопустимый аргумент)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=236316, ...}) = 0
mmap(NULL, 236316, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9bd8fb7000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`q\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0", 32, 848) = 32
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\22\344\22\321\223\216\303\377yu\37\16\205\363\33\305"..., 68, 880) = 68
fstat(3, {st_mode=S_IFREG|0755, st_size=2145592, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9bd8fb5000
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0", 32, 848) = 32
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\22\344\22\321\223\216\303\377yu\37\16\205\363\33\305"..., 68, 880) = 68
mmap(NULL, 1856312, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9bd8def000
mmap(0x7f9bd8e14000, 1359872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7f9bd8e14000
mmap(0x7f9bd8f60000, 307200, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x171000) = 0x7f9bd8f60000
mmap(0x7f9bd8fab000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bb000) = 0x7f9bd8fab000
mmap(0x7f9bd8fb1000, 13112, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f9bd8fb1000
close(3)                                = 0
arch_prctl(ARCH_SET_FS, 0x7f9bd8fb6580) = 0
mprotect(0x7f9bd8fab000, 12288, PROT_READ) = 0
mprotect(0x5642d9761000, 4096, PROT_READ) = 0
mprotect(0x7f9bd901c000, 4096, PROT_READ) = 0
munmap(0x7f9bd8fb7000, 236316)          = 0
brk(NULL)                               = 0x5642da75d000
brk(0x5642da77e000)                     = 0x5642da77e000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3036064, ...}) = 0
mmap(NULL, 3036064, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9bd8b09000
close(3)                                = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
lstat("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
newfstatat(AT_FDCWD, "/var/lib/pacman/local/_hren", {st_mode=S_IFDIR|0777, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0
openat(AT_FDCWD, "/var/lib/pacman/local/_hren", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_NOFOLLOW|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
fcntl(3, F_GETFL)                       = 0x38800 (flags O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_NOFOLLOW|O_DIRECTORY)
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents64(3, /* 4 entries */, 32768)   = 112
close(3)                                = 0
openat(AT_FDCWD, "/var/lib/pacman/local/_hren", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_NOFOLLOW|O_CLOEXEC|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
fcntl(3, F_GETFL)                       = 0x38800 (flags O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_NOFOLLOW|O_DIRECTORY)
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
fstatfs(3, {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=5031794, f_bfree=2005432, f_bavail=1898430, f_files=1286752, f_ffree=975883, f_fsid={val=[3714487192, 3430174318]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0
fcntl(3, F_DUPFD_CLOEXEC, 3)            = 4
getdents64(3, /* 4 entries */, 32768)   = 112
getdents64(3, /* 0 entries */, 32768)   = 0
close(3)                                = 0
unlinkat(4, "mtree", 0)                 = -1 EBADMSG (Неправильное сообщение)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2998, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2998
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/usr/share/locale/ru_RU.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru_RU.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru_RU/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru/LC_MESSAGES/coreutils.mo", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=483474, ...}) = 0
mmap(NULL, 483474, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9bd8a92000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=56353, ...}) = 0
read(3, "# GNU libc iconv configuration.\n"..., 4096) = 4096
read(3, "B1002//\tJUS_I.B1.002//\nmodule\tJU"..., 4096) = 4096
read(3, "\tISO-IR-110//\t\tISO-8859-4//\nalia"..., 4096) = 4096
read(3, "\t\t\tISO-8859-14//\nalias\tISO_8859-"..., 4096) = 4096
read(3, "DIC-ES//\nalias\tEBCDICES//\t\tEBCDI"..., 4096) = 4096
read(3, "CDIC-CP-ES//\t\tIBM284//\nalias\tCSI"..., 4096) = 4096
read(3, "\t\tIBM863//\nalias\tOSF1002035F//\t\t"..., 4096) = 4096
read(3, "937//\t\tIBM937//\nmodule\tIBM937//\t"..., 4096) = 4096
read(3, "UJIS//\t\t\tEUC-JP//\nmodule\tEUC-JP/"..., 4096) = 4096
read(3, "lias\tISO2022CN//\t\tISO-2022-CN//\n"..., 4096) = 4096
brk(0x5642da79f000)                     = 0x5642da79f000
read(3, "O_5427-EXT//\nalias\tISO_5427EXT//"..., 4096) = 4096
read(3, "ost\nmodule\tMAC-SAMI//\t\tINTERNAL\t"..., 4096) = 4096
read(3, "112//\t\tINTERNAL\t\tIBM1112\t\t1\nmodu"..., 4096) = 4096
read(3, "s\tCP9448//\t\tIBM9448//\nalias\tCSIB"..., 4096) = 3105
read(3, "", 4096)                       = 0
close(3)                                = 0
write(2, "rm: ", 4rm: )                     = 4
write(2, "\320\275\320\265\320\262\320\276\320\267\320\274\320\276\320\266\320\275\320\276 \321\203\320\264\320\260\320\273\320\270\321"..., 71невозможно удалить '/var/lib/pacman/local/_hren/mtree') = 71
openat(AT_FDCWD, "/usr/share/locale/ru_RU.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru_RU.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru_RU/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/share/locale/ru/LC_MESSAGES/libc.mo", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=194209, ...}) = 0
mmap(NULL, 194209, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9bd8fc1000
close(3)                                = 0
write(2, ": \320\235\320\265\320\277\321\200\320\260\320\262\320\270\320\273\321\214\320\275\320\276\320\265 \321\201\320\276\320"..., 45: Неправильное сообщение) = 45
write(2, "\n", 1
)                       = 1
unlinkat(4, "files", 0)                 = -1 EBADMSG (Неправильное сообщение)
write(2, "rm: ", 4rm: )                     = 4
write(2, "\320\275\320\265\320\262\320\276\320\267\320\274\320\276\320\266\320\275\320\276 \321\203\320\264\320\260\320\273\320\270\321"..., 71невозможно удалить '/var/lib/pacman/local/_hren/files') = 71
write(2, ": \320\235\320\265\320\277\321\200\320\260\320\262\320\270\320\273\321\214\320\275\320\276\320\265 \321\201\320\276\320"..., 45: Неправильное сообщение) = 45
write(2, "\n", 1
)                       = 1
close(4)                                = 0
lseek(0, 0, SEEK_CUR)                   = -1 ESPIPE (Недопустимая операция смещения)
close(0)                                = 0
close(1)                                = 0
close(2)                                = 0
exit_group(1)                           = ?
+++ exited with 1 +++

 
Зарегистрироваться или войдите чтобы оставить сообщение.