Défaillance Grub suite à sa mise à jour sur Ubuntu 20.04

Logo Ubuntu orange

Nouveau concept ne manquant pas d’audace, pour corriger une faille de sécurité dans Grub : empêcher ce dernier de démarrage. En ne chargeant plus le système d’exploitation, cela limite drastiquement le risque de contamination du PC… Fallait y penser… Même Microsoft n’avait pas osé…

La question est : comment s’en sortir ? Après quelques recherches et quelques essais infructueux, j’ai finalement trouvé une façon simple de retrouver les accès à mon installation Linux.

  • Je suis d’abord allé chercher l’image ISO de l’application BootRepair en version 64 bits pour l’installer sur une clef USB avec Rufus – avoir conservé une installation Windows n’était finalement pas si stupide.
  • Les tentatives de réparations ont renvoyé des messages positifs sans toutefois corriger le problème, obligeant donc à des mesures plus radicales.
  • En désespoir de cause, j’ai réinitialisé – non sans quelques appréhensions – les paramètres démarrage à leurs valeurs d’usine dans mon BIOS, de manière à repartir sur quelque chose de « propre ».
  • J’ai lancé une nouvelle fois une réparation après avoir démarré avec la clef BootRepair, avec cette fois encore, des messages encourageants de l’application.
  • Comme effectué lors de l’installation d’Ubuntu j’ai déclaré dans le BIOS, le fichier shimx64.efi dans le répertoire ubuntu/uefi/ comme image de confiance, subtilité du BIOS de mon Acer.
  • Enfin, comme rappelé dans le compte-rendu de réparation, j’ai modifié l’ordre de démarrage dans les paramètres du BIOS pour démarrer sur le disque dur et le tour était joué…

En conclusion, je dirais que BootRepair reste un outil particulièrement efficace, même s’il a besoin quelques fois d’un petit coup de pouce.

Piwigo : Erreur Unknown column ‘last_visit’ in ‘field list’ après mise à jour en 2.9.x

Logo Piwigo.org

Après une mise à jour en version 2.9.2 de ma galerie Piwigo, je me suis retrouvé avec un message erreur systématique sur toutes les pages du genre :

Warning: [mysql error 1054] Unknown column 'last_visit' in 'field list'
  UPDATE piwigo_user_infos
  SET last_visit = NOW(),
  lastmodified = lastmodified
  WHERE user_id = 1
in /.../include/dblayer/functions_mysqli.inc.php on line 845

Après une brève recherche sur Internet, je me suis aperçu que plusieurs autres galeries en ligne rencontraient également le même problème, mais sans trouver de solution pour y remédier. Une seule solution : les mains dans le cambouis…

Première vérification, la version de ma galerie afin de m’assurer que j’étais bien en 2.9.2, ce qui était bien le cas. Aucun souvenir d’un quelconque message d’erreur à la mise à jour.

Au vu du message d’erreur MySQL, je jette alors un œil dans la table user_infos pour constater que, effectivement, les champs « last_visit » & « last_visit_from_history » sont absents, la mise à jour, ne s’est donc pas correctement passée.

En exécutant la requête SQL de mise à jour pour la création de ses deux champs, je suis confronté à une autre erreur :

ERROR 1067 (42000): Invalid default value for 'registration_date'

Nouvelle inspection de la table en question pour regarder, cette fois la configuration du champ « registration_date ». Je constate alors qu’il est en format « datetime » avec une valeur par défaut « 0000-00-00 00:00:00 ». Voilà donc l’origine de mon problème de mise à jour, ma base de donnée n’acceptant apparemment pas une valeur 0 dans un champ date.

Il ne reste plus qu’à changer cela, pour que la valeur par défaut ne soit plus 0 mais une date, à l’aide de la requête SQL suivante :

ALTER TABLE `piwigo_user_infos`
 MODIFY COLUMN `registration_date` datetime NOT NULL default '1970-01-01 00:00:00';

Ma table ayant cette fois une structure acceptable pour ma base de données, il ne me reste plus qu’à exécuter les requêtes de création des nouveaux champs, qui cette fois devrait fonctionner :

ALTER TABLE `piwigo_user_infos`
 ADD COLUMN `last_visit` datetime default NULL,
 ADD COLUMN `last_visit_from_history` enum('true','false') NOT NULL default 'false';

La requête s’exécute maintenant parfaitement et le message d’erreur disparaît enfin des pages de ma galerie.