Failed to open \EFI\BOOT\grubx64.efi – Not Found

Après une installation d’une Centos 7.2 sur une clé USB sur un HP EliteBook, ou après un yum upgrade qui touche au kernel (donc au grub) je me suis retrouvé avec un boot qui m’affichait :

Failed to open \EFI\BOOT\grubx64.efi - Not Found
Failed to load image \EFI\BOOT\grubx64.efi: Not Found
start_image() returned Not Found

La faute à EFI/UEFI et secureboot qui s’intercale entre BIOS et BootLoader (Grub dans mon cas). Je vous passe la littérature abondante qui traite des différents moyens de contourner cette brique, mais je traiterai directement du moyen de récupérer un boot fonctionnel.

On commence par récupérer une distribution linux live qui bootera proprement puis direction la console.

Après un passage en root on va récupérer les informations de la clé usb (ou du hdd).

[liveuser@localhost liveuser]# su
[root@localhost liveuser]# fdisk -l /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sdb: 62.7 GB, 62746787840 bytes, 122552320 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt


#         Start          End    Size  Type            Name
 1         2048       411647    200M  EFI System      EFI System Partition
 2       411648      1435647    500M  Microsoft basic 
 3      1435648    122550271   57.8G  Linux LVM       

Ensuite on monte la partition qui contient l’EFI

[root@localhost liveuser]# mkdir /mnt/efi
[root@localhost liveuser]# mount /dev/sdb1 /mnt/efi
[root@localhost liveuser]# ll /mnt/efi/
total 8
drwxr-xr-x. 4 root root 4096 Feb  3  2017 EFI
drwxr-xr-x. 2 root root 4096 Feb 23  2017 System Volume Information
[root@localhost liveuser]# ll /mnt/efi/EFI/
total 8
drwxr-xr-x. 2 root root 4096 Sep 14 07:01 BOOT
drwxr-xr-x. 3 root root 4096 Sep 14 07:04 centos
[root@localhost liveuser]# ll /mnt/efi/EFI/BOOT/
total 1348
-rwxr-xr-x. 1 root root 1296176 Aug 31 21:30 BOOTX64.EFI
-rwxr-xr-x. 1 root root   79048 Aug 31 21:30 fbx64.efi

Les fichiers attendus ne sont pas présents … par contre …

[root@localhost liveuser]# ll /mnt/efi/EFI/centos/
total 6108
-rwxr-xr-x. 1 root root     134 Aug 31 21:30 BOOT.CSV
-rwxr-xr-x. 1 root root     134 Aug 31 21:30 BOOTX64.CSV
drwxr-xr-x. 2 root root    4096 Sep 14 06:58 fonts
-rwxr-xr-x. 1 root root    5909 Sep 14 07:04 grub.cfg
-rwxr-xr-x. 1 root root    5894 Mar  5  2017 grub.cfg.1494933862.rpmsave
-rwxr-xr-x. 1 root root    5068 Jul  7 10:46 grub.cfg.1505371668.rpmsave
-rwxr-xr-x. 1 root root    1024 Sep 14 07:04 grubenv
-rwxr-xr-x. 1 root root 1052032 Aug 17 18:00 grubx64.efi
-rwxr-xr-x. 1 root root 1262816 Aug 31 21:30 mmx64.efi
-rwxr-xr-x. 1 root root 1296176 Aug 31 21:30 shim.efi
-rwxr-xr-x. 1 root root 1297120 Aug 31 21:30 shimx64-centos.efi
-rwxr-xr-x. 1 root root 1296176 Aug 31 21:30 shimx64.efi

Les fichiers sont ailleurs dans /EFI/centos/ !!! Qu’à cela ne tienne :)

[root@localhost liveuser]# cp /mnt/efi/EFI/centos/grub* /mnt/efi/EFI/BOOT/
[root@localhost liveuser]# cp -r /mnt/efi/EFI/centos/fonts /mnt/efi/EFI/BOOT/
[root@localhost liveuser]# ll /mnt/efi/EFI/BOOT/
total 2408
-rwxr-xr-x. 1 root root 1296176 Aug 31 21:30 BOOTX64.EFI
-rwxr-xr-x. 1 root root   79048 Aug 31 21:30 fbx64.efi
drwxr-xr-x. 2 root root    4096 Sep 19 09:40 fonts
-rwxr-xr-x. 1 root root    5909 Sep 19 09:40 grub.cfg
-rwxr-xr-x. 1 root root    5894 Sep 19 09:40 grub.cfg.1494933862.rpmsave
-rwxr-xr-x. 1 root root    5068 Sep 19 09:40 grub.cfg.1505371668.rpmsave
-rwxr-xr-x. 1 root root    1024 Sep 19 09:40 grubenv
-rwxr-xr-x. 1 root root 1052032 Sep 19 09:40 grubx64.efi

Voila les fichiers sont au bon endroit, démontage et reboot ;)

[root@localhost liveuser]# umount /mnt/efi
[root@localhost liveuser]# shutdown -r 0

A la vue des différents posts que j’ai pu lire sur le sujet c’est transposable aux autres distributions linux.

Utilisation de docker-compose

On continu la série Docker avec un article entièrement consacré à l’outil docker-compose.

Installation

Comme pour les articles précédents, toutes les commandes seront faites sur un serveur CentOs 7.
Le seul prérequis sera d’avoir une installation fonctionnelle de Docker sur le serveur.

Via les gestionnaires de paquets

yum install epel-release
yum upgrade python*
yum install -y python-pip
pip install docker-compose

Vérification

Avec ces commandes vous devriez voir apparaitre la version de docker-compose.

cyklo@testmachina:~$ docker-compose -v
docker-compose version 1.11.2, build dfed245

Quelques explications

DockerFile vs (Docker) Compose

Continue reading

OpenVAS: 503 service temporary down / unavailable après un update

Une fois que OpenVAS a été installé et configuré et qu’on le reprend en main un peu de temps après, il y a de fortes chances que vous soyez confrontés à ça au moment de lancer un scan :

503 - Service temporarily down

Ce qui est visible dans les logs

==> /var/log/openvas/openvasmd.log <==
lib  serv:WARNING:2017-04-24 07h44.56 UTC:5176: openvas_server_verify: the certificate is not trusted
lib  serv:WARNING:2017-04-24 07h44.56 UTC:5176: openvas_server_verify: the certificate has expired

1ere correction

Apparemment il faut régénérer et re-allouer les certificats au scanner utilisé.

Continue reading

Créer un conteneur Docker avec Dockerfile et le publier sur DockerHub

Après un billet sur la prise en main de Docker, en voilà un autre qui va vous détailler:

  • la création d’un conteneur
  • la modification de celui-ci
  • la publication de votre conteneur  sur le Hub de Docker

Avant d’aller plus loin commencez par vous inscrire sur DockerHub.

Un conteneur = Dockerfile

Continue reading

Prise en main de Docker

J’ai longtemps éludé le sujet Docker mais il est grand temps que je vous en parle.

Docker kesako… c’est une implémentation des vieux LXC (Linux Containers) mais qui, cette fois ci, a trouvée son public.

Dans les faits:

  • c’est toujours de la virtualisation
  • c’est toujours étanche par rapport à son host
  • On gagne du temps dans la configuration et le déploiement
  • On découvre plein de trucs
  • On partage le kernel !
  • On économise de la ram

Plutôt qu’un long discours, passons à l’installation. Je serais sur une CentOS en version 7 pour ce tutoriel, mais une Debian voir un Raspberry ça fera l’affaire.

Installation

Continue reading