Directory inaccessibili

11 risposte [Ultimo messaggio]
Ritratto di zioandrea
zioandrea
(Geek)
Offline
Geek
Iscritto: 06/04/2013
Messaggi: 91

Salve,
tempo fa ho fatto un backup dei miei dati su un disco esterno USB formattato con ext4.

Adesso che sto tentando di recuperare dei file mi trovo davanti a delle situazioni come questa:

andy@linux-d8x5:/run/media/andy/USB-Linux/BackUP-Opensuse/miadir> ls -l
ls: impossibile accedere a 'DOCUMENTI': Errore di input/output
ls: impossibile accedere a 'foto-BDN.jpg': Errore di input/output
ls: impossibile accedere a 'LC-2302.2': Errore di input/output
ls: impossibile accedere a 'LC-2301.2': Errore di input/output
totale 24
d????????? ? ?   ?        ?            ? DOCUMENTI
drwxrwxr-x 2 500 users 4096 21 gen  2006 Duconta-LC-1
-????????? ? ?   ?        ?            ? foto-BDN.jpg
drwxrwxrwx 2 500 users 4096  2 mar  2011 LC-2301.1
...

In pratica, non riesco a eseguire un chmod o un chown su file con i punti interrogativi. Ne, tanto meno, a leggerli o rimuoverli.
Io non riesco a capire cosa possa essere successo e come si possa rimediare.
Qualcuno mi può dare una mano?

Grazie, Andrea

Ritratto di dragoncello
dragoncello
(Collaboratore)
Offline
Collaboratore
Iscritto: 16/07/2005
Messaggi: 2739

Il comando per cancellare i punti ? è rm* li devi cancellare uno alla volta.

SUSE Tumbleweed- kernel-5.6.0-1.2- kde-plasma-5.18.3.1- Intel Core i7 Asus P9x79 pro GeForce GTX 560-driver Nvidia-390.132.51- SSD samsung 850 pro 512 gb http://opensuse-community.org/

Ritratto di zioandrea
zioandrea
(Geek)
Offline
Geek
Iscritto: 06/04/2013
Messaggi: 91

Sarebbe troppo semplice!

Però se prendo la directory di prima che mi dà questo problema, ottengo:

sudo rm -r /run/media/andy/USB-Linux/BackUP-Opensuse/EBAY/Ducati/*
[sudo] password di root: 
rm: impossibile rimuovere '/run/media/andy/USB-Linux/BackUP-Opensuse/miadir/DOCUMENTI': Errore di input/output
rm: impossibile rimuovere '/run/media/andy/USB-Linux/BackUP-Opensuse/miadir/Duconta-LC-1/68_1_b.JPG': Errore di input/output
rm: impossibile rimuovere '/run/media/andy/USB-Linux/BackUP-Opensuse/miadir/foto-BDN.jpg': Errore di input/output
rm: impossibile rimuovere '/run/media/andy/USB-Linux/BackUP-Opensuse/miadir/LC-2301.1/piccola.jpg': Errore di input/output
...

andy@linux-d8x5:~> sudo rm -r /run/media/andy/USB-Linux/BackUP-Opensuse/miadir/DOCUMENTI
[sudo] password di root: 
rm: impossibile rimuovere '/run/media/andy/USB-Linux/BackUP-Opensuse/miadir/DOCUMENTI': Errore di input/output

Ossia vengono rimossi i file/dir senza punti interrogativi ma, su quelli problematici, ci si blocca con un "Errore di "input/output"

Anzi la cosa è più complicata.
Se una directory è "regolare" e tutti i suoi file sono regolari, viene rimossa correttamente.
Se una directory è "regolare" ma contiene file "balordi" (con i punti interrogativi), la dir resta apparentemente vuota.
Se una directory è "balorda" (ad es. DOCUMENTI), viene apparentemente rimossa perché non compare più con un ls.

Però, se cerco di cancellare ancora un file/directory "balordo" mi appare il messaggio "Errore di "input/output" e non "file/dir non esistente".
Inoltre qualsiasi operazione sul disco USB è lentissima. Qualche minuto per un semplice "ls".

Andrea

Ritratto di dragoncello
dragoncello
(Collaboratore)
Offline
Collaboratore
Iscritto: 16/07/2005
Messaggi: 2739

rm* (*) mi pare che non è stato messo,questo comando cancello i punti interrogativi "rmdir" cancella le directory[cartella] solo se vuote

SUSE Tumbleweed- kernel-5.6.0-1.2- kde-plasma-5.18.3.1- Intel Core i7 Asus P9x79 pro GeForce GTX 560-driver Nvidia-390.132.51- SSD samsung 850 pro 512 gb http://opensuse-community.org/

Ritratto di mauriziod
mauriziod
(Guru)
Offline
Guru
Iscritto: 01/06/2009
Messaggi: 1747

Errore di input è anche quando cerca di leggere dei file ma questi sono corrotti, l'unica è risistemare la formattazione del tuo disco e qui una bella guida:

http://mt68.hopto.org/index.php/2018/03/29/how-to-repair-a-broken-ext4-superblock-in-raspberry/

di solito però basta
sudo fsck  /dev/sdb1

(ovviamente /dev/sdb1 va cambiato con il tuo disco )

dopo aver effettuato la scansione confermiamo l’eventuale correzione di dati / settori. Finito->Riavviamo.

Day Dreaming

SO: Linux desktop Sistema: OpenSUSE Leap 15.1 (64bit) KDEE 5.12
SO: Linux desktop Sistema: OpenSUSE Tumbleweed (64bit) KDE 5
Miao

Ritratto di zioandrea
zioandrea
(Geek)
Offline
Geek
Iscritto: 06/04/2013
Messaggi: 91

dragoncello ha scritto:

rm* (*) mi pare che non è stato messo,questo comando cancello i punti interrogativi "rmdir" cancella le directory[cartella] solo se vuote

Cosa intendi?

andy@linux-d8x5:~/pppp> rm*
Se 'rm*' non è un errore di digitazione si può usare command-not-found per trovare il pacchetto che lo contiene, come ad esempio:
    cnf rm*
andy@linux-d8x5:~/pppp> rm (*)
bash: errore di sintassi vicino al token non atteso "*"
andy@linux-d8x5:~/pppp> rm* (*)
bash: errore di sintassi vicino al token non atteso "*"

rm -r * mi sembra analogo a rmdir. Sarebbe più forte un rm -rf *

Quello che mi lascia perplesso non è se un file/directory viene cancellato o meno, ma il fatto che un elemento con i punti interrogativi sembra cancellato ma lascia una "traccia".

Ritratto di mauriziod
mauriziod
(Guru)
Offline
Guru
Iscritto: 01/06/2009
Messaggi: 1747

Puoi usare dolphin o un altro (esempio pcmanfm) in modalità Root e cancellarli da GUI.
Cool
Però mi sa che la formattazione è corrotta, controllala!
Nerd

SO: Linux desktop Sistema: OpenSUSE Leap 15.1 (64bit) KDEE 5.12
SO: Linux desktop Sistema: OpenSUSE Tumbleweed (64bit) KDE 5
Miao

Ritratto di zioandrea
zioandrea
(Geek)
Offline
Geek
Iscritto: 06/04/2013
Messaggi: 91

Citazione:

Errore di input è anche quando cerca di leggere dei file ma questi sono corrotti, l'unica è risistemare la formattazione del tuo disco e qui una bella guida:

http://mt68.hopto.org/index.php/2018/03/29/how-to-repair-a-broken-ext4-superblock-in-raspberry/

di solito però basta
sudo fsck /dev/sdb1

Ho provato a seguire la guida (che contiene un errore di stompa, cfck invece di fsck).
Quello che ottengo è diverso da quanto descritto nella guid_:

andy@linux-d8x5:~> sudo fsck.ext4 -v /dev/sdc2
e2fsck 1.43.8 (1-Jan-2018)
USB-Linux contiene un file system con errori, controllo forzato.
Passo 1: Controllo di inode, blocco(i) e dimensioni
Errore nel leggere il blocco 8388640 (Errore di input/output) mentre recupero inode successivo dall'analisi. 
 Ignora l'errore<s>? sì
Forza la riscrittura<s>? sì
Errore nel leggere il blocco 8388641 (Errore di input/output) mentre recupero inode successivo dall'analisi. 
 Ignora l'errore<s>? 
 Forza la riscrittura<s>?
 ...

Devo andare avanti a forzare la riscrittura di tutti i blocchi danneggiati?
Ho paura che le dir e i file "balordi" siano un migliaio Sad

Se ben ricordo c'é un comando yes che può aiutare in questi casi. Però poi ho paura che non mi restino che pochissimi file utilizzabili.
Andrea

Ritratto di mauriziod
mauriziod
(Guru)
Offline
Guru
Iscritto: 01/06/2009
Messaggi: 1747

pare malridotto il tuo disco consiglio di non usarlo più dopo che salvi il salvabile.
Comunque fsck con l'opzione (messo dopo "fsck" e con spazi attorno)

-p ripara automaticamente
-y tentano di riparare automaticamente qualsiasi corruzione del filesystem rilevata (rispondi a tutte le domande con "si")
-f forza un controllo anche se riportato in uno stato pulito
-v output dettagliato, inclusi tutti i comandi specifici del file system che vengono eseguiti (vedrai tutti gli errori e il processo di recupero)

SO: Linux desktop Sistema: OpenSUSE Leap 15.1 (64bit) KDEE 5.12
SO: Linux desktop Sistema: OpenSUSE Tumbleweed (64bit) KDE 5
Miao

Ritratto di zioandrea
zioandrea
(Geek)
Offline
Geek
Iscritto: 06/04/2013
Messaggi: 91

Direi che sono messo proprio male Sad(

andy@linux-d8x5:~> sudo fsck.ext4 -pfv /dev/sdc2
Errore nel leggere il blocco 8388641 (Errore di input/output) mentre recupero inode successivo dall'analisi.  
 
USB-Linux: INCONSISTENZA INASPETTATA: ESEGUIRE fsck MANUALMENTE.
        (es., senza le opzioni -a o -p)

Faccio un ultimo tentativo con -y al posto di -p. Se non altro sembra procedere.

Dopo di che proverò a fare qualche recupero per poi dare un dd if=/dev/null of=/dev/sdc bs=1M e buttare il disco che non sembra essere più affidabile Sad

Andrea

Ritratto di zioandrea
zioandrea
(Geek)
Offline
Geek
Iscritto: 06/04/2013
Messaggi: 91

Dopo aver girato qualche ora il programma è terminato con questo report:

USB-Linux: ***** IL FILE SYSTEM È STATO MODIFICATO *****
 
      396368 inodes used (2.27%, out of 17424384)
         867 non-contiguous files (0.2%)
         149 non-contiguous directories (0.0%)
             # of inodes with ind/dind/tind blocks: 0/0/0
             Extent depth histogram: 392739/97
    62059698 blocks used (89.08%, out of 69668096)
           0 blocchi danneggiati
          11 large files
 
      333090 file regolari
       59738 directory
           0 character device files
           0 block device files
           2 fifo
  4294965579 collegamenti
         316 collegamenti simbolici (307 fast symbolic links)
        3243 socket
------------
      381549 file

Direi proprio che bisogna buttare il disco Sad

Anche se non è la soluzione che avrei sperato, metto comunque "risolto" e ringrazio tutti per la collaborazione.
Andrea