GNU/Linux >> Linux Esercitazione >  >> Debian

Debian:come fare prima di eseguire il dual-boot di Windows 7 e Debian su Efi?

Sto per acquistare una scheda madre Asus con firmware EFI e volevo prepararmi per l'installazione di Windows e Debian una volta arrivato l'hardware. Speravo che qualcuno che ha percorso questa strada potesse darmi alcune indicazioni.

Quali preparativi devo fare prima di tentare di installare Windows 7 e Debian su un nuovo sistema basato su UEFI?

Risposta accettata:

MODIFICA: Quando ho scritto questa risposta pochissime distribuzioni spedite con un kernel configurato EFI_STUB, quindi è stato necessario crearne uno personalizzato. Al giorno d'oggi la maggior parte delle distribuzioni fornisce un kernel opportunamente configurato e una build personalizzata non è più necessaria. In questo caso le sezioni "Configura le tue partizioni" e "Impostazione delle cose" sono quelli interessanti, “Requisiti” e “Compilazione del kernel” possono essere saltati.

Non so come Windows gestisca UEFI, ma dal lato Debian è abbastanza
semplice.

Configura le tue partizioni

Usa lo schema di partizione GPT, non MBR.

Per eseguire l'avvio da una partizione GPT con UEFI è necessaria una partizione di avvio dedicata,
denominata PARTIZIONE DI SISTEMA EFI (ESP). Non è obbligatorio, ma il modo più
compatibile è utilizzare una partizione FAT32. Una dimensione di 200 MiB dovrebbe andare bene
per la maggior parte dei casi.

Per registrare la partizione come ESP, deve essere contrassegnata con boot flag.
A differenza degli schemi MBR, il flag di avvio viene utilizzato solo per indicare l'ESP,
non le partizioni da cui eseguire l'avvio.

UEFI utilizza una struttura di directory EFI<vendor><application>.efi per archiviare
applicazioni UEFI. Un separatore di directory è indicato da una barra rovesciata , anche su
Linux. potrebbe essere un nome di distribuzione, il valore effettivo non è rilevante
per UEFI.

Le applicazioni possono essere utilità di sistema come controlli della memoria o una shell UEFI. Può essere anche un caricatore del sistema operativo o il sistema operativo stesso. Queste applicazioni
devono essere registrate nell'UEFI per poter essere avviate all'avvio.

Requisiti

La versione del kernel Linux>=3.3 può essere caricata direttamente dall'UEFI. Il kernel può agire come un proprio caricatore. Questo si chiama EFISTUB . Sono necessarie le seguenti configurazioni del kernel.

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 kernel con questa configurazione attualmente non è ancora in Debian stable. Puoi sia
cuocere il tuo kernel o usare quello dell'albero sperimentale, in tal caso puoi saltare il paragrafo successivo.

Compilazione del kernel

(probabilmente non più necessario, vedi modifica)

Se decidi di compilare il kernel, ecco delle brevi istruzioni su come farlo. In caso di problemi, sono disponibili molte informazioni su come compilare un kernel.

Ottenere la fonte

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

Dai un'occhiata a una versione particolare

git checkout v3.6

Configurazione del kernel

make menuconfig

Effettua le impostazioni necessarie sul tuo sistema o lascialo così com'è
se non hai nulla da personalizzare. Questo scrive la configurazione del kernel
nel file .config .

Assicurati che le impostazioni del paragrafo precedente siano impostate. Inoltre
ha senso selezionare CONFIG_INPUT_EVBUG=n . Altrimenti i tuoi log
verranno riempiti con GiB di spazzatura.

Correlati:Debian – Rimuovere utente e password all'accesso in Debian 9 Stretch?

Costruzione del kernel

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

I pacchetti vengono creati nella directory principale.

Installazione del kernel

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

Costruire initramfs

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

3.6.0 è la versione del kernel. L'impostazione predefinita è il kernel in esecuzione,
che non è una buona scelta, poiché stai ancora eseguendo il vecchio kernel
.

Impostazione delle cose

Per poter avviare il kernel Linux, deve essere copiato nell'ESP insieme
a initramfs. Dato che l'ESP è montato su /boot/efi

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

NOTA: Per garantire la compatibilità con la maggior parte dei sistemi, l'estensione efi deve
essere aggiunto al kernel.

Ora il kernel può essere registrato nell'UEFI. Usiamo lo strumento efibootmgr per
che.

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'argomento di --disk è il dispositivo in cui risiede il kernel, non l'ESP. --part è il numero di partizione in cui risiede il kernel. --label è la voce
nel menu di avvio UEFI.

Per vedere un elenco delle voci disponibili, avvia semplicemente efibootmgr senza
argomenti. Sintassi per eliminare una voce particolare

efibootmgr -b entry (hex) -B

ad esempio:

efibootmgr -b 001a -B

Queste istruzioni non gestiscono il caso di un aggiornamento del kernel. Il kernel e initramfs non vengono copiati automaticamente nell'ESP. Questo può essere fatto usando un breve script che copia il kernel e initramfs su ESP ed esegue efibootmgr . Questo script può essere inserito in /etc/kernel/postinst.d da avviare automaticamente dopo l'aggiornamento del kernel.

Nota: Non è necessario un boot manager come GRUB, lo stesso UEFI funge da boot manager.

Questo è tutto ciò di cui hai bisogno dal lato Linux, non so cosa serve per aggiungere
Windows.


Debian
  1. Kernel personalizzati in Ubuntu/Debian:come, quando e perché

  2. Come installare e utilizzare Debian Backports

  3. Come installare e utilizzare Ansible su Debian 11

  4. Come installare e proteggere MariaDB su Debian 11

  5. Come installare Node.js e npm su Debian 11

Come installare Icinga 2 e Icinga Web 2 su Debian 9

Come installare gli header del kernel su Debian

Come trovare e modificare l'indirizzo IP su Debian

Come eseguire il dual boot di Antergos Linux e Windows UEFI

Come installare l'ultimo kernel su Debian 11 e derivati

Come installare Linux Kernel 5.15 su Debian 11