[BIOS] Grub sur table GPT

Questions et astuces concernant l'installation et la configuration d'archlinux
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

[BIOS] Grub sur table GPT

Message par PascalK »

Bonjour à tous, je suis en train d'essayer d'installer Arch sur un disque dur avec une table de partition GPT, mais sur un ordinateur avec Bios (non-uefi)

J'ai fait une table de partition GPT avec gdisk (avec o et w), puis créée les 3 partitions avec n (je laisse toujours le first sector par défaut, et je choisis la taille de la partition sur le last sector, j'ai fait ma /dev/sda1 en mettant 300M sur last sector, et ma /dev/sda2 en mettant 20G sur last sector)

Est-ce comme ça que l'on procède ?

Ensuite, je choisis le type de partition ef02 pour /dev/sda1, c'est bien ça ?

Mais je ne sais pas en quoi la formater pour installer grub, j'ai vu dans le wiki pour MBR, mkfs.ext2 /dev/sda1, et pour GPT mkfs.vfat -F32 /dev/sda1, lequel choisir étant donné que je suis sur Bios ?

Merci
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

Bonjour,
C'est aimer se compliquer la vie, mais si tu veux vraiment une table de partition GPT sans UEFI tu peux, mais absolument pas comme ce que tu décris ! Il faudra savoir que tu ne pourras pas avoir de Windows d'installé avec une telle configuration !

Bref, il suffit de suivre le Wiki anglophone (https://wiki.archlinux.org/index.php/GR ... structions), en gros, mais je vais détailler les grandes lignes ici
Tout d'abord ne créer surtout pas de partition de boot, c'est inutile et pose plus de problème que tout autre chose, cette partition est un très vieux reliquat des années avec un Grub ne gérant rien d'autre que de l'ext2.

Il te faut donc pour du GPT avec un boot via BIOS/MBR une partition spécialle au début du disque de 1 Mo (et non 300 Mo) qui aura en effet comme code ef02. Cette partition de 1 Mo ne devra pas être formatée, aucun système de fichier ne devra être créé !

Bref, tu créer donc le tout avec gdisk, tu formates en ext4 ta partition racine, ta partition home, et ton éventuel SWAP...
Puis tu suis le Wiki d'installation normalement, et lors de l'installation de Grub tu dois toujours suivre le Wiki (https://wiki.archlinux.org/index.php/GR ... ll_to_disk) soit

Code : Tout sélectionner

grub-install --target=i386-pc /dev/sdx
grub-mkconfig -o /boot/grub/grub.cfg
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

Merci pour ta réponse, que veux-tu dire quand tu dis qu'il faut savoir qu'il ne pourra pas y avoir de Windows d'installé ?

Windows 10 utilise une table GPT, peut-être tu parles de dual boot ?

grub-install --no-floppy --recheck /dev/sda est-il égal à grub-install --target=i386-pc /dev/sdx ?

Je ne peux pas monter /dev/sda1 pour installer grub, comment je dois faire ? Dans le wiki ils parlent de monter /dev/sda1

Quand tu dis que c'est aimer se compliquer la vie, tu veux dire qu'il y a d'autres méthodes pour un disque dur GPT de 2 To sur un système Bios ?

Il vaut mieux une table MBR sur un Bios ? J'ai toujours pensé que c'était mieux GPT

Merci d'avance
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

Windows 7 n'utilise pas une table GPT s'il ne boot pas en UEFI. Connaissant Microsoft, je ne pense pas que cela ai changé !
Donc si tu n'as pas un boot UEFI Windows ne peut pas être en GPT !
Donc si tu veux un dualboot tu dois impérativement utiliser le même système de boot (MBR ou UEFI) que celui de Windows, sinon cela ne marchera pas (même en bricolant)

Le Wiki ne parles pas de monter /dev/sda1 ! Ne pas mélanger avec la partition de boot que tu ne dois pas créer. Aujourd'hui il n'est presque jamais nécessaire de créer de partition de boot (les cas sont tellement rare que l'on ne va pas les détailler ici)

GPT n'est pas "mieux" qu'une table msdos/MBR, c'est jusque que tu n'as pas la limite de 2 To en GPT
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

Je crois que je suis en train de comprendre le truc, donc en utilisant une table de partition MBR sur un système BIOS je ne créée pas la partition boot ?

Et en utilisant une table de partition GPT sur UEFI je ne créée pas non plus la partition boot ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

La partition de boot ne doit pas être créé dans les 2 cas. Par contre en gpt + uefi tu as besoin d'une partition ESP, mais normalement celle-ci est créé par Windows. Donc ne pas confondre là aussi avec la partition de boot ni avec la partition spécial de 1 Mo ef02
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

Merci pour ta réponse, j'essaye de comprendre entièrement le fonctionnement

Donc que ce soit sur une table GPT avec BIOS, ou une table GPT avec UEFI, je ne formate pas la partition ?
Et pour une table MBR avec BIOS je ne formate pas non plus ?

Il se passe quoi si je fait une partition spéciale ef02 de plus d'1Mo ? (Par exemple 300mo ?) Parce-que visiblement je ne peux installer qu'un noyau du coup si elle ne fait que 1Mo

Je confonds la partition boot et l'esp je crois, parce-que comment je fait l'esp si je ne peux pas formater et monter la partition, c'est assez complexe à comprendre, je suis obligé de formater /dev/sda1
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

On reprend tout depuis zéro... Tu as plusieurs types de partition:
  • La partition ef02 de 1 Mo, qui ne doit pas être formater, qui est un bricolage pour pouvoir installer un chargeur de démarrage bootant en mode MBR/BIOS sur une table de partition GPT
  • La partion ESP, code ef00, qui doit être formaté en FAT32, et qui doit avoir une taille minimal (en fonction de la taille des secteurs). Cette partition est utiliser pour stocker les applications .efi et est donc utiliser pour démarrer en mode UEFI sur du GPT
  • La partition de /boot, généralement formatée en ext2 contenant le kernel, ... Cette partition n'est plus nécessaire car le kernel peut maintenant être lu sans aucun souci sur la partition racine en ext4...
  • La partition racine généralement formatée en ext4...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

Donc si je comprends bien, la partition ef02 peut faire n'importe quelle taille, et le kernel est installé dans "/" ?

Donc avec la partition ESP, je fait comme j'ai fait pour la partition EF02, je créée une partition /dev/sda1 que je formate en FAT32 et c'est tout ? Pas besoin de créer des dossiers ni rien dedans, je me contente UNIQUEMENT de la formater en FAT32 ? Parce-que dans le wiki du Grub ils parlent de créer l'ESP en formatant et faisant des dossiers...
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

Sérieusement ? Relis posément mon message, la partition ef02 doit être de 1 Mo ! Et où est je indiqué qu'il ne fallait rien faire côté partition ESP ?
Tout ce qui est indiqué dans le wiki est juste que je sache, il faut juste le lire posément et le comprendre...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

Il y a du avoir un quiproquo, parce-que je t'ai demandé si il fallait créer une partition boot avec une table GPT sur UEFI et tu m'as dit : La partition de boot ne doit pas être créé dans les 2 cas

J'ai mal dû m'exprimer, il ne faut pas seulement formater la /dev/sda1 en FAT32, il faut également faire :

mkdir -p /boot/efi
mount -t vfat /dev/sdXY /boot/efi
mkdir -p /boot/efi/EFI ?

Je pensais qu'il fallait seulement la formater en FAT32, je suis perdu
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

Je ne sais plus quoi te dire... Tout ce que j'ai dis est juste et je pense que c'est très clair...
Depuis le début tu dis que ton pc est non uefi, et la maintenant tu veux créer une partition ESP...

Donc déjà que veux tu faire ? Quel type de partition ? Quel chargeur de démarrage ? C'est quoi ton pc, référence exacte ? Est-il réellement non uefi ? As tu déjà un windows d'installé ou veux tu l'installer après, ou tu ne veux pas de windows ? Ils sont sur le même disque ?

Et s'il te plaît arrête de parler de /dev/sda1 sans spécifier ce que c'est comme partition...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

J'ai une installation non uefi et une installation uefi à faire, je cherche aussi à comprendre le fonctionnement au travers de mes questions

Ce sont des ordinateurs montés, je ne souhaite pas avoir de Windows

À chaque fois que j'ai un OS à installer j'utilise un live d'Arch pour refaire une table de partition toute propre,

Et j'ai donc deux cas

Un PC non UEFI avec table de partition GPT

Un PC UEFI avec table de partition GPT

Mais je voulais comprendre tous les cas de fonctionnement :

PC UEFI avec GPT
PC non UEFI avec GPT
PC non UEFI avec MBR

Pardon pour /dev/sda1, lorsque j'utilise cette référence, je veux parler de la partition d'amorçage (Donc là ou j'installe GRUB)
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [BIOS] Grub sur table GPT

Message par FoolEcho »

PascalK a écrit :Mais je voulais comprendre tous les cas de fonctionnement :

PC UEFI avec GPT
PC non UEFI avec GPT
PC non UEFI avec MBR
Alors en fait... tu as aussi le cas de figure UEFI + MBR... :mrgreen:
Mais comme le cas non UEFI + GPT, le UEFI + MBR va dépendre de la carte mère...

Donc si tu n'es pas joueur, mieux vaut rester sur BIOS + MBR ou UEFI + GPT.

Dans les très grandes lignes... Tu as donc deux manières pour amorcer le démarrage un ordinateur:
  • le BIOS. Historique mais encore présent.
  • l'UEFI. Remplaçant du BIOS.
Et deux types de partitionnement des disques:
  • MBR. La table de partition (les infos sur l'organisation des partitions sur le disque) réside dans le premier secteur du disque (= master boot record). 4 partitions primaires max (contournées par le fait d'avoir 3 primaires + 1 étendue pouvant se subdiviser en partitions logiques). La taille d'une partition ne peut excèder environ 2 To. Ne fonctionne pas (théoriquement) avec UEFI.
  • GPT. Les infos sur la table sont à la fois sur le premier secteur du disque mais aussi dupliquées ailleurs sur les autres partitions. Théoriquement 128 (il me semble) partitions primaires max (c'est grosso modo kif kif avec mbr en partition étendue). Pertinent sur des disques de très grandes capacités puisqu'une partition peut atteindre 256 To (il me semble). Fonctionne avec BIOS (sous réserve de la compatibilité côté carte mère) et UEFI.
Le wiki anglophone détaille très bien comment tout ça démarre:
Arch_boot_process

:chinois:

... mais ça ne fait pas avancer le sujet... :non:
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

Pour compléter et affiner les informations de FoolEcho, si on rentre dans la technique:
  • Pour une table de partition msdos/MBR, sa structure est celle-ci : https://fr.wikipedia.org/wiki/Master_boot_record
    En résumé le MBR tient sur le premier secteur du disque. Et comme la première partition ne commence pas dès le second secteur, alors on peut placer des choses "cachées" entre les 2. Maintenant la première partition commence généralement au secteur 2048, mais on pourrait la commencer bien plus tôt quand on n'avait pas tous ces soucis d'alignement.
  • Pour une table de partition GPT, (désolé FoolEcho ce que tu dis n'est pas exactement juste), sa structure est celle-ci : https://fr.wikipedia.org/wiki/GUID_Partition_Table
    En résumé, le secteur MBR est gardé pour des questions de compatibilité, puis le 2ième secteur possède le header GPT, puis tu as 32 secteurs pour stocker la table GPT. Ce qui utilise au total 34 secteurs au début du disque. Cette même structure est répliqué en fin de disque pour des questions de fiabilité...
Bref, on peut donc voir la majeur différence entre MBR et GPT, avec du GPT il n'est pas "possible" de cacher quelque chose entre la table de partition et la première partition car la table car la table GPT est bien plus grosse.

Donc on en vient à nos 3 cas
  • PC UEFI avec GPT: Cas classique, on utilise une partition ESP (code ef00), Grub installe à minima son application .efi dans cette partition en FAT32. Donc oui il faut la monter et faire toutes les manipulations décrites dans le Wiki
  • PC non UEFI avec MBR: Cas aussi classique. Grub s'installe en partie dans les 440 premiers octets du MBR, mais comme tout ne tient pas dans 440 octets tu as la suite caché entre le MBR et la table de partition. Et pour être vraiment complet, tu as la 3ième partie qui est placé dans le dossier /boot (dans la partition racine ou la partition de boot si créé).
  • PC non UEFI avec GPT: Cas moins classique et non recommandé (totalement incompatible avec Windows). Des personnes ont trouvés une solution au problème de l'enregistrement de la seconde partie de Grub (qui est normalement situé entre le MBR et la première partition). La solution est tout simplement de créer une petite partition (1 Mo, code ef02) au début du disque pour réserver un peu d'espace pour que Grub y place sa 2ième partie.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

Merci pour vos réponses les gars,

Donc en gros, si je récapitule :

- PC UEFI avec GPT : (J'utilise /dev/sda1 pour GRUB)
1) Je créée une partition avec le code ef00 de 512M (/dev/sda1 dans mon cas)
2) mkfs.vfat -F32 /dev/sda1
3) mkdir -p /mnt/boot/efi && mount -t vfat /dev/sda1 /mnt/boot/efi
4) mkdir -p /boot/efi/EFI
5) grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
6) grub-mkconfig -o /boot/grub/grub.cfg

Et c'est tout, rien de plus ? Tout s'installe avec ces commandes là, j'ai aussi lu que mkinitcpio -p linux ajoutais des fichiers dans ces dossiers je crois

- PC NON UEFI avec MBR : Là je ne fait que formater la partition, je ne créée pas de dossiers ? (Toujours dans le cas /dev/sda1)
1) Je créée une partition avec le code ef02 de 300M
2) grub-install --no-floppy --recheck /dev/sda
3) grub-mkconfig -o /boot/grub/grub.cfg

Je me contente uniquement de la créer, je ne la formate pas et ne créée pas de dossier boot ?

- PC NON UEFI avec GPT (Toujours avec le cas /dev/sda1)
1) Je créée une partition avec le code ef00 de 1Mo
2) grub-install --no-floppy --recheck /dev/sda
3) grub-mkconfig -o /boot/grub/grub.cfg

Même chose ? Je ne me contente que de créer la partition, sans formater, et j'y installe grub directement ?

D'après ce que j'ai compris, j'agirais comme ça, est-ce que je me suis trompé quelque part dans ma manière d'agir ? Ou il faut faire différemment ?

Ma méthode décrite dans le 1er post avec gparted est-elle bonne pour créer les partitions ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

Pour le premier cas (PC UEFI avec GPT ), il te manque l'étape de chroot entre 3 et 4.
Pour le reste tu as tout mélangé...

Pour PC NON UEFI avec MBR, tu n'as pas de partition à créer, à part la partition racine, home, ...

Pour PC NON UEFI avec GPT, le code de partition est ef02...

Sinon plus généralement l'installation de GRUB doit être faite depuis le chroot
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

L'étape de chroot entre 3 et 4 sur PC UEFI avec GPT c'est juste "arch-chroot /mnt" ?
C'est pareil pour tous les cas, UEFI avec ou sans GPT, Bios avec ou sans GPT aussi, non ?

PC NON UEFI avec MBR je ne fait pas une partition pour grub (/dev/sda1 dans mon cas) avec le code ef02 ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17285
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [BIOS] Grub sur table GPT

Message par benjarobin »

Le chroot consiste en effet à juste "arch-chroot /mnt", comme expliqué dans le Wiki...
Pour le PC NON UEFI avec MBR, il ne faut rien créer, le wiki ne dit pas le contraire, si ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
PascalK
Hankyu
Messages : 25
Inscription : sam. 27 août 2016, 15:56

Re: [BIOS] Grub sur table GPT

Message par PascalK »

Donc sur un PC NON UEFI avec MBR je n'ai pas de première partition de 1Mo, ni un peu plus grande du genre 150/300Mo pour Grub ?

Il n'y a que
1) Partition "/"
2) Partition home ?
Répondre