Simulant una corrupció a /home
En aquest escenari simularem que hem patit una corrupció a la partició /home
i quines eines podem utiltzar per intentar recuperar les dades.
Preparació de l'escenari
El primer pas que farem serà migrar el directori /home
a una partició diferent per a poder simular la corrupció. A continuació, simularem la corrupció i finalment recuperarem les dades.
-
Crearem una nova partició en el disc dur extern. Recorda que ja tenim 3 particions creades en aquest disc dur, per tant, la nova partició serà la quarta. Aquesta partició la farem de 600M de mida i la formatejarem amb el sistema de fitxers
xfs
.echo -e "n\np\n4\n\n+600M\nw" | fdisk /dev/nvme0n2 mkfs.xfs /dev/nvme0n2p4
-
Crearem un directori on muntarem la nova partició.
mkdir /mnt/home
-
Muntarem la nova partició en el directori
/mnt/home
.mount /dev/nvme0n2p4 /mnt/home
-
Copiarem totes les dades del directori
/home
a la nova partició.rsync -a /home/ /mnt/
-
Desmontarem la partició.
umount /mnt/home
-
Modificarem el fitxer
/etc/fstab
per a que la partició es munti automàticament en l'arrencada del sistema.echo "/dev/nvme0n2p4 /home xfs defaults,nodev 0 0" >> /etc/fstab
-
Comprovarem que la partició es munta automàticament en l'arrencada del sistema.
reboot
Simulant la corrupció
Un cop hem migrat el directori /home
a una partició diferent, si tot ha anat bé, hauriau de tenir el següent resultat:
Ara podem crear fitxers i directoris al directori /home
del vostre usuari normal, en el meu cas jordi
.
mkdir codi
mkdir dades
touch dades/pokemon.csv
touch codi/main.c
touch codi/Makefile
touch codi/README.md
touch .vim
Per a simular una corrupció editarem alguns valors de la partició /home
amb un editor hexadecimal.
-
Desmuntem la partició
/home
.umount /home
Compte!: Si esteu connectats per SSH, no podreu desmuntar la partició
/home
ja que el vostre usuari està utilitzant aquesta partició. En la primera sessió. Per tant, haure de fer-ho a la consola de la màquina virtual. -
Obrirem la partició
/home
amb un editor hexadecimal. Podeu instal·lar l'editor hexadecimalhexedit
amb la comandaapt install hexedit
.hexedit /dev/nvme0n2p4
-
Modifiqueu bits a l'atzar i deseu els canvis. Per fer-ho escriviu damunt dels valors hexadecimals altres valors. Un cop fet guardeu amb Ctrl + X i Y.
Fixeu-vos en els primers valors resaltats en negreta són els que he modificat.
-
Ara intentarem muntar la partició
/home
per a comprovar que ha estat corrompuda.mount /home
Si la partició
/home
s'ha corromput, hauríeu de veure un missatge d'error com aquest: -
Els diferents sistemes de fitxers tenen eines per a comprovar la integritat dels fitxers. Per exemple, el sistema de fitxers
xfs
té l'einaxfs_ncheck
que permet comprovar la integritat dels fitxers.xfs_ncheck /dev/nvme0n2p4
-
Per a reparar la partició
/home
utilitzarem l'einaxfs_repair
.xfs_repair /dev/nvme0n2p4
-
Un cop reparada la partició
/home
, la muntarem de nou.mount /home
-
Comprovarem que la partició
/home
s'ha muntat correctament i conté els fitxers que havíem creat.ls /home