Problème de boot, GRUB ne trouve pas W7

Bonjour a tous,

Je débute sur Linux, et après une semaine a tester differents OS je me suis décidé a rester sur Debian, c’est net, propre et précis, comme j’aime.
Par contre au moment d’installer Debian, ‘a la place’ de Ubuntu, GRUB ne me propose plus windows au démarage, et je ne vois aucun moyen d’y acceder, sauf en touchant le fichier /boot/grub/custom.cfg

J’y ai rajouté des entrées pour tester, et a chaque fois que je selectionne windows dans le GRUB j’ai l’une des deux erreurs suivantes: Invalid Signature, ou BOOTMGR is missing.

J’ai essayé tout ce que j’ai pu trouver sur internet, et au bout de 2j sans trouver de solution je viens demander de l’aide ici.

Merci pour votre attention et votre aide !

Bonjour,
Ça fonctionnait avec Ubuntu ?

Tu débutes aussi peut-être et tu n’as pas encore les bons réflexes quand tu exposes un problème dans un forum de support : fournir un maximum d’informations utiles.
La première serait évidemment le contenu de custom.cfg qui produit chacune des deux erreurs.
La seconde, les tables de partition des disques rapportées par fdisk ou parted (PAS de copie d’écran graphique si possible donc Gparted proscrit).
La sortie de la commande os-prober.
Idéalement, le rapport produit pas bootinfoscript du paquet boot-info-script qui rassemble énormément d’informations sur les disques et l’amorçage.

Je soupçonne que l’un des deux OS est installé pour démarrer en mode EFI et l’autre en mode BIOS/legacy. Dans ces conditions le dual boot avec GRUB ne peut pas marcher.

Merci beaucoup pour le temps que vous me pretez, et désolé pour le manque d’infos.

custom.cfg :

menuentry "Windows (UEFI)" {
  insmod chain
  insmod ntfs
  set root=(hd0,2)
  chainloader /Windows/Boot/EFI/bootmgfw.efi
}

fdisk -l:

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xfd19aef5

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048   1230847   1228800   600M 82 Linux swap / Solaris
/dev/sda2         1230848 352793347 351562500 167.7G  7 HPFS/NTFS/exFAT
/dev/sda3       352794622 976771071 623976450 297.5G  5 Extended
/dev/sda5       352794624 976771071 623976448 297.5G 83 Linux

os-prober ne donne rien

J’ai chopé bootinfoscript, je suis un nouvel inscrit, je ne peux donc pas vous mettre le RESULTS.txt en lien.

Ce qui est ‘évident pour toi’ ne l’est pas pour les autres.

@Albert Oui ca fonctionnait dans un premier temps quand j’avais Debian + W7, ca continuait de marcher quand j’ai switch Debian par Ubuntu (je trouvais Debian trop compliqué au début).
Mais c’est une fois que je me suis rendu compte que Debian > Ubuntu et que je l’ai donc ré installé sur mon PC que GRUB ne me proposait plus w7

Quelle est l’erreur que tu obtiens avec ce contenu ? Je suppose que c’est “invalid signature” ? Avec quel contenu obtiens-tu l’autre erreur ?

Cette entrée de menu est clairement prévue pour lancer le chargeur d’amorçage EFI de Windows. Mais il y a un mais, et même plusieurs : ce chargeur devrait être dans une partition EFI en FAT (qui n’existe pas dans la table de partition) et non la partition NTFS de Windows, et normalement Windows a besoin d’une table de partition GPT pour s’installer et démarrer en mode EFI alors que la table est au format DOS/MBR.

Si Debian et GRUB ont été installés en mode BIOS et non en mode EFI, alors GRUB ne peut pas utiliser la commande chainloader pour charger un exécutable EFI mais seulement pour charger un secteur d’amorce de disque (MBR) ou de partition. Pour Windows, la commande ntldr permet de charger directement le chargeur d’amorçage de Windows qui devrait être situé à la racine de la partition de démarrage de Windows. Si tu pouvais regarder ce qu’il y a à la racine de la partition Windows donc…

Il faut confirmer que GRUB est en mode BIOS, mais en l’absence de partition EFI je ne vois pas comment il pourrait en être autrement. La présence d’un répertoire /boot/grub/i386-pc et l’absence de répertoires /boot/efi et /boot/grub/x86_64-efi suffira.

Autre bizarrerie : la partition de swap de seulement 600 Mio au début du disque avec l’indicateur d’amorçage activé, ce qui n’a guère de sens pour une partition de swap. Si le PC a moins de 12 ans et plusieurs Go de RAM, cette partition de swap est trop petite pour être utile. Serait-il possible que ce soit une partition de Windows qui a été recyclée en swap ?

Si tu ne peux pas mettre de lien pour le rapport de bootinfoscript, tu peux copier-coller le contenu dans le forum, sans inclure le contenu de grub.cfg qui est sans intérêt.

Merci pour l’attention que tu portes a ma requete !

Oui avec le contenu que j’ai link j’ai bien ‘invalid signature’ comme 90% des fois, j’ai testé des dixaines de config differentes dans custom.cfg, je ne saurais plus te dire lesquelles donnent le BOOTMGR mais c’est plutot rare.

Que dois-je regarder ?

Je n’ai pas de dossier boot a la racine, mais un dossier Windows/Boot/EFI (pas de signe d’un dossier grub)

RESULTS.txt:

============================= Boot Info Summary: ===============================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    in partition 85 for .

sda1: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sda2: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /Windows/System32/winload.exe

sda3: __________________________________________________________________________

    File system:       Extended Partition
    Boot sector type:  Unknown
    Boot sector info: 

sda5: __________________________________________________________________________

    File system:       ext2
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Debian GNU/Linux 9
    Boot files:        /boot/grub/menu.lst /boot/grub/grub.cfg /etc/fstab

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1    *          2,048     1,230,847     1,228,800  82 Linux swap / Solaris
/dev/sda2           1,230,848   352,793,347   351,562,500   7 NTFS / exFAT / HPFS
/dev/sda3         352,794,622   976,771,071   623,976,450   5 Extended
/dev/sda5         352,794,624   976,771,071   623,976,448  83 Linux


"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/sda1        d62b72d2-2130-4adc-9e7e-0757ef81a0c8   swap       
/dev/sda2        1610CF0810CEEDB5                       ntfs       
/dev/sda5        ecf5467d-3358-4cf1-a99e-5700b5973bab   ext2       

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/sda5        /                        ext2       (rw,relatime,block_validity,barrier,user_xattr,acl,errors=remount-ro)

=========================== sda5/boot/grub/menu.lst: ===========================

--------------------------------------------------------------------------------
title		Debian GNU/Linux, kernel 4.9.0-9-amd64
root		(hd1,4)
kernel		/boot/vmlinuz-4.9.0-9-amd64 root=UUID=ecf5467d-3358-4cf1-a99e-5700b5973bab ro 
initrd		/boot/initrd.img-4.9.0-9-amd64

title		Debian GNU/Linux, kernel 4.9.0-9-amd64 (single-user mode)
root		(hd1,4)
kernel		/boot/vmlinuz-4.9.0-9-amd64 root=UUID=ecf5467d-3358-4cf1-a99e-5700b5973bab ro single
initrd		/boot/initrd.img-4.9.0-9-amd64


=================== sda5: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)


======================== Unknown MBRs/Boot Sectors/etc: ========================

Unknown BootLoader on sda3

00000000  c0 9a 26 25 1b 01 bf 1c  61 5f b4 a7 3a 40 d4 f1  |..&%....a_..:@..|
00000010  e0 f6 9d 0c f9 f1 49 e8  da 62 8b ed 65 a6 fd 26  |......I..b..e..&|
00000020  a4 c6 ce f1 49 93 8c 2a  31 56 f2 da 3b d4 7a f2  |....I..*1V..;.z.|
00000030  24 65 00 99 5c 3c ec d3  55 8a 8c db 3f 6e 3b 2a  |$e..\<..U...?n;*|
00000040  bd 7a 8e a4 de 2e f0 ae  0d 05 63 53 7d 99 e4 9a  |.z........cS}...|
00000050  8f 6e 29 bc a0 aa e8 3f  6d 68 f4 9e 2d af dd aa  |.n)....?mh..-...|
00000060  e3 c1 5f fd 3b 7f f5 b0  dd 55 90 2a 6b 18 a6 33  |.._.;....U.*k..3|
00000070  11 bc 0f 52 e5 82 0f ba  40 73 18 4c e3 6d d3 f4  |...R....@s.L.m..|
00000080  34 03 5c a1 9d e4 cb 9f  13 51 f1 16 66 38 b5 e2  |4.\......Q..f8..|
00000090  6c dd 1c a6 6c 61 54 fc  27 ad 28 a3 57 51 8f 6d  |l...laT.'.(.WQ.m|
000000a0  b9 b9 84 9a fb f6 bb 3a  0a 3b 45 fd 6d aa 82 73  |.......:.;E.m..s|
000000b0  f6 25 bf cd 8c 47 05 05  28 47 1d f7 09 00 84 42  |.%...G..(G.....B|
000000c0  6e 07 d3 08 fc 01 78 75  48 35 2b 88 03 aa c5 cc  |n.....xuH5+.....|
000000d0  4f 35 76 97 a8 8f 83 07  bc 3d 34 96 e5 b8 08 fd  |O5v......=4.....|
000000e0  9a 56 6f 9f d7 99 78 b4  6a 0c 37 52 31 f0 e6 90  |.Vo...x.j.7R1...|
000000f0  57 14 b8 fd 09 8b 11 8c  00 3a 03 c6 08 c6 0c 19  |W........:......|
00000100  96 f4 2e 1f df 7b dd 0a  c8 79 77 eb 69 29 b1 4a  |.....{...yw.i).J|
00000110  d9 95 53 94 a7 2a 0c 86  d2 fa f8 26 81 5b 3a 2d  |..S..*.....&.[:-|
00000120  65 36 ef de f5 89 bf 76  0f 5a a2 e5 8a 3f c6 91  |e6.....v.Z...?..|
00000130  86 f9 4b ec 2e bb 47 7c  56 9e 83 16 b1 84 57 c0  |..K...G|V.....W.|
00000140  94 d7 02 0c d8 8d 61 23  8e 57 2b ed 5f f1 9f 1e  |......a#.W+._...|
00000150  73 f1 8d d6 19 40 61 19  d5 e4 0b 83 82 21 47 73  |s....@a......!Gs|
00000160  d3 a1 ad f9 56 cc 60 36  bd d9 02 56 21 67 04 5e  |....V.`6...V!g.^|
00000170  92 89 f6 05 98 06 f9 1a  c6 e1 3b 31 96 41 43 67  |..........;1.ACg|
00000180  46 ae 74 c7 47 d7 2b a1  94 96 ac b2 ea 0d 6a 38  |F.t.G.+.......j8|
00000190  25 3e c2 c2 7a 1e 8c 80  85 dc 8a 1a bb f8 5f 50  |%>..z........._P|
000001a0  ba d8 8d ff cd f4 76 d6  35 af 35 1c 81 b5 03 ca  |......v.5.5.....|
000001b0  e6 6b 40 29 f5 24 30 53  d7 2f af c1 6d d8 00 fe  |.k@).$0S./..m...|
000001c0  ff ff 83 fe ff ff 02 00  00 00 00 20 31 25 00 00  |........... 1%..|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200


=============================== StdErr Messages: ===============================

cat: /tmp/BootInfo-4PO5IiuN/Tmp_Log: No such file or directory

J’ai viré la partie grub.cfg et toutes les parties en commentaire ( ca double la longueur )

Evidemment que tu ne trouveras pas de répertoire GRUB dans la partition NTFS de Windows ! Il faut juste regarder le contenu de la racine de la partition, sans entrer dans les répertoires. Le chargeur en mode BIOS s’appelle “bootmgr”, il y a aussi des fichiers ou répertoires “bcd”.

Mais si bootinfoscript n’a pas trouvé ces fichiers dans sda2, je suis pessimiste. J’ai peur que les fichiers de boot de Windows se trouvaient dans la partition sda1 qui est maintenant un swap…

Ce qui te semble évident, l’est beaucoup moins pour un néophite !! :slight_smile:

Donc mon installation de windows est irrecuperable ?

Tu m’as indiqué la commande ntldr, dois-je la rentrer dans custom.cfg ?

Et avec le fameux CD ou DVD de réparation système que l’on oublie souvent de graver ?
Si il sait reconstruire son amorce, tu perdrais temporairement le Grub,
pour le refaire après avec un chroot sur la Debian.

C’est un peu résumé, mais je vois les choses comme ça… :thinking:

Il y a aussi :

Si votre ordinateur ne réussit pas à démarrer Windows, vous pouvez accéder à Réparation du démarrage et à d’autres outils dans le menu Options de récupération système à partir du disque d’installation de Windows 7 ou de la clé USB.

Ici, j’arrête là pour Windows.

Je ne suis pas compétent pour juger de l’état d’une installation de Windows.
Il y a peut-être quelque chose à faire avec un DVD d’installation de Windows en mode réparation, mais comme écrit ci-dessus je ne suis pas compétent.

Pour que cette commande serve à quelque chose, il faudrait localiser le fichier “bootmgr” à la racine de la partition de Windows.

J’ai trouvé des fichiers bootmgr dans Windows/Boot/PCAT

donc il faudrait que custom.cfg ressemble a ca ? :

menuentry "Windows 7" {
 insmod chain
 insmod ntfs
 insmod ntldr
 set root=(hd0,2)
 chainloader /Windows/Boot/PCAT/bootmgr
}

@anon44391915 Merci quand meme !!

1 J'aime

not working // invalid signature

Sans le catalogue BCD qui va avec, je doute que ce soit utilisable.

Non, pour charger le fichier bootmgr il faut utiliser la commande ntldr. La commande chainloader ne peut servir qu’à charger un secteur d’amorce ou un fichier image d’un secteur d’amorce si on utilise GRUB BIOS, ou un exécutable EFI (.efi) si on utilise GRUB EFI.