Crash disque systeme ne fonctionne plus correctement

Bonjour a tous,

Un ami qui a un Yunohost sur un RPI3 a eu une coupure de courant qui a planté son serveur.
Son serveur est installé de telle façon que le FSTAB redirige vers une partition (le rootfs “/”) sur un SSD relié en USB et non directement sur la carte micro SD qui avait des performances déplorables.

Ça fait 2 ans que le serveur tourne correctement sans aucun problème. Mais récemment une coupure de courant est intervenue au mauvais moment ce qui a cramé le MBR. La partition ETX4 n’était plus détectée et les fichiers inaccessibleS. Un FSCK a réglé le problème et les fichiers ainsi que le système démarre… mais avec des erreurs qui plombent l’utilisation.

Il s’agit d’un YunoHost 4.4.3 dont les services suivants sont “failed” au démarrage :

HAVEGED

● haveged.service - Entropy daemon using the HAVEGE algorithm
   Loaded: loaded (/lib/systemd/system/haveged.service; enabled; vendor preset: enabled)
   Active: failed (Result: resources)
     Docs: man:haveged(8)
           http://www.issihosts.com/haveged/

Aug 23 21:17:08 sdiri.fr systemd[1]: haveged.service: Failed to run 'start' task: No such file or directory
Aug 23 21:17:08 sdiri.fr systemd[1]: haveged.service: Failed with result 'resources'.
Aug 23 21:17:08 sdiri.fr systemd[1]: Failed to start Entropy daemon using the HAVEGE algorithm.

ADVANCED KEY VALUE

● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: failed (Result: resources) since Thu 2023-08-24 20:15:44 BST; 3min 28s ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)

Aug 24 20:15:44 sdiri.fr systemd[1]: redis-server.service: Service RestartSec=100ms expired, scheduling restart.
Aug 24 20:15:44 sdiri.fr systemd[1]: redis-server.service: Scheduled restart job, restart counter is at 5.
Aug 24 20:15:44 sdiri.fr systemd[1]: Stopped Advanced key-value store.
Aug 24 20:15:44 sdiri.fr systemd[1]: redis-server.service: Start request repeated too quickly.
Aug 24 20:15:44 sdiri.fr systemd[1]: redis-server.service: Failed with result 'resources'.
Aug 24 20:15:44 sdiri.fr systemd[1]: Failed to start Advanced key-value store.

C’est pas le seul “failed” j’ai aussi le “network time service” qui ne se lance pas, ainsi que le le PHP7 FPM qui provoque d’ailleurs un deadlock avec APT puisqu’il est impossible d’effectuer une mise à jour à cause de paquet qui ne s’installent pas correctement. D’ailleurs pour le temps je suis obligé de paramétrer la date et l’heure manuellement afin qu’APT trouve ses sources. Sinon ça ne marche pas.

NETWORK TIME SERVICE

● ntp.service - Network Time Service
   Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/ntp.service.d
           └─ynh-override.conf
   Active: failed (Result: resources)
     Docs: man:ntpd(8)

Aug 24 20:15:43 sdiri.fr systemd[1]: ntp.service: Failed to run 'start' task: No such file or directory
Aug 24 20:15:43 sdiri.fr systemd[1]: ntp.service: Failed with result 'resources'.
Aug 24 20:15:43 sdiri.fr systemd[1]: Failed to start Network Time Service.

Un dpkg --configure -a donne ça par exemple :

Setting up php7.3-fpm (7.3.31-1~deb10u4) ...
Job for php7.3-fpm.service failed because the control process exited with error code.
See "systemctl status php7.3-fpm.service" and "journalctl -xe" for details.
invoke-rc.d: initscript php7.3-fpm, action "restart" failed.
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2023-08-24 19:53:23 BST; 31ms ago
     Docs: man:php-fpm7.3(8)
  Process: 7757 ExecStart=/usr/sbin/php-fpm7.3 --nodaemonize --fpm-config /etc/php/7.3/fpm/php-fpm.conf (code=exited, status=78)
 Main PID: 7757 (code=exited, status=78)

Aug 24 19:53:23 sdiri.fr systemd[1]: Starting The PHP 7.3 FastCGI Process Manager...
Aug 24 19:53:23 sdiri.fr php-fpm7.3[7757]: [24-Aug-2023 19:53:23] ERROR: [pool my_webapp] the chdir path '/var/www/my_webapp' does not exist or is not a directory
Aug 24 19:53:23 sdiri.fr php-fpm7.3[7757]: [24-Aug-2023 19:53:23] ERROR: failed to post process the configuration
Aug 24 19:53:23 sdiri.fr php-fpm7.3[7757]: [24-Aug-2023 19:53:23] ERROR: FPM initialization failed
Aug 24 19:53:23 sdiri.fr systemd[1]: php7.3-fpm.service: Main process exited, code=exited, status=78/CONFIG
Aug 24 19:53:23 sdiri.fr systemd[1]: php7.3-fpm.service: Failed with result 'exit-code'.
Aug 24 19:53:23 sdiri.fr systemd[1]: Failed to start The PHP 7.3 FastCGI Process Manager.
dpkg: error processing package php7.3-fpm (--configure):
 installed php7.3-fpm package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 php7.3-fpm

En résumé voici les services qui plantent :

● atd.service                                                                                                             loaded failed failed    Deferred execution scheduler                                                 
● dovecot.service                                                                                                         loaded failed failed    Dovecot IMAP/POP3 email server                                               
● fail2ban.service                                                                                                        loaded failed failed    Fail2Ban Service                                                             
● haveged.service                                                                                                         loaded failed failed    Entropy daemon using the HAVEGE algorithm                                    
● ntp.service                                                                                                             loaded failed failed    Network Time Service                                                         
● php7.3-fpm.service                                                                                                      loaded failed failed    The PHP 7.3 FastCGI Process Manager                                          
● postfix@-.service                                                                                                       loaded failed failed    Postfix Mail Transport Agent (instance -)                                    
● redis-server.service                                                                                                    loaded failed failed    Advanced key-value store                                                     
● systemd-hostnamed.service                                                                                               loaded failed failed    Hostname Service

Comme le système fonctionne depuis 2 ans avec plusieurs utilisateurs mail\nextcloud je préfère passer du temps à le restaurer plutôt que de farfouiller dans tous les fichiers des utilisateurs et de les migrer sur un nouveau système.

A noter que l’interface d’admin fonctionne. Je pense que ces soucis viennent de fichiers manquant ou corrompus qu’il faudrait réinstaller… mais comme APT est bloqué… Une aide serait grandement appréciée.

Merci a vous !

UPDATE :

Il semblerait que FSCK est trouvé des fichiers orphelins qu’il a placé dans LOST+FOUND dont le dossier WWW qui est effectivement absent de /VAR.

Du coup c’est le bordel et je comprend mieux pourquoi certains services ne démarrent plus.

Vu l’importance l’erreur, j’aurai tendance à conseiller de réinstaller de zéro et restaurer des sauvegardes.
Tout est sauvegardé hein ?
Et les sauvegardes sont vérifiées et testées hein ?

(Bon je sais, ça fait hautain, surtout que ce n’est pas le cas chez moi, mais il faut vraiment que j’améliore les choses, parce que le matériel, ça crash forcément un jour)

No problem :slight_smile:

Eh bien… ce serveur était un serveur de sauvegarde justement. Comme c’est un usage pour particulier (une famille) la sauvegarde est comment dire… pas d’actualité. Surtout que le budget était limité (d’où le rpi3).

Donc pour te répondre, non pas de sauvegarde puisque le Nextcloud servait justement a ça.

Du coup même pas de sauvegarde YunoHost ?
La je ne sais pas quoi proposer, si ce n’est de mettre en place des sauvegardes régulières, pas forcément des fichiers mis dans NextCloud hein, eux on peut supposer qu’ils sont à plat et risquent peu d’être perdus, mais des apps elles mêmes (leurs configurations, bases de données) et du système (utilisateurs, DNS), comme ça il à a juste à tout restaurer et ça se relance tout seul.

Mais les sauvegardes, ça prends de la place, forcément, et c’est chiant à mettre en place, et chiant à tester :cry:

Bon, des nouvelles. Après avoir scruté la totalité des fichiers “importants” il se trouve que les mail et le contenu Nextcloud sont totalement sain et n’ont pas été touchés (+/- 700go). Donc nickel.

Le système est également partiellement fonctionnel.

Maintenant ma question est la suivante :

Comment restaurer les services défaillants ? Sachant que l’erreur provient de fichiers manquants notamment dans /ETC. Les binaires sont bien là mais il manque les arborescences dans /ect donc.

Par exemple pour HAVEGED le service se lance mais se stop immédiatement parce qu’il manque des fichiers. Comment réinstaller ce service par exemple ? J’ai tenté avec APT mais sans succès. (remove & purge).

Y a t’il une option dans Ynunohost pour restauré des services défaillants ?

Pour les services, il y a un truc du genre yunohost tools regen-conf mais je ne sais pas si ça va réussir à tout corriger (et aucune idée de comment trouver le nom de ce que tu dois lui passer, il n’y a visiblement pas d’option pour lister les disponibles).
(dans mon historique de commande j’ai ça qui traîne : yunohost tools regen-conf ssh nginx postfix --dry-run --with-diff )
Sinon pour les applications, tu peux faire un upgrade forcé, soit ça va forcer le passage, soit au minimum ça va te dire les fichiers à changer, et la commande à passer pour les forcer (du moins je crois).
Pour forcer, c’est du genre yunohost app upgrade --force Nom_de_application (ou sans nom pour le faire pour toutes, mais commence avec une seule pour être sûr)

J’ai forcé la désinstallation puis la réinstallation d’un service et même avec ça, il ne démarre toujours pas.

Je suspecte un fichier manquant a son fonctionnement mais je n’arrive pas a savoir lequel.

Y a t’il un moyen de réinstaller Yunohost ou Rasbian en gardant l’actuelle configuration ?

Théoriquement, en utilisant le système de backup tu peux sauvegarder l’ensemble de la conf pour la restaurer (conf système, utilisateurs, applications).
MAIS si la conf est foirée, ça risque d’être pareil.

Comme à chaque fois que je vois quelqu’un avec son système crashé, ça me rappelle que je ferai bien de faire un test de mes sauvegardes, et qu’on devrait tous les tester régulièrement.
Mais je sais aussi que personne ne va le faire parce que c’est super chiant de tester ses sauvegardes :cry:

Bah au taf le système de sauvegarde est robuste… mais c’est le taf.
Quand il s’agit d’un particulier, qui plus est sur un Rpi c’est plus compliqué. Parce que chez des novices, même la sauvegarde peu être dégradée. Tout simplement parce qu’il n’y a pas qq1 tous les jours pour vérifier que tout fonctionne au poil. Sans aborder le fait qu’une mauvaise manip est vite arrivée.

Bon, les données sont saines (700go) mais je me vois mal passé des plombes a rapatrier ces données et a les dispatché entre les utilisateurs.

Je vais tenter ça, mais c’est quand même très étonnant qu’il me soit impossible de restaurer les services défaillants.

Même avec un dpkg --remove --force-remove-reinstreq --ignore-depends=yunohost "le service concerné" et en réinstallant par la suite ça ne fonctionne pas. Il manque donc un fichier quelque part mais aucun log n’est en mesure de me dire lequel (pour haveged par exemple dont dépende les services suivants).

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.