Points d'interrogation figurant dans le répertoire. Erreurs IO aussi

44

Quelqu'un a-t-il déjà vu cela avant? J'ai un raid 5 monté sur mon serveur et pour une raison quelconque, il a commencé à montrer ceci:

jason @ box2: / mnt / raid1 / cra $ ls -alh
ls: impossible d'accéder à e6eacc985fea729b2d5bc74078632738: erreur d'entrée / sortie
ls: impossible d'accéder à 257ad35ee0b12a714530c30dccf9210f: erreur d'entrée / sortie
total 0
drwxr-xr-x 5 racine racine 123 2009-08-19 16:33.
drwxr-xr-x 3 racine racine 16 2009-08-14 17:15 ..
?????????? ? ? ? ? ? 257ad35ee0b12a714530c30dccf9210f
drwxr-xr-x 3 root root 57 2009-08-19 16:58 9c89a78e93ae6738e01136db9153361b
?????????? ? ? ? ? ? e6eacc985fea729b2d5bc74078632738

Les chaînes md5 sont des noms de répertoires réels et ne font pas partie de l'erreur. Les points d'interrogation sont impairs et tout répertoire comportant un point d'interrogation génère une erreur io lorsque vous essayez d'utiliser / delete / etc it.

Je n'ai pas pu démonter le lecteur en raison de "occupé". Le redémarrage du serveur l'a "corrigé", mais des erreurs de raid ont été générées à l'arrêt. J'ai configuré deux baies RAID 5 et les deux ont commencé à le faire sur des fichiers aléatoires. Les deux utilisent la configuration suivante:

mkfs.xfs -l taille = 128m -d agcount = 32
mount -t xfs -o noatime, logbufs = 8

Rien d'extraordinaire, mais une partie d'une configuration optimisée pour cette boîte. Nous ne partitionnons pas les lecteurs et cela a été suggéré comme un problème possible. Cela pourrait-il être le coupable?


la source
J'ai vu ces points d'interrogation lorsque l'autofs avait des problèmes pour monter un répertoire. La fermeture de autofs m'a permis de supprimer le répertoire et d'essayer de monter manuellement ce qui indiquait une erreur d'autorisations sur le serveur distant.
Pace

Réponses:

39

J'ai eu un problème similaire car mon répertoire avait des droits en lecture (r) mais pas en exécution (x). Ma liste de répertoire a montré:

myname@srv:/home$ ls -l service/mail/
ls: cannot access service/mail/001_SERVICE INBOX: Permission denied
total 0
-????????? ? ? ? ?                ? 001_SERVICE INBOX
d????????? ? ? ? ?                ? 01_CURRENT SERVICE

Le répertoire mail avait le bit r défini, mais pas le x dont vous avez besoin pour la liste ou la recherche et l'accès. Faire sudo chmod -R g+x mailrésolu ce problème.

utilisateur65174
la source
4
'sudo chmod -R g + x mail' et ensuite chmod +x mailrésolu mon problème, merci!
Glebm
6
Et si votre lsretour no such file or directoryavec un tas de ?????dans les privilèges / droits?
Kevin Meredith
11

Les points d'interrogation dans la lssortie indiquent simplement qu'il ne pourrait pas stat()entrer dans le répertoire. Vous pouvez également voir ceux-ci si vous êtes lsun répertoire pour lequel vous disposez d'une autorisation r (ead) mais non x (recherche). Cependant, dans ce cas, l' erreur I / O ne serait pas signalée .

Dans votre cas, il semble y avoir une erreur de disque ou éventuellement une corruption du système de fichiers. /var/log/messagesou dmesgest susceptible de révéler plus de détails.

mark4o
la source
10

Les réponses mentionnant la lecture, mais pas execute ou stat () sont correctes. Mais il y a une cause commune à ceci (autre que la corruption) qui m'a mordu plusieurs fois et qui correspondrait joliment à votre question avec les erreurs d'E / S. Si vous montez un système de fichiers de manière incorrecte, le point de montage de ce système de fichiers peut apparaître avec des points d'interrogation. Si vous voyez ceux où vous venez d'essayer de monter un nouveau système de fichiers, essayez ce qui suit avant de vous inquiéter de la corruption et de fsck.

$ sudo umount /mnt/raid1/cra/257ad35ee0b12a714530c30dccf9210f
$ ls -alh /mnt/raid1/cra

Vous devez voir le dossier 257ad35ee0b12a714530c30dccf9210f avec des autorisations et des attributs plutôt que des points d'interrogation. Si tel est le cas, recherchez d'autres options pour votre commande de montage ou le fichier / etc / fstab. Sinon, peut-être qu'il est temps de lire les autres réponses, de sauvegarder ce que vous pouvez et d'exécuter fsck.

pourrait-t-il
la source
c'était mon problème
endolithe
5

Effectuez une sauvegarde dès que cela est humainement possible, ne serait-ce que pour que, si vous le gâchez davantage tout en essayant de réparer tout dommage éventuel, vous puissiez revenir à l'état initial moins endommagé. Après la sauvegarde, vous pouvez exécuter fsck pour voir s’il ya des problèmes.

Steven Schlansker
la source
dans mon cas, c'est déjà la sauvegarde.
Paolo
1

Nous avions un serveur avec un système de fichiers corrompu (reiserfs) et il générait des entrées de répertoire avec des points d'interrogation pour tous les attributs sauf le nom de fichier. Dans notre cas, les noms de fichiers n'étaient pas affectés.

En outre, l'espace libre a été signalé de manière incorrecte. En utilisant, du -sh /*nous ne pouvions compter que pour environ 30 G, mais le disque durait plus de 200 G en utilisation.

Le redémarrage du serveur avec shutdown -rF nowpour forcer une vérification du système de fichiers ne fonctionnait pas. J'ai dû redémarrer en mode mono-utilisateur et exécuter:

fsck.reiserfs --rebuild-tree /dev/sda3

Cela a presque fonctionné. Il a traversé quelques passes, puis verrouillé. J'ai dû réinstaller le système d'exploitation.

Maintenez vos sauvegardes!


la source
1

J'ai également vu cela lors de l'exécution de autofs, mais autofs ne peut pas monter le répertoire. Alors, pour comprendre pourquoi il ne pouvait pas monter le répertoire, j'ai désactivé autofs et essayé de monter le répertoire manuellement (cela m'a également permis de supprimer le répertoire). J'ai essayé de monter le répertoire manuellement et j'ai constaté qu'il y avait une erreur d'autorisations. Après avoir corrigé cela, le répertoire est revenu à la normale.

Rythme
la source
1

Surveillez les autres processus en cours d'exécution sur le serveur, par exemple rsync.

[root@server upload]# ls -la
ls: cannot access .3bfb3dc5-cb55-435f-8e23-2afcab2c6873_image4993891600240007749.jpg.bV6VTV: No such file or directory
total 194496
drwxr-x--- 2 gx apache    1382 Jan 11 10:36 .
drwxr-x--- 3 gx apache       3 Jan 11 10:29 ..
-rw-r--r-- 1 gx apache   94850 Dec 10  2015 37d355b9-210d-45df-8061-968ea5cb9f31_mob.jpg
...
-rw-r--r-- 1 gx apache   10864 Jul 24  2015 3bfb23bf-8ff5-4603-aa57-9b23ca498e2c_internet.png
-rw-r--r-- 1 gx apache   10864 Jul 24  2015 .3bfb23bf-8ff5-4603-aa57-9b23ca498e2c_internet.png.nHmIPk
-????????? ? ?  ?            ?            ? .3bfb3dc5-cb65-435f-8e23-2agcab2c6873_image4993891600240007749.jpg.bV6VTV

Il génère des fichiers temporaires qui sont créés et supprimés rapidement, ce qui entraînera des erreurs si vous essayez d’appeler d’autres commandes simples de gestion de fichiers telles que rm , mv, etc.

Marton Tatai
la source
0

Juste pour donner un point de vue différent - je l’avais quand je créais par programme des répertoires à partir d’une liste de répertoires dans un fichier (en ruby).

Bien sûr, la ligne du fichier est apparue sous la forme d'une chaîne avec un \ n à la fin - ce qui semblait bien et semblait fonctionner. Cependant, lorsque j'ai commencé à créer des répertoires plutôt que d'être chompé, il en a résulté la création de deux de chaque répertoire: /whatiwantedet /whatiwanted?.

Luke Pearce
la source
0

Je vois parfois cela comme une erreur passagère lorsqu'un serveur NFS est fortement surchargé.

Le PO a posé des questions sur le RAID, mais plusieurs réponses mentionnent NFS, et c’est en fait la recherche qui m’a amené ici.

arp
la source