Répertoire non supprimable dans Lost + Found

10

Comment puis-je supprimer ce répertoire? Je l'ai fait fscket il a trouvé des ordures, j'ai parcouru ces fichiers et il n'y avait rien d'important. J'ai donc essayé de supprimer le contenu de /lost+foundet tout est parti sauf cet étrange répertoire. Je pensais que le mettre /tmp(je peux déplacer ce répertoire sur le volume) l'effacerait au prochain redémarrage, mais il est toujours là après le redémarrage et un autre fsck.

Comme il semble que le problème soit de bas niveau et que jouer avec la propriété et les autorisations ne soit pas suffisant, je vous ai permis de reproduire le problème par vous-même. Prendre plaisir!

  • C'est sûr, vous pourrez démonter l'image pour vous débarrasser de ces répertoires sur votre machine ;
  • Ce n'est pas une iso-image, c'est le résultat dedd if=/dev/sda1 of=/files/broken.iso ;

J'ai fait une archive de 15 Mo avec l'image qui est ~ 1,2 Go. Vous pouvez le télécharger et l'utiliser avec les commandes suivantes:

cd /tmp
wget https://dl.dropboxusercontent.com/u/22701362/broken.tar.xz
tar xvf broken.tar.xz
mkdir test
sudo mount broken.iso test
cd test

Il y aurait deux répertoires (lors de la création de cette image, il semble qu'il y en ait deux sur mon disque):

/tmp/test> tree
.
├── 1
│   └── plexus-component-annotations-1.5.5.jar.sha1 [error opening dir]
└── 2
    └── #1589030 [error opening dir]

4 directories, 0 files

Bonne chance avec la suppression de ces deux répertoires:

/tmp/test> sudo rm -rf *
rm: cannot remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
rm: cannot remove '2/#1589030': Operation not permitted

/tmp/test> sudo chown -R root:root *
chown: changing ownership of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chown: cannot read directory '2/#1589030': Permission denied

/tmp/test> sudo chmod -R 777 *
chmod: changing permissions of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chmod: changing permissions of '2/#1589030': Operation not permitted
chmod: cannot read directory '2/#1589030': Permission denied
Douleur
la source
Comment est /tmpsur le même volume? Pourriez-vous publier la sortie de df? Veuillez également publier la sortie de sudo perl -MFile::Path -e 'rmtree("/tmp/foo") || die "$!"'juste au cas où nous recevions un message d'erreur plus informatif.
terdon
@terdon J'ai ajouté la sortie à la question. Pensez-vous que la sortie est même un peu utile?
Grief
1
Eh bien, la dfsortie nous montre que votre / tmp` est en fait un répertoire normal /et non un tmpfs qui est la configuration par défaut. C'est surprenant, mais explique à la fois pourquoi vous pouvez copier le répertoire /tmpet pourquoi il survit aux redémarrages. La perlsortie n'ajoute pas grand-chose, non, mais ça valait le coup. Je m'accroche aux pailles ici.
terdon
offtopic: dans Ubuntu /tmpest un répertoire normal par défaut. Ceci est fait pour éviter de le remplir jusqu'à 100% et pour économiser de la RAM. Il est nettoyé lors du démarrage. Ce comportement existe depuis longtemps.
Grief
J'essaierais de démarrer un livecd, puis de fouiller dans le système de fichiers.
Journeyman Geek

Réponses:

8

Une possibilité est l'indicateur immuable dans le cas du système de fichiers ext. Voir sortie de la lsattrcommande. S'il y en a i, il peut être retiré avecchattr -i filename

Un fichier avec l'attribut «i» ne peut pas être modifié: il ne peut pas être supprimé ou renommé, aucun lien ne peut être créé vers ce fichier et aucune donnée ne peut être écrite dans le fichier. Seul le superutilisateur ou un processus possédant la capacité CAP_LINUX_IMMUTABLE peut définir ou effacer cet attribut.

Dans ce cas, il se passe autre chose

Cela semble fonctionner,

> lsattr 1
-----a---------- 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1
rmdir: failed to remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
> chattr -a 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1

> lsattr 2
---D-ad--j--T--- 2/#1589030 
> chattr -D -a -d -j -T 2/\#1589030
> rmdir 2/\#1589030
JJ Hakala
la source
Nan. Avez-vous vu que j'ai utilisé sudo? J'apprécierais que vous téléchargiez l'image, la montiez et essayiez vous-même.
Grief
Ce n'est pas une 'image iso' c'est le résultat dedd if=/dev/sda1 of=broken.iso
Grief
Oui, vous avez probablement raison, désolé! Avez-vous eu l'occasion de reproduire le problème?
Grief
1
Oui, et ça a l'air vraiment bizarre.
JJ Hakala
Je me sens tellement stupide maintenant :( Mais vous êtes mon héros du jour, M. JJ Hakala
Grief
1

essayez de devenir l'utilisateur qui le possède pour le supprimer

sudo -u 6666 -g 19312 rm -rf ./#1589030
Amias
la source
sudo -u '#6666' -g '#19311' rm -rf \#1589030 rm: cannot remove '#1589030': Permission denied sudo -u '#6666' -g '#19311' chmod 777 \#1589030 chmod: cannot access '#1589030': Permission denied
Grief
Vous devez faire que l'utilisateur s'il n'existe pas
Amias
la création d'utilisateurs et de groupes avec ces UID et GID n'a pas aidé
Grief