Come interpretare e correggere un errore di input / output in Linux?


21

Sto eseguendo un backup giornaliero con rsync. A partire da alcuni giorni, uno dei file ha generato questo errore durante il backup:

rsync: read errors mapping "/home/folder/file.ext": Input/output error (5)
WARNING: /home/folder/file.ext failed verification -- update discarded (will try again).

Qual è il miglior modo di agire? È solo un file rotto? O c'è qualcosa di sbagliato con il disco rigido nella posizione del file? Devo semplicemente eliminarlo e copiare una delle versioni del backup nella posizione del file? O c'è qualcos'altro / altro che dovrei fare?

Risposte:


17

L'errore rsync

 read errors mapping ....: Input/output error (5)

indica l'impossibilità di rsync di leggere o scrivere un file. Le cause più probabili di questo errore sono i difetti del disco, nella directory SRC o TGT. Altre possibilità includono autorizzazioni insufficienti, blocco dei file da parte di programmi antivirus e maybealtre cause.

Il primo passo verso una diagnosi è provare a copiare i file manualmente. Ciò può funzionare se, ad esempio, l'origine dell'errore era un difetto del disco nella directory TGT; ripetendo l'operazione in un secondo momento, si scriverà in un'altra sezione del disco e il problema potrebbe essere evaporato.

In alternativa, è possibile scoprire che non è possibile accedere al file nella directory SRC. In questo caso, ti suggerisco di utilizzare qualsiasi utilità di controllo del disco disponibile per la tua distribuzione.

Privilegi insufficienti, antivirus, sono più facili da diagnosticare.

Infine, se nella directory SRC è presente un settore danneggiato, è possibile escluderlo dalle future esecuzioni di rsync mediante

rsync -av --exclude='/home/my_name/directory_with_corrupt_files/*'

Grazie! A rischio che questa sia un'altra domanda, come faccio a sapere se si tratta della directory SRC o TGT se posso escludere privilegi o antivirus?
Uncovery

Un antivirus blocca i file per qualche tempo. Se questo è il problema, riprovare lo stesso comando qualche tempo dopo non dovrebbe presentare lo stesso errore. La questione dei privilegi è semplice: utilizzare l'account root su entrambe le macchine SRC e TGT. Se non puoi farlo, controlla che i file su cui rsync fallisce siano accessibili a te, cioè appartengano all'account che sta tentando di accedervi e se non lo fanno che hai accesso in lettura ad essi. Se questo risolve la tua questione, ti preghiamo di ricordare di accettare la mia risposta, è utile per altri lettori.
MariusMatutiae,

Hai frainteso il mio commento sopra. Non importa, farò una nuova domanda.
scoperto il

TGT è solo un obiettivo, giusto? Potrebbe essere meglio dire solo obiettivo, quindi.
Jasper,

Sembra che la tua risposta abbia dato alla luce un intero articolo bobcares.com/blog/rsync-input-output-error_5 (senza riferimenti, ovviamente).
Yaroslav Nikitenko

3

Ho avuto un problema simile, ho avuto un dispositivo con fusibile tramite USB, che spesso si disconnetteva, causando errori di I / O. Il mio backup non potrebbe mai finire perché gli errori di I / O inizierebbero a metà strada in rsync e, nonostante avessi eseguito rsync ripetutamente, ad un certo punto la sincronizzazione non sarebbe andata oltre l'aggiornamento dei file esistenti.

La mia soluzione era usare

--ignore-existing 

opzione. In questo modo ho potuto eseguire la sincronizzazione in un ciclo fino a vedere uno stato di uscita 0.

Naturalmente, in questo caso non mi importava degli aggiornamenti ai file esistenti.


0

Ho 2 unità esterne che tengo sincronizzato, utilizzando rsync. Eseguo questo compito regolarmente su una delle due macchine e passo spesso dall'una all'altra per comodità. Ho 4 macchine con Debian 9 e uso queste unità su ognuna di esse.

Questa mattina ho usato il seguente:

rsync -ahv --delete drive-x drive-y 

ed è stato sorpreso di avere alcune centinaia di guasti segnalati.

principalmente: rsync: readlink_stat... failed: Input/output error (5)
anche:rsync: rsync: recv_generator: mkdir ... failed: Read-only file system (30)

Nel processo per scoprire cosa è successo, ho rimontato due volte le unità, riavviato, ho funzionato rsyncsenza --deletee fondamentalmente i miei normali tentativi di riparare qualcosa che ha funzionato in modo affidabile per lungo tempo. Ho anche pensato di installare di rsyncnuovo. Prima di farlo, ho deciso di utilizzare rsyncle 2 unità sull'altro computer, che eseguo offline. rsyncha funzionato come dovrebbe.

Dopo aver letto il materiale pubblicato qui, ho installato clamav, aggiornato le firme e scansionato la mia directory home. Lo uso regolarmente su una macchina diversa. Ho trovato 1 e solo 1 PUA e l'ho eliminato. Elimina sempre le PUA. Ho quindi rimontato le due unità con questa macchina e ho aggiunto diversi file di prova e cartelle a ciascuna unità.

Ho corso rsync -ahv --delete drive_x drive_ye tutto ha funzionato bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.