Risolvere l’errore “Input/Output Error” in Linux

Ciao a tutti ed eccomi con un nuovo articolo.

Tratteremo un problema piuttosto tecnico che mi e’ capitato qualche giorno fa cercando di aggiornare un server di un cliente con distribuzione  Rocky Linux 8.

Nel dare il comando di aggiornamento, il sistema mi dava un errore nel db posizionato nella folder /var, cercando di accedere alla folder per capire l’errore, appare questa diciture “cannot open directory ‘var’: Input/Output error.

Infatti, eseguendo il comando dmesg, mi mostrato i seguenti errori.

XFS (dm-2): Metadata corruption detected at xfs dir2 leaf removename+0x407/0x470 [xfs]
XFS (dm-2): Unmount and run xfs_repair
XFS (dm-2): Internal error xfs trans cancel at line 954 of file fs/xfs/xfs trans.c. Calle
CPU: 1 PID: 3380 Comm: rm Kdump: Loaded Tainted: G 85.928444] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS

Questo di solito accade nel caso di un’improvvisa accensione mentre il sistema esegue alcune operazioni di I/O o qualcuno che forza lo spegnimento del sistema mentre il sistema sta ancora eseguendo un certo funzionamento critico. Di solito corrompe i metadati del file system che potrebbe essere riparato eseguendo alcuni comandi nelle partizioni.

Per riparare le partizioni, il primo passo è identificare quale partizione è corrotta. Di solito, non sarà possibile riparare il disco dopo l’avvio del sistema in quanto non è possibile eseguire il comando di riparazione del filesystem quando la partizione è montata con le autorizzazioni di lettura-scrittura.

Infatti, eseguendo un ls -la noto che la cartella var al posto dei permessi di cartelle e dell’utente presentava vari punti interrogativi, come questi.

?????? ??     ???   ??  var

Impossibile accedere alla cartella e inutile sono stati i tentativi di eseguire i comandi chown e chmod sulla cartella, ma allora che fare?

Premetto che la carella var del server è situata in un disco diverso dalla root principale, nel mio caso è in sdb1, ma ecco come ho risolto il problema.

Essendo il server una VM, ho spento in primis la macchina, ho scaricato e successivamente collegato la ISO di Rocky Linux 8 a vmware e ho fatto in modo che la macchina virtuale facesse il boot da dalla stessa.

Avviata la ISO, ho selezionato la voce Throubleshooting e successivamente Rescue a Rocky Linux system.

“Queste sono operazioni critiche e possono comportare la perdita di dati; quindi, ricontrolla sempre prima di eseguire qualsiasi comando. Leggere la descrizione completa e utilizzare il comando di aiuto per capire completamente l’operazione. Questo problema è iniziato sulla macchina virtuale era in esecuzione un aggiornamento. Improvvisamente a macchina virtuale si e spenta o l’host ospitante si ‘ riavviato, questo ha corrotto i metadati della macchina virtuale. Dopo aver riavviato il sistema durante l’esecuzione di qualsiasi script bash e rimosso i file lanciando così l’errore “Input/Output error.”

Una volta terminato il processo di avvio, dovrebbe fermarsi alla shell di comando con attesa per l’input dell’utente. Ho Selezionato l’opzione 2 per montare il file system locale con Solo lettura.

Ho poi eseguito il comando df -h per controllare il file system. In questo caso, i file system del disco non sono montati, quindi ho provato a scansionare il disco e ad attivarlo.

df -h

Dopo di che ho eseguito il comando lvscan per conoscere le altre partizioni inattive. Ho notato che /dev/sdb1 era inattivo.

Ho cercato successivamente di attivare il percorso inattivo del mapper di sviluppo usando il comando vgchange -a y

Ho poi rieseguito il comando lvscan indipendentemente dal fatto che lo stato inattivo sia cambiato o meno.

Infine, ho dato il comando xfs-repair con il percorso di sviluppo mapper.

lvscan

vgchange -a y

lvscan

sbin/xfs_repair -d /dev/sdb1

 l’opzione -d indica che viene forzata la riparazione.

Terminata la riparazione senza errori ho semplicemente riavviato il sistema con un reboot.

Riavviata la macchina le impostazione di var sono state riparate i dati erano fortunatamente integri e ho potuto eseguire l’aggiornamento.

Spero di esservi stato utile.

Un saluto

Adam

Pubblicato da appuntidiadam

Sistemista informatico, e grande appasionato di astronomia e fisica, ricercatore indipendente in cosmologia

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.