Grub, efi et windows XP 64 bits

BootCurrent: 0000
BootOrder: 0000,0080,0001
Boot0000* debian        HD(1,28,64000,c0b04bac-0f94-45bc-8305-c8ef755d3a70)File(\EFI\debian\grubx64.efi)
Boot0001* rEFInd Boot Manager   HD(1,28,64000,e5db7ba7-4363-49be-9cdd-a3ddc8f1e29b)File(\EFI\refind\refind_x64.efi)
Boot0080* Mac OS X      ACPI(a0341d0,0)PCI(b,0)SATA(0,0,0)HD(3,8c55c70,5d21dc0,f33793c5-b13e-4dc3-8038-d99f0519f2b6)
Boot0081* Mac OS X      ACPI(a0341d0,0)PCI(b,0)SATA(0,0,0)HD(2,64028,e8c6e940,17cf479b-665e-4a27-8304-8fd353067b75)
Boot0082*       ACPI(a0341d0,0)PCI(b,0)SATA(0,0,0)HD(3,8c55c70,5d21dc0,f33793c5-b13e-4dc3-8038-d99f0519f2b6)
BootFFFF*       ACPI(a0341d0,0)PCI(6,1)USB(1,0)HD(3,5e5,1397,None)File(\System\Library\CoreServices\boot.efi)

Normalement refind n’a rien à faire la. J’ai été amené à le mettre lors des diverses installations, mais je l’ai aussi supprimé depuis. Il ne devrait plus y être. D’autant que le fichier et l’arborescence refind n’existe concretement plus.

Ah, dommage. J’allais te suggérer de tester si rEFInd ne permettrait pas de démarrer Windows.
Et la table de partition (si possible avec gdisk pour vérifier le format du MBR) ?

Et bien je vais sûrement le remettre pour essayer avec lui. Il s’en sortira sans doute mieux que grub.

# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: hybrid
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with hybrid MBR; using GPT.

Sur le net, et même sur youtube on peut voir des manips très étrange à mon gout. Sur youtube par exemple un gars installe via bootcamp un windows xp 32 bits à coté de son mac Mountain lion. Je ne sais pas comment fonctionne bootcamp, mais ce qui est certain c’est que je ne peux faire cohabiter mac et windows xp 32 bits.

J’ai réinstallé refind, le tout fonctionne correctement, il pointe et charge correctement vers windows, tout comme linux (alors que d’habitude charger le noyau de linux avec refind s’était, sur mac en tout cas, se priver de wi-fi) et les mac.

Après avoir lu des trucs sur BootCamp et l’installation de Windows sur Mac, je m’en doutais : le MBR est au format “hybride”, c’est-à-dire qu’il combine la partition de protection GPT (type EE) et une ou plusieurs partitions classiques pour l’installation et l’amorçage de systèmes non compatibles avec GPT et UEFI. A confirmer en comparant les tables de partitions DOS/MBR et GPT :

fdisk -l -t gpt fdisk -l -t dos

Le firmware du Mac a un mode de compatibilité BIOS pour démarrer d’anciennes versions de Windows, et je pense que c’est ce qui se passe. Tu peux regarder à la racine de la partition de Windows s’il y a les fichiers de boot en mode BIOS classiques NTLDR et compagnie. Si c’est bien le cas, alors je crains que GRUB EFI soit incapable de chaîner autre chose qu’un exécutable EFI.

# fdisk -l -t gpt

Disque /dev/sda : 465,8 GiB, 500107862016 octets, 976773168 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : B85A1CF7-CE83-4A03-BF41-CC1A3716B3B2

Device         Start       End   Sectors  Size Type
/dev/sda1         40    409639    409600  200M EFI System
/dev/sda2     409640 146889839 146480200 69,9G Apple HFS/HFS+
/dev/sda3  147151984 244808239  97656256 46,6G Apple HFS/HFS+
/dev/sda4  245071872 391555071 146483200 69,9G Microsoft basic data
/dev/sda5  391555072 450148821  58593750   28G Microsoft basic data
/dev/sda6  450150400 645462015 195311616 93,1G Linux filesystem
/dev/sda7  645462016 655226879   9764864  4,7G Linux swap
# fdisk -l -t dos
Disque /dev/sda : 465,8 GiB, 500107862016 octets, 976773168 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x31843183

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1               1    409639    409639  200M ee GPT
/dev/sda2          409640 146889839 146480200 69,9G af HFS / HFS+
/dev/sda3       147151984 244808239  97656256 46,6G af HFS / HFS+
/dev/sda4  *    245071872 391555071 146483200 69,9G  7 HPFS/NTFS/exFAT

A la racine de mon Windows XP, il y a bien un fichier ntldr

Je viens de remettre rEFInd, qui lui s’en sort à merveille avec l’ensemble des systèmes. Surprise, en chargeant le noyau de linux avec son lien, je conserve mon Wi-fi ce qui n’était pas le cas d’habitude, le linux était parfaitement fonctionnel, mais sans wifi.

J’aime bien rEFInd pour les avantages qu’il apporte, mais c’est vrai que j’aurai vraiment aimé réaliser le tout avec grub. Tant pis, je ne peux pas installer grub-pc sans que ce paquet rentre en conflit avec grub-efi-amd64. Et puis, rEFInd est d’une esthétique entièrement modulable / modifiable. Je vais choisir un thème et ça ira bien.

Merci. Cela confirme mes soupçons, il y a bien tout ce qu’il faut pour démarrer Windows en mode BIOS.

Tu peux.

  1. Désinstaller grub-efi-amd64 ne supprime pas le chargeur GRUB EFI installé dans la partition système EFI et /boot/grub.
  2. Les paquets qui servent réellement à installer les chargeurs d’amorçage sont grub-efi-amd64-bin et grub-pc-bin, et ils ne sont pas en conflit. Le programme grub-install est fourni par grub2-common qui est une dépendance des deux. Pour forcer l’installation d’une variante du chargeur, il faut utiliser l’option --target=i386-pc (pour BIOS) ou --target=x86_64-efi (pour EFI x64).

Mais je doute que ça apporte quelque chose, car pour lancer GRUB PC il faudrait passer par le menu de boot du firmware (touche alt) comme pour Windows, et il ne permet pas forcément de démarrer MacOS X (en tout cas pas en chaînant les exécutables EFI comme avec GRUB EFI).

Ok, merci à toi. Il ne me reste plus qu’à effectuer l’installation et la mise en cohabitation de XP sur ma machine et pas sur celle de “test” (même configuration sauf qu’il n’y a pas le XP).

Mais je suis inquiet, car je viens de me rendre compte que la situation n’est pas exactement la même sur cette machine :

 # gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Je vais devoir créer une nouvelle partition, et je ne sais pas comment créer un MBR hybrid / GPT.

A tout hasard, protective = hybrid ?

Non. Un MBR protecteur ne contient que la partition de protection GPT qui occupe tout le disque. Tu peux le vérifier en affichant la table de partition du MBR avec fdisk -t dos ou avec les commandes en mode expert de gdisk.

Ce n’était pas la même chose sur la machine de test avant d’installer Windows ?

J’oubliais un avertissement : ne pas utiliser parted (et possiblement gparted) avec un MBR hybride. La dernière fois que je l’ai fait, ça a transformé le MBR hybride en MBR protecteur standard. Le MBR hybride n’est pas un format standard, il peut arriver des choses inattendues avec.

Bonjour

Je m’incruste dans la discussion mais ne pense pas être au hors sujet en demandant à PascalHambourg si le dernier de ces trois liens est selon lui assez bien documenté concernant les MBR hybrides.

Je connais très bien le premier type de MBR, et je n’ai pas eu l’occasion de tester assez souvent le deuxième.
Par contre, je n’ai encore jamais eu à faire avec le troisième type de MBR, alors il faut que je m’y mette.

http://www.rodsbooks.com/gdisk/hybrid.html


Bien sûr, je ne demande pas une réponse détaillée : juste une appréciation rapide.
Si besoin d’une plus longue réponse, on ouvrira un autre fil de discussion en y déplaçant ce message.

Oui, l’auteur de gdisk et rEFInd maîtrise assez bien son sujet.

Juste pour la culture alors, pas pour le mettre en oeuvre autrement qu’en test. Franchement, je ne recommande pas l’utilisation de MBR hybride, à réserver en dernier recours s’il n’y a vraiment pas d’autre solution. C’est un hack, ce n’est pas fiable.

Merci pour les commentaires éclairés.


Sûr : déjà que je n’utilise même pas GPT parce que je n’en ai pas besoin,
mais j’ai toujours été curieux de voir ce qu’il se faisait ailleurs.

J’ai peut-être compris. Lorsque j’ai commencé la phase de cohabitation des systèmes, c’est-à-dire de les installer, au moment de partitionner mon DD avec l’utilitaire mac, ayant été inattentif un instant, j’ai d’abord créé une table MBR. Puis, l’installation de mac n’ayant pu débuter avec le MBR je suis revenu en arrière pour reformater avec une table GPT cette fois. C’est la seule différence qu’il y a eu vis-à-vis du protocole habituel, je ne vois pas d’ou peut venir ce MBR hybrid sinon. Et de la, à mon avis, les différentes remarques inexpliquables alors au cours des diverses installations de systèmes :

  • Mac qui me prévient que si je l’installe l’option “filevault” de cryptage du DD par mac ne pourra pas fonctionner, sans possibilité d’en savoir plus.
  • Debian qui m’explique qu’un bootloader ne peut-être installer, et qui donc ne me propose pas grub.
  • Le fait que j’ai du modifier fstab et installer grub, etc.

====> Tout ça différent d’habitude y compris sur la même machine avec exactement la même configuration, à une partition près, celle prévue pour Windows XP.

Bon mais ce qui est important dans mon cas c’est la possibilité du firmware uefi du materiel mac qui est compatible avec un mode BIOS. MBR hybrid ou protective, ce n’est peut-être pas totalement en cause. Je vais essayer l’installation de xp ce soir sur ma machine de référence. Si xp 64 bits arrive à lire ma GPT, je pourrais alors l’installer, et le reste sera résolu par rEFInd.

Remplacer une table de partition MBR par une table de partition GPT ne produit pas un MBR hybride mais un MBR protecteur. Là on voit bien que les 3 partitions définies dans le MBR hybride correspondent exactement à des partitions de la table GPT.

Qu’est-ce qui a créé les partitions NTFS ? L’installateur Windows XP ou bien tu les avais créées avant d’installer Windows ?

J’ai créé l’ensemble des partitions avec l’utilitaire de disque mac juste avant l’installation. La partition Windows XP a d’abord été en FAT, cet utilitaire ne formatant pas en NTFS. Puis, une fois linux installé, avec gparted j’ai reformaté cet partition en NTFS. Enfin, lors de l’installation de Windows la partition NTFS que je lui avais réservé a été reconnue, mais je l’ai tout de même reformaté en NTFS avec cet installeur afin d’éviter toute surprise.

Il n’y a qu’un seule partition en NTFS, pour le reste, il s’agit de hfs+ et ext4, si on écarte la partition sda1, efi.

Dans la table GPT il y a deux partitions de type Microsoft

  • une de 70 Gio (qui apparaît dans le MBR hybride)
  • une de 28 Gio (qui n’apparaît pas dans le MBR hybride).

Je suppose que celle de 70 Gio qui apparaît dans MBR hybride contient Windows XP en NTFS. A quoi correspond l’autre ?

C’est fdisk qui se trompe et en ce qui me concerne ca n’a rien d’étonnant. Je ne crois pas avoir une seule fois vu fdisk -l /dev/sda m’afficher l’ensemble des types de partitions correctement.

La partition de 28 Go est en ext4, il s’agit de mon système Debian Jessie. J’ai séparé /home de /.

blkid ne se trompe pas, en résultat il y a bien affiché ext4 pour sda5.

fdisk ne se trompe pas, c’est juste l’identifiant de type GUID de la partition qui est mal renseigné.

Pour rappel, il n’y a pas forcément de lien entre l’identifiant de type de la partition enregistré dans la table de partition GPT et le contenu effectif de cette partition. D’ailleurs, avant qu’un type “Linux filesystem” soit disponible en GPT, les partitions Linux utilisaient le type “Microsoft basic data”.

De toute façon en règle générale les systèmes GNU/Linux ne se fient pas à l’identifiant de type inscrit dans la table de partition. C’est donc essentiellement informatif pour l’administrateur.