GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Debian – Was tun vor dem Dual-Booten von Windows 7 und Debian auf Efi?

Ich stehe kurz vor dem Kauf eines Asus-Motherboards mit EFI-Firmware und wollte mich auf die Installation von Windows und Debian vorbereiten, sobald die Hardware eintrifft. Ich hatte gehofft, dass mir jemand, der diesen Weg gegangen ist, ein paar Hinweise geben könnte.

Welche Vorbereitungen sollte ich treffen, bevor ich versuche, Windows 7 und Debian auf einem neuen UEFI-basierten System zu installieren?

Akzeptierte Antwort:

BEARBEITEN: Als ich diese Antwort schrieb, wurden nur sehr wenige Distributionen mit einem EFI_STUB-konfigurierten Kernel ausgeliefert, sodass man einen benutzerdefinierten erstellen musste. Heutzutage liefern die meisten Distributionen einen passend konfigurierten Kernel aus und ein Custom Build ist nicht mehr erforderlich. In diesem Fall die Abschnitte „Richten Sie Ihre Partitionen ein“ und „Einrichten“ sind die interessanten, „Requirements“ und „Compiling the kernel“ können übersprungen werden.

Ich weiß nicht, wie Windows mit UEFI umgeht, aber von Debian-Seite ist es ziemlich
unkompliziert.

Richten Sie Ihre Partitionen ein

Verwenden Sie das GPT-Partitionsschema, nicht MBR.

Um von einer GPT-Partition mit UEFI zu booten, ist eine dedizierte Bootpartition erforderlich,
die als EFI SYSTEM PARTITION bezeichnet wird (ESP). Es ist nicht obligatorisch, aber der kompatibelste Weg ist die Verwendung einer FAT32-Partition. Eine Größe von 200 MiB sollte
für die meisten Fälle ausreichen.

Um die Partition als ESP zu registrieren, muss sie mit dem boot gekennzeichnet werden Flag.
Im Gegensatz zu MBR-Schemata wird das Boot-Flag nur verwendet, um den ESP anzuzeigen,
nicht die Partitionen, von denen gebootet werden kann.

UEFI verwendet eine Verzeichnisstruktur EFI<vendor><application>.efi um
UEFI-Anwendungen zu speichern. Ein Verzeichnistrennzeichen wird durch einen Backslash gekennzeichnet , sogar unter
Linux. könnte ein Verteilungsname sein, der tatsächliche Wert ist
für das UEFI nicht relevant.

Anwendungen können Systemdienstprogramme wie Speicherprüfprogramme oder eine UEFI-Shell sein. Es kann
auch ein OS-Loader oder das Betriebssystem selbst sein. Diese Anwendungen
müssen im UEFI registriert werden, damit sie beim Booten gestartet werden können.

Anforderungen

Die Linux-Kernel-Version>=3.3 kann direkt vom UEFI geladen werden. Der Kernel kann als sein eigener Lader fungieren. Dies nennt sich EFISTUB . Die folgenden Kernelkonfigurationen werden benötigt.

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

Ein Kernel mit dieser Konfiguration ist derzeit noch nicht in Debian Stable. Sie können entweder
Ihren eigenen Kernel backen oder den aus dem experimentellen Baum verwenden, in diesem Fall können Sie den nächsten Absatz überspringen.

Kernel kompilieren

(wahrscheinlich nicht mehr nötig, siehe Bearbeiten)

Wenn Sie sich entscheiden, den Kernel zu kompilieren, finden Sie hier eine kurze Anleitung, wie das geht. Wenn Sie auf Probleme stoßen, finden Sie zahlreiche Informationen zum Kompilieren eines Kernels.

Quelle abrufen

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Prüfen Sie eine bestimmte Version

git checkout v3.6

Kernel konfigurieren

make menuconfig

Nehmen Sie die erforderlichen Einstellungen auf Ihrem System vor oder lassen Sie es so,
wenn Sie nichts anpassen müssen. Dadurch wird die Kernel
-Konfiguration in die Datei .config geschrieben .

Stellen Sie sicher, dass die Einstellungen aus dem vorherigen Absatz eingestellt sind. Es ist auch
sinnvoll, CONFIG_INPUT_EVBUG=n auszuwählen . Andernfalls werden Ihre Protokolle
mit GiB an Müll gefüllt.

Siehe auch:Debian – Benutzer und Passwort bei der Anmeldung in Debian 9 Stretch entfernen?

Baukern

INSTALL_MOD_STRIP=1 make-kpkg --uc --us binary-arch

Die Pakete werden im übergeordneten Verzeichnis erstellt.

Kernel installieren

dpkg -i linux-image-3.5.0_Custom.deb linux-headers-3.5.0_Custom.deb

Building initramfs

mkinitramfs -o /boot/initrd.img-3.6.0-amd64 3.6.0

3.6.0 ist die Kernel-Version. Es verwendet standardmäßig den laufenden Kernel,
was keine gute Wahl ist, da Sie immer noch den alten
Kernel ausführen.

Dinge einrichten

Um den Linux-Kernel booten zu können, muss dieser zusammen
mit dem initramfs auf den ESP kopiert werden. Vorausgesetzt, das ESP ist unter /boot/efi gemountet

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

HINWEIS: Um die Kompatibilität mit den meisten Systemen zu gewährleisten, ist die Erweiterung efi muss
zum Kernel hinzugefügt werden.

Nun kann der Kernel im UEFI registriert werden. Wir verwenden das Tool efibootmgr für
das.

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 -

Das Argument von --disk ist das Gerät, auf dem sich der Kernel befindet, nicht der ESP. --part ist die Partitionsnummer, in der sich der Kernel befindet. --label ist der
Eintrag im UEFI-Startmenü.

Um eine Liste der verfügbaren Einträge anzuzeigen, starten Sie einfach efibootmgr ohne
Argumente. Syntax zum Löschen eines bestimmten Eintrags

efibootmgr -b entry (hex) -B

zum Beispiel:

efibootmgr -b 001a -B

Diese Anweisungen behandeln nicht den Fall eines Kernel-Updates. Der Kernel und initramfs werden nicht automatisch auf den ESP kopiert. Dies kann mit einem kurzen Skript erfolgen, das den Kernel und initramfs auf den ESP kopiert und efibootmgr ausführt . Dieses Skript kann in /etc/kernel/postinst.d platziert werden automatisch gestartet werden, nachdem der Kernel aktualisiert wurde.

Hinweis: Ein Bootmanager wie GRUB wird nicht benötigt, UEFI selbst fungiert als Bootmanager.

Das ist alles, was Sie von der Linux-Seite brauchen, ich weiß nicht, was es braucht, um
Windows hinzuzufügen.


Debian
  1. Benutzerdefinierte Kernel in Ubuntu/Debian – wie, wann und warum

  2. So installieren und verwenden Sie Debian-Backports

  3. So installieren und verwenden Sie Ansible unter Debian 11

  4. So installieren und sichern Sie MariaDB unter Debian 11

  5. So installieren Sie Node.js und npm unter Debian 11

So installieren Sie Icinga 2 und Icinga Web 2 unter Debian 9

So installieren Sie Kernel-Header unter Debian

So finden und ändern Sie die IP-Adresse unter Debian

So booten Sie Antergos Linux und Windows UEFI doppelt

So installieren Sie den neuesten Kernel auf Debian 11 und Derivaten

So installieren Sie den Linux-Kernel 5.15 unter Debian 11