Je suis sur le point d'acheter une carte mère Asus avec le firmware EFI et je voulais me préparer à installer Windows et Debian une fois le matériel arrivé. J'espérais que quelqu'un qui a emprunté cette voie pourrait me donner quelques indications.
Quelles préparations dois-je faire avant d'essayer d'installer Windows 7 et Debian sur un nouveau système basé sur UEFI ?
Réponse acceptée :
MODIF : Lorsque j'ai écrit cette réponse, très peu de distributions étaient livrées avec un noyau configuré EFI_STUB, il fallait donc en créer un personnalisé. De nos jours, la plupart des distributions fournissent un noyau correctement configuré et une construction personnalisée n'est plus nécessaire. Dans ce cas, les sections "Configurer vos partitions" et "Configurer les choses" sont les plus intéressantes, les "Exigences" et "Compilation du noyau" peuvent être ignorées.
Je ne sais pas comment Windows gère l'UEFI, mais du côté de Debian, c'est assez
simple.
Configurez vos partitions
Utilisez le schéma de partition GPT, pas MBR.
Pour démarrer à partir d'une partition GPT avec UEFI, une partition de démarrage dédiée est obligatoire,
appelée EFI SYSTEM PARTITION (ESP). Ce n'est pas obligatoire, mais le moyen le plus
compatible est d'utiliser une partition FAT32. Une taille de 200 Mio devrait suffire
dans la plupart des cas.
Pour enregistrer la partition en tant qu'ESP, elle doit être marquée avec le boot
flag.
Contrairement aux schémas MBR, le drapeau de démarrage n'est utilisé que pour indiquer l'ESP,
pas les partitions à partir desquelles démarrer.
UEFI utilise une structure de répertoire EFI<vendor><application>.efi
pour stocker
les applications UEFI. Un séparateur de répertoire est indiqué par une barre oblique inverse , même sous
Linux. peut être un nom de distribution, la valeur réelle n'est pas pertinente
pour l'UEFI.
Les applications peuvent être des utilitaires système tels que des vérificateurs de mémoire ou un shell UEFI. Il peut également s'agir d'un chargeur de système d'exploitation ou du système d'exploitation lui-même. Ces applications
doivent être enregistrées dans l'UEFI pour pouvoir être lancées au démarrage.
Exigences
La version du noyau Linux>=3.3 peut être chargée directement par l'UEFI. Le noyau peut agir comme son propre chargeur. Cela s'appelle EFISTUB . Les configurations de noyau suivantes sont nécessaires.
CONFIG_EFI=y CONFIG_EFI_PARTITION=y CONFIG_EFI_STUB=y CONFIG_RELOCATABLE=y CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_EFI_VARS=m
Un noyau avec cette configuration n'est actuellement pas encore dans la version stable de Debian. Vous pouvez soit
préparer votre propre noyau, soit utiliser celui de l'arbre expérimental, auquel cas vous pouvez sauter le paragraphe suivant.
Compilation du noyau
(probablement plus nécessaire, voir la modification)
Si vous décidez de compiler le noyau, voici de courtes instructions pour le faire. Si vous rencontrez des problèmes, de nombreuses informations sont disponibles sur la façon de compiler un noyau.
Obtenir la source
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Découvrez une version particulière
git checkout v3.6
Configuration du noyau
make menuconfig
Effectuez les réglages nécessaires sur votre système ou laissez-le tel quel
si vous n'avez rien à personnaliser. Cela écrit la configuration du noyau
dans le fichier .config
.
Assurez-vous que les paramètres du paragraphe précédent sont définis. Il est également
logique de sélectionner CONFIG_INPUT_EVBUG=n
. Sinon, vos journaux
seront remplis de Gio de fichiers indésirables.
Construire le noyau
INSTALL_MOD_STRIP=1 make-kpkg --uc --us binary-arch
Les packages sont créés dans le répertoire parent.
Installation du noyau
dpkg -i linux-image-3.5.0_Custom.deb linux-headers-3.5.0_Custom.deb
Créer initramfs
mkinitramfs -o /boot/initrd.img-3.6.0-amd64 3.6.0
3.6.0 est la version du noyau. Il s'agit par défaut du noyau en cours d'exécution,
ce qui n'est pas un bon choix, puisque vous exécutez toujours l'ancien
noyau.
Configuration
Pour pouvoir démarrer le noyau Linux, il doit être copié sur l'ESP avec
l'initramfs. Étant donné que l'ESP est monté sur /boot/efi
/boot/efi/EFI/debian/vmlinuz-3.6.0.efi /boot/efi/EFI/debian/initrd.img-3.6.0
REMARQUE : Pour assurer la compatibilité avec la plupart des systèmes, l'extension efi
doit
être ajouté au noyau.
Maintenant, le noyau peut être enregistré dans l'UEFI. Nous utilisons l'outil efibootmgr
pour
cela.
echo "root=UUID=3a4287b6-b3a7-4721-da38-acc38a928278 ro rootfstype=ext4 add_efi_memmap initrd=\EFI\debian\initrd.img-3.6.0" | iconv -f ascii -t ucs2 | efibootmgr --create --gpt --disk /dev/sda --part 4 --label "Debian Linux kernel 3.6.0" --loader "\EFI\debian\vmlinuz-3.6.0" --write-signature --append-binary-args -
L'argument de --disk
est le périphérique où réside le noyau, pas l'ESP. --part
est le numéro de partition où réside le noyau. --label
est l'
entrée du menu de démarrage UEFI.
Pour voir une liste des entrées disponibles, lancez simplement efibootmgr
sans
argument. Syntaxe pour supprimer une entrée particulière
efibootmgr -b entry (hex) -B
par exemple :
efibootmgr -b 001a -B
Ces instructions ne traitent pas le cas d'une mise à jour du noyau. Le noyau et initramfs ne sont pas automatiquement copiés sur l'ESP. Cela peut être fait en utilisant un court script qui copie le noyau et initramfs sur l'ESP et exécute efibootmgr
. Ce script peut être placé dans /etc/kernel/postinst.d
à lancer automatiquement après la mise à jour du noyau.
Remarque : Un gestionnaire de démarrage comme GRUB n'est pas nécessaire, UEFI lui-même agit comme un gestionnaire de démarrage.
C'est tout ce dont vous avez besoin du côté Linux, je ne sais pas ce qu'il faut pour ajouter
Windows.