Que dois-je faire avant le double démarrage de Windows 7 et Debian sur EFI?

10

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 conseils.

Quelles préparations dois-je faire avant d'essayer d'installer Windows 7 et Debian sur un nouveau système basé sur UEFI?

M. Shickadance
la source

Réponses:

8

EDIT: 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 livrent un noyau correctement configuré et une construction personnalisée n'est plus requise. Dans ce cas, les sections «Configurer vos partitions» et «Configurer les choses» sont les plus intéressantes, «Exigences» et «Compilation du noyau» peuvent être ignorées.

Je ne sais pas comment Windows gère UEFI, mais du côté 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 convenir dans la plupart des cas.

Pour enregistrer la partition en tant qu'ESP, elle doit être signalée avec l' bootindicateur. Contrairement aux schémas MBR, l'indicateur de démarrage est uniquement utilisé pour indiquer l'ESP, pas les partitions à partir desquelles démarrer.

UEFI utilise une structure de répertoires \EFI\<vendor>\<application>.efipour stocker les applications UEFI. Un séparateur de répertoires est indiqué par une barre oblique inverse , même sous Linux. pourrait être un nom de distribution, la valeur réelle n'est pas pertinente pour l'UEFI.

Les applications peuvent être des utilitaires système comme 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 stable dans Debian. Vous pouvez soit faire cuire votre propre noyau ou utiliser celui de l'arborescence expérimentale dans ce cas, vous pouvez ignorer le paragraphe suivant.

Compiler le noyau

(probablement plus nécessaire, voir modifier)

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

faire menuconfig

Définissez les paramètres nécessaires sur votre système ou laissez-les tels quels 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 judicieux de sélectionner CONFIG_INPUT_EVBUG=n. Sinon, vos journaux seront remplis de Gio de déchets.

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éation d'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, car vous utilisez toujours l'ancien noyau.

Mise en place des choses

Pour pouvoir démarrer le noyau Linux, il doit être copié sur l'ESP avec les initramfs. Étant donné que l'ESP est monté à/boot/efi

/boot/efi/EFI/debian/vmlinuz-3.6.0.efi
/boot/efi/EFI/debian/initrd.img-3.6.0

REMARQUE: pour garantir la compatibilité avec la plupart des systèmes, l'extension efidoit être ajoutée au noyau.

Maintenant, le noyau peut être enregistré dans l'UEFI. Nous utilisons l'outil efibootmgrpour 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 \
    --créer \
    --gpt \
    --disk / dev / sda \
    --partie 4 \
    --label "Debian Linux kernel 3.6.0" \
    --loader "\\ EFI \\ debian \\ vmlinuz-3.6.0" \
    --write-signature \
    --append-binary-args -

L'argument de --diskest le périphérique où réside le noyau, pas l'ESP. --partest le numéro de partition où réside le noyau. --labelest l'entrée dans le menu de démarrage UEFI.

Pour voir une liste des entrées disponibles, lancez simplement efibootmgrsans arguments. Syntaxe pour supprimer une entrée particulière

efibootmgr -b entrée (hex) -B

par exemple:

efibootmgr -b 001a -B

Ces instructions ne gèrent 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 script court qui copie le noyau et les initramfs sur l'ESP et s'exécute efibootmgr. Ce script peut être placé /etc/kernel/postinst.dpour être lancé 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 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.

Marco
la source
2

Assurez-vous que UEFI ne va pas verrouiller Linux sur votre machine; il y a probablement un paramètre à cet effet dans le BIOS. Vérifiez et vérifiez à coup sûr. Je revérifierais ce point avec le manuel et avec le fabricant si vous devez.

Il y a eu une longue discussion à ce sujet; ZDNet avait plusieurs articles. Voici un article du 21 septembre 2011 et un du 23 septembre .

Deuxièmement, en fonction des données historiques, vous souhaiterez peut-être d'abord installer Windows. Traditionnellement, Windows suppose simplement que c'est le seul système d'exploitation sur la machine - ainsi, il efface toutes les données de démarrage liées à Linux. Cela peut être différent pour l'UEFI, je ne sais pas.

Mei
la source
2

Vous n'avez pas nécessairement besoin de double démarrage Windows et Linux sur UEFI. Suivez le guide pour convertir votre UEFI en MBR-BIOS sans perte de données.

Ce guide a été fait par moi. De plus, le blog référé ne sera jamais supprimé. Bien que je l'aie utilisé 10 fois sans perte de données, je vous recommande de sauvegarder vos données avant d'utiliser ma procédure.

Nehal J Wani
la source
2

Je peux recommander chaleureusement la série d'articles UEFI de Rod Smith . En particulier, il mentionne que le GPT-MBR "hybride" est un "piratage dangereux" en raison des risques de désynchronisation.

Michael Shigorin
la source