Page 1 sur 3
[Installation] Installation avec un BIOS en UEFI (résolu)
Publié : lun. 01 mai 2017, 22:52
par stephan08
Bonjour,
Je suis en train d'installer Archlinux sur un PC où était préinstallé Windows. Le BIOS est en UEFI.
Du coup, lorsque j'ai lancé le Live CD Archlinux, il y avait déjà les partitions suivantes en lançant la commande
cfdisk:
Code : Tout sélectionner
/dev/sda1: 100M EFI System
/dev/sda2: 16M Microsoft reserved
/dev/sda3: 530,4Go Microsoft basic data
/dev/sda4: 1Go Windows recovery environment
Du coup, avec cfdisk, j'ai crée les partitions suivantes:
Code : Tout sélectionner
/dev/sda5: 250Go Linux home
/dev/sda6: 128 Go Linux root (x86-64)
/dev/sda7: 500M Linux swap
Etant donnée que le BIOS est en UEFI, il n'y a pas besoin de crée de partition /boot, puisqu'on utiliserait déjà la partition /dev/sda1 dédiée à l'UEFI.
Or, le problème, c'est que cette partition ne fait que 100Mo. Du coup, comment puis je me débrouiller étant donné qu'il faudrait plus de 100Mo pour un dual boot avec Windows?
Faut il que je lise le contenu de /dev/sda1 avec un mount afin de faire un backup de ce qu'il contient et que je recrée par dessus une partition plus grande?
De même, lorsque j'utilise cfdisk, et que je veux faire "write" pour chacune des nouvelles partitions crées, ils me disent qu'il y a un risque que les données soient détruites:
Est ce que cela concerne seulement la partition sur laquelle, je souhaite faire l'opération?
Je vous remercie par avance,
Re: [Installation] Installation avec un BIOS en UEFI
Publié : lun. 01 mai 2017, 23:22
par benjarobin
Bonjour,
Je ne suis pas sûr de comprendre, as tu fait de la place au préalable, comment as tu réduit la partition de Windows ?
Où as tu placé tes partitions Linux ? Attention de bien avoir créer les nouvelles partitions dans un espace libre, sinon tu détruit littéralement ton Windows.
Sinon pour la partition ESP, 100 Mo est plus que largement suffisant si tu utilises Grub (dans ce cas la partition ESP doit être monté dans /boot/efi). Par contre tu ne pourras pas utiliser systemd-boot par exemple car il n'y aura pas la place d'y placer le kernel et son initramfs.
Je te rassure Grub est un très bon choix
Re: [Installation] Installation avec un BIOS en UEFI
Publié : mar. 02 mai 2017, 13:50
par stephan08
Bonjour,
Mes partitions quand je les créais (créais entre guillemets car je n'avais pas fait le write de cfdisk) étaient effectivement placées dans des espaces qui étaient au départ vide. C'est juste que quand pour chacune des partitions, je faisais "Write" avec cfdisk, j'avais un message:
J'avais donc un doute et j'ai quitté cfdisk. En effet, j'ai ce message alors que je créais les partitions sur un espace au départ vide.
Et du coup, je me suis dit que le fonctionnement en GPT (à cause de l'UEFI) étaient un peu différent et qu'il y avaient peut être un risque que les partitions Windows soient impactées même si j'avais l'intention de faire le "Write" sur des partitions qui étaient créees dans des espaces qui étaient vides au départ.
Si tu me dis que 100Mo est suffisant pour Grub, ok. Toutefois, si j'ai envie d'avoir une partitions UEFI supérieur à 100Mo comment dois je m'y prendre puisqu'à priori dans la partition de départ de 100Mo, il doit déjà y avoir des données importantes.
Je te remercie par avance,
Re: [Installation] Installation avec un BIOS en UEFI
Publié : mar. 02 mai 2017, 17:43
par Lysio
Si c'est une nouvelle partition créée sur un espace vide, il n'y a aucune raison que des données soient détruites.
Ceci est juste un message de prévention.
Re: [Installation] Installation avec un BIOS en UEFI
Publié : mar. 02 mai 2017, 19:30
par stephan08
Ok, ça marche.
Par contre, j'aimerais savoir dans le cas où je souhaiterais supprimer la partition UEFI de 100Mo et en recréer une autre de 200Mo y a t'il un risque de perte de données importante qui fairais que l'on doit faire des modifications dans la partition?
Re: [Installation] Installation avec un BIOS en UEFI
Publié : mar. 02 mai 2017, 21:07
par benjarobin
Agrandir la partition ESP t'amène à de gros souci (si tu veux perdre ton Windows)... Pourquoi veux tu faire une telle chose ? 100 Mo est plus que largement suffisant pour 99% des utilisateurs.
Mais en gros tu dois déplacer toutes les partitions de Windows avec Gparted, puis agrandir la partition ESP. Tu as de très très forte chance de casser Windows en faisant une telle chose. Encore une fois pourquoi veux tu prendre un tel risque ? Chez moi la partition ESP n'est jamais monté (car son contenu ne change jamais) et il y a juste 19 Mo dessus... J'ai 80 Mo de marge
Re: [Installation] Installation avec un BIOS en UEFI
Publié : mar. 02 mai 2017, 22:59
par stephan08
Je te remercie pour les explications.
Par contre, peux tu m'expliquer
Sur la documentation, c'est indiqué que c'est pour chrooter dans le nouveau système.
Peux tu m'expliquer ce que cela veut dire?
Re: [Installation] Installation avec un BIOS en UEFI
Publié : mar. 02 mai 2017, 23:06
par benjarobin
Je te laisse te documenter un peu sur le sujet. Mais en gros le chroot peut être vu comme un conteneur, et cela permet d'y accéder en changeant la racine du système de fichier... Désolé je ne sais pas trop comment l'expliquer
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 16:53
par stephan08
Salut,
Ok, je te remercie.
Je suis en train d'installer Grub.
Je remet l'ensemble des partitions que j'ai:
Code : Tout sélectionner
/dev/sda1: 100M EFI System
/dev/sda2: 16M Microsoft reserved
/dev/sda3: 530,4Go Microsoft basic data
/dev/sda4: 1Go Windows recovery environment
/dev/sda5: 250Go Linux home
/dev/sda6: 128 Go Linux root (x86-64)
/dev/sda7: 1Go Linux swap
J'ai installé le paquet
os-prober pour qu'il détecte automatiquement les systèmes installés notamment pour qu'il détecte Windows.
Du coup, lorsque je lance:
J'obtiens les erreurs suviantes:
Code : Tout sélectionner
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image(s) in /boot: initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
[2159.588972] squashfs: SQUASHFS error: Can'f find a SQUASHFS superblock on sda2
[2159.593395] EXT4-fs (sda2): VFS: Can'f find ext4 filesystem
[2159.597942] EXT4-fs (sda2): VFS: Can't find ext4 filesystem
[2159.682373] EXT4-fs (sda2): VFS: Can't find ext4 filesystem
[2159.686742] FAT-fs (sda2): bogus number of reserved sectors
[2159.611238] ntfs: (device sda2): read_ntfs_boot_sector(): Primary boot sector is invalid.
[2159.613347] ntfs: (device sda2): read_ntfs_boot_sector(): Mount option errors=recover not used. Aborting without trying to recover.
[2159.615337] ntfs: (device sda2): ntfs_fill_super(): Not an NTFS volume.
done
Je ne comprends pas pourquoi j'ai les lignes suivantes:
Code : Tout sélectionner
[2159.593395] EXT4-fs (sda2): VFS: Can'f find ext4 filesystem
[2159.597942] EXT4-fs (sda2): VFS: Can't find ext4 filesystem
[2159.682373] EXT4-fs (sda2): VFS: Can't find ext4 filesystem
Cela voudrait dire qu'il croit que sda2 est une partition qui devrait être en ext4. Ce qui n'est pas le cas puisque lorsque je fais un cfdisk, le type de sda2 affiche "Microsoft reserved". Donc ça devrait être à priori du ntfs.
De plus, je ne comprends pas trop pourquoi j'ai les dernières lignes suivantes:
Code : Tout sélectionner
[2159.611238] ntfs: (device sda2): read_ntfs_boot_sector(): Primary boot sector is invalid.
[2159.613347] ntfs: (device sda2): read_ntfs_boot_sector(): Mount option errors=recover not used. Aborting without trying to recover.
[2159.615337] ntfs: (device sda2): ntfs_fill_super(): Not an NTFS volume.
Pourtant, je n'ai jamais touché à la partition sda2 via cfdisk. En plus, ça met
Not an NTFS volume.
Egalement, j'ai remarqué quelque chose: lorsque je fais
cfdisk, j'ai le message suivant:
Note that partition table entries are not in disk order now.
Est ce qu'à votre avis, ça a eu une quelconque incidence?
Du coup, ce que j'ai fait, c'est que j'ai désinstallé
os-prober via un:
Et j'ai refait un:
Et ça me donne:
Code : Tout sélectionner
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image(s) in /boot: initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
done
Du coup, la partition Windows n'est pas détecté mais au moins il n'y a plus d'erreurs. Est-ce que cela veut dire que pour les partitions Windows, il vaut mieux configurer à la main le fichier
/etc/grub.d/40_custom en ajoutant:
et lancer un grub-mkconfig -o /boot/grub/grub.cfg ou y a t'il quelque chose qui fait que j'ai ces erreurs avec
os-probe d'installé.
Je vous remercie par avance,
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 17:11
par benjarobin
Ce n'était que des warning que tu pouvais sans aucun souci ignorer...
De plus c'est le résultat qui compte : avoir un fichier grub.cfg valide.
Comme la partition sda2 ne contient aucun système de fichier, la détection de système de fichier automatique peut être perturbé...
Sinon l'entrée que tu as ajouté pour Windows est clairement invalide, c'est pour du legacy/MBR et non du gpt/efi
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 19:10
par stephan08
Ok, merci.
Par contre, en regardant l'ensemble des menuentry, je ne vois pas Windows dans le fichier généré dans
/boot/grub/grub.cfg
Il y a:
1) un menuentry 'Arch Linux'
2) un submenu 'Advanced options for Arch Linux'
un sous menu, menuentry 'Arch Linux'
un sous menu, menuentry 'Arch Linux (fallback initramfs)'
Saurais tu pourquoi il n'y a pas le menu Windows?
Je me pose la question de savoir si la commande:
est correctement lancée. En effet, en regardant sur le net notamment dans ce post:
https://bbs.archlinux.org/viewtopic.php?id=178707
un forumeur Scar dans son post du 2014-03-20 08:15:41 indique qu'il faille lancer dans le cas de l'UEFI la commande comme tel:
Je ne savais pas que c'était la déclaration du menuentry pour le Bios/MBR. Je ne sais pas trop comment m'y prendre pour l'UEFI. Du coup, je fais une proposition en basant sur un exemple pour Archlinux:
Code : Tout sélectionner
menuentry "Arch Linux, session graphique" {
search --fs-uuid --set root 355ccb5c-99e1-400d-b612-451f9247e35e
linux /boot/vmlinuz-linux root=/dev/disk/by-uuid/355ccb5c-99e1-400d-b612-451f9247e35e rw
initrd /boot/initramfs-linux.img
}
Je propose ce qui suit.
Pour la partition /dev/sda3 qui contient les données Windows, j'ai un Patition UUID et un FileSystem UUID. J'ai utilisé le FileSystem UUID pour la 1er et la 2e ligne et également j'ai laissé root.
Code : Tout sélectionner
menuentry "Windows" {
search --fs-uuid --set root 6054616B546144BE
#J'ai mis windows à la place de linux et j'ai laissé root
windows /boot/efi/EFI/boot/bootx64.efi root=/dev/disk/by-uuid/6054616B546144BE rw
#j'ai supprimé la partie inird
}
Peux tu me dire si c'est correcte?
Je te remercie par avance,
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 19:20
par benjarobin
Ce que tu met après
grub-mkconfig -o
est le chemin du fichier qui sera généré, tu peux très bien mettre autre chose, comme
/tmp/grub.cfg
Cela ne changera en rien son contenu !
Mais comme grub au démarrage cherche le fichier
./grub.cfg
dans le dossier d'installation configuré, qui est par défaut
/boot/grub
alors il faut passer ceci :
/boot/grub/grub.cfg
Personnellement je préfère installer intégralement Grub dans la partition ESP, ce qui donne généralement
$esp/EFI/grub/grub.cfg
(Si grub est installé dans
$esp/EFI/grub
) ce qui donne
/boot/efi/EFI/grub/grub.cfg
(si la partition ESP est monté dans
/boot/efi
)
Pour l'entrée de Windows, celle-ci devrait être automatiquement détectée via
os-prober, mais si tu veux le faire à la main, je te conseil de lire le Wiki anglophone car ce que tu essayes de faire n'a strictement aucun sens, comment veux-tu arriver à quelque chose de fonctionnel si tu essayes des choses au hasard ?
Franchement tu donnes vraiment l'impression de te moquer de moi
Tu balances n'importe quoi, en espérant de donner l'impression d'avoir fait un effort de recherche... Ce qui n'est pas le cas !
Bref, personnellement je l'ai rajouté via le fichier
/etc/grub.d/40_custom
Code : Tout sélectionner
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
if [ "${grub_platform}" == "efi" ]; then
menuentry "Windows" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 XXXX-YYYY
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
fi
Bien sûr tu dois adapter la ligne
search --fs-uuid
qui est entièrement fausse pour toi. Voir
https://wiki.archlinux.org/index.php/GR ... menu_entry
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 20:00
par stephan08
Je te remercie.
Par contre, je ne comprends pas trop. Lorsque j'avais installé et mis en place grub, j'avais lancé les commandes suivantes:
Code : Tout sélectionner
pacman -S grub
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
sachant que j'avais également fait le montage suivant:
Ai je fait une erreur? Je ne comprends pas trop pourquoi le dossier grub, je ne le retrouve pas dans /boot/efi/EFI.
Normalement, ça aurait du me générer les dossiers grub etc... dans /boot/efi/EFI non?
Du coup, dois je supprimer le dossier /boot/grub/ qui contient grub.cfg
Désolé, vis à vis de l'effort de recherches mais je ne me suis pas moqué de toi.
Par contre, j'ai fait une connerie, j'avais envie de voir le contenu d'un fichier .efi avec cat:
j'ai eu pleins de caractères défilés, j'ai fait Ctrl + C pour arrêter le défilement mais l'encodage des caractères a complêtement changé. Comment faire pour remettre l'encodage comme tout à l'heure?
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 20:04
par benjarobin
stephan08 a écrit : ↑dim. 07 mai 2017, 20:00
Normalement, ça aurait du me générer les dossiers grub etc... dans /boot/efi/EFI non?
Non, ceci est l'installation par défaut qui ne met que l'application efi dans l'ESP et non l'intégralité de Grub dedans...
stephan08 a écrit : ↑dim. 07 mai 2017, 20:00
Comment faire pour remettre l'encodage comme tout à l'heure?
Ferme la console ? Ctrl + D
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 21:21
par stephan08
Ok, merci.
Mais du coup, si je n'ai pas eu le menuentry auto généré grâce au package
et la commande
grub-mkconfig -o /boot/grub/grub.cfg, cela voudrait dire qu'il y a un soucis quelque part?
Normalement, je n'ai pas à l'entrer manuellement du coup.
Enfin bref, je regardais le lien que tu m'as filé pour entrer manuellement le menuentry pour mon Windows.
Du coup, pour connaître le
$fs_uuid, j'ai lancé:
Code : Tout sélectionner
grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Cela me donne:
Pourrais tu me dire comment utiliser cette commande avec une variable
$esp à la place de
/boot/efi/?
Egalement, j'ai lancé pour connaître
$hints_string la commande:
Code : Tout sélectionner
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Et j'obtiens:
Code : Tout sélectionner
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1
Du coup, à partir de ces deux résultats, j'ai constitué mon menuentry suivant que je place dans /etc/grub.d/40_custom:
Code : Tout sélectionner
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
if [ "${grub_platform}" == "efi" ]; then
menuentry "Windows" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 0E5F-BB9A
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
fi
Je préfère que tu me dises si c'est normal que je n'ai pas le menuentry autogénéré afin que j'essaie la méthode manuelle.
Merci par avance,
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 21:48
par benjarobin
J'en ai aucune idée si c'est normal, cela ne fonctionnait pas avec mon pc, l'important c'est de comprendre ce que l'on fait et c'est le résultat qui compte
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 23:30
par stephan08
Ok, ça marche merci.
Par contre, grub n'apparaît pas après le redémarrage de mon PC. En fait, c'est tombé directement sur Windows.
Du coup, je suis aller dans le BIOS UEFI, et il y avait la toute première partion Windows. Du coup, j'ai mis le disque dur HDD en 1ere position mais toujours pas de grub.
Saurais tu pourquoi? Pourtant, je devrais au moins avoir le Grub avec Archlinux d'installé.
D'ailleurs, j'ai une question à te poser. Est ce normal que lorsque j'ai fait le menuentry à la main que j'ai placé dans /etc/grub.d/40_custom, je mette hd0, gpt1. En effet, les données Windows sont dans /dev/sda3 d'où ma question.
Ceci étant si j'avais mis gpt1, c'était surtout pour respecter les résultats des commandes:
Code : Tout sélectionner
grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Je te remercie,
Re: [Installation] Installation avec un BIOS en UEFI
Publié : dim. 07 mai 2017, 23:43
par benjarobin
Je croyais que Grub fonctionnait, pourquoi faire les choses dans le désordre ? D'abord on rend Grub fonctionnel, et après on s'occupe du menu de Grub...
Si Grub n’apparaît pas, ce n'est pas la faute au contenu du grub.cfg. N'essaye pas de bricoler la chose.
La ligne search --fs-uuid --set=root
indique à Grub dans quelle partition charger l'application efi de Windows. Ici on indique la partition ESP, soit la première partition du disque.
As tu bien fait l'installation de Grub depuis le chroot ? Si non cela explique l'échec de la chose, sinon cela peut être ton PC qui ne respecte pas la norme EFI (cela ne sera pas le premier, rassure toi il y a des solutions)
Peux tu donner la sortie de : efibootmgr -v
Re: [Installation] Installation avec un BIOS en UEFI
Publié : lun. 08 mai 2017, 10:38
par stephan08
Oui, j'avais bien fait le
pacman -s grub dans le chroot.
Sinon:
me donne:
Code : Tout sélectionner
BootCurent: 0002
Timeout: 0 seconds
BootOrder: 2002,0001,2001,2003
Boot0000* arch_grub HD(1,GPT,6ec73e7f-4529-4b51-bdd5-f9e6106594a9,0x800,0x32000)/File(EFI\arch_grub\grubx64.efi)
Boot0001* Windows Boot Manager HD(1,GPT,6ec73e7f-4529-4b51-bdd5-f9e6106594a9,0x800,0x32000)/File(EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS...............x..B.C.D.OB.J.E.T.={9.d.e.a.8.6.2.c.-5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.-f.3.2.b.3.4.4.d.4.7.9.5.}...a................
Boot0002* ATAPI CDROM: Slimtype DVD A DA8AESH PciRoot(0x0)/Pci(0x17,0x0)/Sata(3,0,0)/CDROM(1,0x29,0x3bbd6)RC
Boot2001* EFI USB Device RC
Boot2002* EFI DVD_CDROM RC
Boot2003* EFI Network RC
Re: [Installation] Installation avec un BIOS en UEFI
Publié : lun. 08 mai 2017, 10:55
par benjarobin
Comment es tu arrivé à une telle situation ? Je n'ai encore jamais vu une telle chose. Corrige l'ordre de boot avec efibootmgr