F2FS record fsync data failed

Introduction


Aujourd'hui, juste avant de partir en vacance, je compile Linux Xanmod (5.7.8-xanmod2) et pendant ce temps, je copie quelques fichiers de mon tel vers mon serveur.
Après être passé à autre chose, je me rends compte que l'ordinateur à partiellement freeze. Je vais sur une console (CTRL + ALT + F3) et je constate que je peux tranquilement utiliser la commande reboot.
Je redémarre. Le log d'extinction s'affiche, mais l'ordinateur ne s'éteint pas. Damned. Après un peu d'attente, je finis par forcer l'extinction du PC en appuyant sur le bouton fatidique.
Et là, patatras, au redémarrage : erreur de FSCK. Impossible de démarrer en mode rescue également. Le noyau fallback ne marche pas non plus, ni même le noyau linux classique. Je sens la merde venir.
Je sors ma clé USB à tout faire et démarre sur Manjaro (plus pratique pour le navigateur Web). Là, j'essaie d'utiliser fsck sur ma partition système. Et là c'est la terreur qui s'empare de moi:

# fsck.f2fs /dev/sda3
Info: [/dev/sda3] Disk Model: Samsung SSD 850 
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 1849073664 (902868 MB)
Info: MKFS version
  "Linux version 5.3.1-arch1-1-ARCH (builduser@heftig-3999379) (gcc version 9.1.0 (GCC)) #1 SMP PREEMPT Sat Sep 21 11:33:49 UTC 2019"
Info: FSCK version
  from "Linux version 5.6.11-1-MANJARO (builder@fc465a25ec09) (gcc version 9.3.0 (Arch Linux 9.3.0-1)) #1 SMP PREEMPT Wed May 6 10:20:32 UTC 2020"
    to "Linux version 5.6.11-1-MANJARO (builder@fc465a25ec09) (gcc version 9.3.0 (Arch Linux 9.3.0-1)) #1 SMP PREEMPT Wed May 6 10:20:32 UTC 2020"
Info: superblock features = 0 : 
Info: superblock encrypt level = 0, salt = 00000000000000000000000000000000
Info: total FS sectors = 1849073664 (902868 MB)
Info: CKPT version = 47185563
[f2fs_do_mount:3323] record_fsync_data failed


Alors là ça sent pas bon. VRAIMENT pas bon. Après quelques recherche et beaucoup de chance, j'ai pu résoudre le problème !!!

Resolution du problème



En cherchant record_fsync_data sur DuckDuck Go, je finis par trouver ceci: https://bugzilla.kernel.org/show_bug.cgi?id=200871
Voilà qui est fort intéressant.
J'essaie de monter la partition en utilisant mount -o fsync_mode=strict -t f2fs /dev/sda3 /mnt. Et PAF, ça marche !!!
Fort content, je me dis que je pourrais déjà sauvegarder les quelques fichiers pas encore sur le serveur dans le pire des cas.
Par curiosité, je démonte la partition, et réessaie fsck. Et là, bim. Ça marche. J'attends patiemment la fin du fsck, et j'entreprends de redémarrer.

Et là, le soulagement : tout fonctionne de nouveau. Problem fixed.

J'espère que ce petit post vous aura aidé !


Par aviallon, le 11/07/20 à 12:10:31. Modifié le 30/07/20 à 08:41:19 par aviallon

Commentaires

Il semble que la résolution du problème ne fut que temporaire. J'ai donc tout sauvegardé, et recréé la partition avec cette commande :
mkfs.f2fs -O extra_attr,inode_checksum,lost_found,sb_checksum,compression /dev/sdxY

Cela permet, entre autres, d'avoir de la compression au niveau du système de fichiers, mais également d'avoir des checksums utiles pour fsck.
Écrit le 03/09/20 à 08:41:12