Recréer un boot linux qui fonctionne après suppression d'une partition windows (et du multiboot associé)

Bonjour,

Pour aider un ami avec qui on a découvert qui n’avait jamais supprimé sa partition windows alors qu’il n’utilisait plus que linux depuis des années, on a décidé de supprimer la partition windows ainsi que la partition de restauration windows associée. Bref, on a supprimé toutes les parititions ntfs. gparted a pris son temps mais a déplacé et a redimensionné toutes les partitions encore utile, en récupérant au passage des centaines de Go.

Après quoi, on s’est attelé à recréer un boot linux qui fonctionne après la suppression du multiboot windows. Et c’est là que ça se corse.

Pour (tenter de) simplifier les choses, on a découvert et installé dans une session liveusb le très bon logiciel boot-repair mais celui-ci n’a au final pas permis de démarrer le linux sur le disque, sur la partition sda7.

Heureusement, une chouette fonctionnalité de boot-repair est de proposer un export de la configuration du pc vers un pastebin. Vous pourrez donc consulter ici toute la configuration actuelle du pc.

Je me dis que peut-être une clé de l’affaire serait la suppression de la partition /dev/sda1 où se trouvait /boot/efi, voir la ligne 329 :

/boot/efi was on /dev/sda1 during installation

Mais j’ai également désactivé le secure boot afin de pouvoir démarrer sur la clé usb Ventoy.

On a par la suite recréé une partition de 5 Mo à la fin du disque dur, elle porte l’identifiant /dev/sda1 et on ne l’a volontairement pas formatée mais on lui a positionné le flag bios-boot.

J’ai aussi vu l’erreur suivant à la ligne 109 :

grub-probe: error: cannot find a GRUB drive for /dev/sdb2. Check your device.map.

Je pense m’y connaître assez bien en GNU/linux, mais je n’ai jamais trop trifouillé dans les mécanismes de boot car j’ai toujours laissé faire les installeurs qui s’en sortent très bien. Donc si une bonne âme experte pouvait jeter un oeil et me dire ce qu’il manque pour que ça démarre, mon ami et moi même vous en serions très reconnaissant.

Pour les pistes de solution, j’en vois quelques unes :

  • absence d’une partition ESP
  • mauvais type ou taille de la partition /dev/sda1
  • blocage au niveau du bios
  • toute autre suggestion sera évidemment étudiée ! :wink:

Merci et bonne journée à tous !

Concrètement, quel est le problème actuellement ?

Ah, j’aurais oublié l’essentiel ?

Le pc ne démarre pas.

Et quand j’appuie sur Esc au démarrage, pour choisir le média de démarrage, je ne vois pas la possibilité de démarrer sur le disque dur (je vois une liste vide).

Autrement dit, il manque un bootloader qui fonctionne.

Bonjour,

/dev/sdb n’est pas le disque principal…

Il n’y a qu’un seul disque dur dans l’ordinateur : /dev/sda.

/dev/sdb est une clé usb qui permet de démarrer un système liveusb à partir duquel je lance gparted ou boot-repair.

Quel est le mode d’amorçage configuré dans les options d’amorçage du firmware UEFI ? BIOS/legacy/CSM, UEFI natif, les deux ? D’après le rapport de boot-repair, il a démarré en mode UEFI or boot-repair a installé GRUB pour un amorçage BIOS/legacy.

Pour info, launch CSM est disabled (c’est quoi CSM).

Et dans la section Secure boot menu, il y a Secure Boot qui est disabled.

Je crois que j’avais dû mettre à disabled le Secure Boot pour pouvoir démarrer sur la clé usb Ventoy l’iso de gparted.

Donc à mon avis, je suis en boot legacy.

Voici des photos du BIOS :

IMG_20210310_222741

IMG_20210310_222749

IMG_20210310_222757

IMG_20210310_222804

IMG_20210310_222811

Et ce que nous dit dmesg quand on démarre sur une liveusb de Ubuntu :

IMG_20210310_222452

CSM = Compatibility Support Module, cela permet d’utiliser les fonctions BIOS avec un firmware UEFI. Mais ça ne veut pas forcément dire qu’il est possible d’amorcer en mode BIOS. Essaie d’activer l’option.

Non.

montre clairement que c’est un boot UEFI.
Soit tu arrives à configurer le firmware pour booter en mode BIOS, soit il faudra réinstaller un boot EFI (partition système EFI formatée en FAT montée sur /boot/efi et réinstallation du paquet grub-efi-amd64).

Visiblement, modifier le flag concernant CSM dans le BIOS ne permet pas de mieux démarrer le pc.

J’imagine que je vais donc devoir explorer la solution qui consiste à créer une partition EFI formatée en FAT. Est-ce qu’il est possible d’avoir plus d’information sur cette solution ? Existe-t-il un tutoriel quelque part ?

Juste un exemple de question en suspend : quelle taille doit faire la partition ?

Est-ce que ça change quand même quelque chose dans l’affichage du BIOS ?
Certains BIOS et firmwares UEFI n’acceptent de booter sur un disque en mode BIOS/legacy que si son MBR contient une table de partition DOS avec une partition ayant le drapeau « boot » activé, ce qui n’est pas le cas par défaut du MBR protecteur d’une table de partition GPT. Deux méthodes possibles pour l’activer :

  • avec fdisk en forçant l’utilisation de la table de partition DOS

    fdisk -t dos /dev/sda
    

    taper « a » pour basculer le drapeau boot
    taper « w » pour enregistrer

  • avec parted :

    parted /dev/sda disk_toggle pmbr_boot
    

Si c’est sans effet sur l’amorçage, il est probable que le firmware de cet ordinateur ne permet pas l’amorçage BIOS/legacy. Il faudra désactiver le drapeau boot du MBR en suivant à nouveau une des deux méthodes ci-dessus (c’est une bascule) car sa présence est contraire à la spécification GPT et peut faire considérer la table de partition comme invalide par le firmware de l’ordinateur et empêcher l’amorçage UEFI.

[sarcasme]
Pour recréer un amorçage UEFI, tu n’as qu’à demander à boot-repair qui l’a effacé sans se préoccuper de savoir si l’ordinateur était capable d’amorcer en mode BIOS. S’il n’y arrive pas, c’est qu’il n’est pas si bon que tu le disais.
[/sarcasme]
Ou bien tu fais à la main mais je n’ai pas la patience de décrire pas à pas.
Créer une partition système EFI, taille entre 10 et 100 Mo, type EFI, formatée en FAT.
Faire un chroot sur la racine du système installé (/dev/sda7).
Monter la partition EFI sur /boot/efi.
Installer grub avec

grub-install --force-extra-removable

Je ne comprends pas trop ce que tu me demandes-là ? La case à cocher du flag est activé alors qu’il ne l’était pas avant. Est-ce que ça devrait changer autre chose ? Si oui, quoi ?

Je parlais de ce qui est affiché au démarrage ou dans le menu de boot du BIOS s’il y en a un (accessible avec une touche généralement entre F1 et F12, parfois affichée sur le premier écran).

Non, rien de plus au démarrage, dans le menu de boot du bios.

On part sur la création d’une partition EFI. Je vous tiens au courant ici.

Merci à tous pour votre aide. Nous sommes finalement arrivé à régler le problème, en grande partie grâce à votre aide. Je vous confirme que le BIOS était configuré en mode UEFI. Il était également configuré en mode secure boot, que je me suis empressé de désactiver.

J’avais l’avantage d’avoir une clé usb avec ventoy qui me permettait de démarrer des fichiers iso au choix, dont une image gparted live et une autre image boot-repair.

J’ai commencé par lancer gparted pour diminuer la taille de la partition système et laisser 100 Mo de libre au début du disque. J’ai alors créé une partition fat32 de 100 Mo au début du disque (que j’ai nommé efi), puis j’ai modifié les flags de cette partition /dev/sda1 pour lui mettre le flag esp (elle a pris automatiquement le flag boot au passage).

J’ai alors redémarré sur l’iso boot-repair et j’ai suivi les indications de boot repair. Malgré quelques erreurs dans le rapport de boot-repair, le redémarrage sur le disque a permis de redémarrer le système ubuntu qui était installé sur le disque.

Encore une victoire de canard !

En partitionnement GPT, ces deux drapeaux sont synonymes et correspondent à l’identifiant de type GUID « partition système EFI ».