Se si sta tentando di eseguire xfs_repair , ottenendo il messaggio di errore che suggerisce di montare il filesystem per riprodurre il registro e dopo il montaggio continua a ricevere lo stesso messaggio di errore, potrebbe essere necessario eseguire una riparazione forzata (utilizzando il -L
flag con xfs_repair
). Questa opzione dovrebbe essere l'ultima risorsa.
Ad esempio, userò un caso in cui avevo una partizione di root corrotta sulla mia installazione di CentOS 7. Durante il tentativo di montare la partizione, ho ricevuto continuamente il seguente messaggio di errore:
mount: mount / dev / mapper / centos-root su / mnt / centos-root non riuscito: la struttura deve essere pulita
Sfortunatamente, forzare una riparazione comporterebbe l'azzeramento (distruzione) del registro prima di tentare una riparazione. Quando si utilizza questo metodo, esiste il potenziale di finire con più dati corrotti di quanto inizialmente previsto; tuttavia, possiamo utilizzare gli strumenti xfs appropriati per vedere che tipo di danno può essere causato prima di apportare modifiche permanenti.
Utilizzando xfs_metadump e xfs_mdrestore , è possibile creare un'immagine dei metadati della partizione interessata ed eseguire la riparazione forzata sull'immagine anziché sulla partizione stessa. I vantaggi di questo è la capacità di vedere il danno che viene fornito con una riparazione forzata prima di eseguirlo sulla partizione.
Per fare questo, avrai bisogno di una USB di dimensioni decenti o di un disco rigido esterno. Inizia montando l'unità USB: la mia USB si trovava in /dev/sdb1
, la tua potrebbe essere nominata diversamente.
mkdir -p /mnt/usb
mount /dev/sdb1 /mnt/usb
Una volta montato, esegui xfs_metadump
per creare una copia dei metadati della partizione su USB: di nuovo, la partizione interessata potrebbe essere diversa. In questo caso, avevo una partizione di root danneggiata situata in /dev/mapper/centos-root
:
xfs_metadump /dev/mapper/centos-root /mnt/usb/centos-root.metadump
Successivamente, vorrai ripristinare i metadati in un'immagine in modo da poter eseguire una riparazione e misurare il danno.
xfs_mdrestore /mnt/usb/centos-root.metadump /mnt/usb/centos-root.img
Ho scoperto che in modalità di ripristino xfs_mdrestore
non è disponibile e invece dovrai essere in modalità di ripristino di un CD CentOS live.
Finalmente, possiamo eseguire la riparazione sull'immagine:
xfs_repair -L /mnt/usb/centos-root.img
Una volta completata la riparazione e dopo aver valutato l'output e il potenziale danno, è possibile determinare se si desidera eseguire la riparazione sulla partizione.
Per eseguire la riparazione sulla partizione, eseguire semplicemente:
xfs_repair -L /dev/mapper/centos-root
Non dimenticare di controllare anche le altre partizioni per la corruzione. Dopo le riparazioni, riavviare il sistema e si dovrebbe essere in grado di avviarsi correttamente.
Ricorda che la -L
bandiera dovrebbe essere usata come ultima risorsa in cui non ci sono altre opzioni possibili da riparare.
Ho scoperto che questi articoli online hanno aiutato: