web-dev-qa-db-fra.com

Est-ce qu'un Hybrid Linux USB-Stick pour UEFI et le BIOS HEUGACY?

mon idée est de créer un bâton USB-Boot avec Lubuntu qui est capable de démarrer sur un ordinateur portable plus ancien et de nouveaux systèmes UEFI.

Ce serait assez facile, lorsque le bâton serait configuré comme un périphérique de démarrage Legacy, mais je veux que ce soit un appareil UEFI-capable.

  1. Est-ce que cela fait un sens même ?! Ou avez-je compris le concept UEFI Horrobly faux?
  2. Si nécessaire, il peut y avoir deux installations de Linux différentes (une pour UEFI, une pour legacy mais sur le même lecteur)
  3. Démarrer un périphérique GPT sur le BIOS hérité - cela fonctionnera-t-il?

Je ne peux pas voir clairement, ce n'est peut-être qu'une meilleure idée d'avoir un bâton de démarrage Linux hérité séparé, mais je suis curieux d'explorer les limites :)

Donc, mon idée d'un hybride Linux-Uefi-Boot-Stick-USB-Hoottic fonctionnerait avec le bios héritage possible?


(3) semble être possible pour Linux avec grub http://www.rodsbooks.com/gdisk/booting.html

De plus, j'ai une partition EF00 prête sur ce bâton, à part un échange, FAT32 et deux partitions ext4.


(1) semble aussi être possible http://www.rodsbooks.com/bios2uefi/

Ces instructions sont toutefois à partir de 2012, quelque temps passé depuis - Est-ce que quelqu'un a un exemple de travail qui est plus facile?


Pour les autres chercheurs de ce sujet:

Botte de Windows 7 du disque GPT sur la carte mère non EFIY a-t-il un moyen de démarrer Windows 7/8 à l'aide du BIOS sur GPT?

http://www.borborncity.com/blog/2012/07/25/uefi-emulation-auf-pcs/


Mise à jour:

J'ai réussi à créer la partie UEFI inlcutant la configuration de démarrage sécurisée avec Refind.

Suite à l'avis donné, j'ai utilisé dd pour copier gptmbr.bin à mon lecteur, qui semble maintenant faire au moins quelque chose sur un système bios-system: "Ce n'est pas un disque amorçable"

Cependant, j'ai suivi les conseils et définir le drapeau pmbr pour le disque et le GPT legacy boot Flag - toujours gettin cette erreur, des idées?

My ESP partition est la deuxième partition sur le disque et est configurée avec les fichiers EFI.

la configuration:

  • 64 Go d'espace
  • GPT partitiontable
  • Le disque a un jeu de drapeau PMBR
  • La 1ère partition commence à 16MIB et est d'environ 45 Go, un primaire FAT32 pour les données
  • 2ème partition commence autour de 45 Go et est le système EFI (FAT32) avec une configuration de record de travail
  • 3ème - 5ème partition est à la maison (ext4), échange et root (ext4) de mon travail de travail 14.04.1

En utilisant dd j'ai copié le gptmbr.bin de ma compilée 6,02 syslinux aux premières 440bytes.

Sous séparé 3.2, je peux voir que ma partition 2 a un boot et legacy_boot drapeau.

Pendant le démarrage, je get Pas de disque amorçable trouvé - Si je fixe mon 5ème au lieu de la 2e partition pour être legacy_boot I get OS manquant

C'est vivant!

(Comme ma vieille question a été supprimée https://askabuntu.com/q/516730/319747 )


Je suppose que je dois copier une partie de la *.c32 et autres fichiers à A syslinux Dossier inquiet sur mon EFI (où ?!) ou sur ma partition racine (/boot/syslinux ?!) Pour le faire travailler - ai-je raison? Quels fichiers sont essentiels?

En outre, je suppose que j'aurai besoin de ça syslinucx.cfg Fichier aussi - Droite?


Mon objectif serait au moins un démarrage direct du système Lubuntu sur la partition Root Ext4.

Mise à jour:

Bien que je n'ai aucune idée de pourquoi, je l'ai eu du travail - mais pas avec une installation manuelle.

  • le drapeau pmbr était mauvais et interdit mon système UEFI de démarrer le bâton comme UEFI
  • les legacy_boot Le drapeau était nécessaire pour ma 5ème partition (racine Linux)
  • J'ai dû utiliser extlinux --install /path/to/root/parition
  • J'ai dû créer un syslinux.cfg Dans le dossier SysLinux sous Boot de ma partition racine

J'ai fait tout cela sur un deuxième petit bâton, puis essayé de copier uniquement le dossier Syslinux, mais n'avait pas de chance - le extlinux --install semble être obligatoire.

Tout le monde sait quoi exactement extlinux --install Est-ce que? Peut-il être fait manuellement ou comment pouvez-vous installer une version plus récente comme 6.02 sans l'installer sur votre système?

J'ai monté mon bâton avec les partitions mentionnées sur le BIOS, l'UEFI et l'UEFI Secureboot, l'enfer d'une promenade, ont beaucoup appris, a presque tué 2 To avec séparé, soyez prudent et bonne chance.

14
Jook

C'est possible, et c'est très fréquemment fait avec des bâtons USB externes et des lecteurs internes.

En ce qui concerne les types de table de partition:

  • BIOS Normalement, NON a besoin Toute table de partition. Il n'est intéressé que par le code bootstrap , qui est le premier 440 octets de votre MBR. (Bien qu'il y ait des exceptions. Certaines implémentations du BIOS se cassent réellement s'ils ne trouvent pas de MBR avec l'un des types de partition habituels. Espérons que ce sont rares.)

    La table de partition GPT ne physiquement remplace un MBR - il commence toujours au secteur 1, tandis que le MBR est dans le secteur 0 - il est donc possible pour un disque pour avoir les deux. En fait, la plupart des disques GPT font ont une "MBR de protection" contenant une seule partition qui couvre l'ensemble du disque, afin d'éviter les anciens outils de partitionnement MBR-Seuls de détruire accidentellement les données.

    Vous pouvez donc installer, par exemple, le secteur de la démarrage SysLinux dans votre MBR, et cela démarrera. (Le syslinux-install_update script le fera pour vous, mais vous pouvez rechercher gptmbr.bin Dans votre paquet SysLinux pour le faire manuellement.)

    Tout comme le drapeau "actif" sur les partitions de MBR, SysLinux recherchera le drapeau "Legacy BIOS bootable" sur les partitions GPT (Bit 2 - UEFI Spec 2.4 Section 5.3.3 Tableau 20); Le script susmentionné définit également ce drapeau automatiquement si vous avez sgdisk (à partir de gptfdisk) installé.

    Grub peut également être utilisé, mais c'est aussi un peu plus gênant. Depuis GRUB 2 souhaite "incorporer" des parties de lui-même dans les secteurs traditionnellement inutilisés 1 à 62, il écraserait une GPT qui est stockée au même endroit. Vous pourriez donc avoir besoin de créer un dédié partition de 2-4 Mo et marquez-la comme bios-bootable, de sorte que grub-install se trouverait une place d'intégration.

  • D'autre part, la spécification UEFI nécessite une prise en charge des types de partitions MBR (section 12.3.1) et attribuer le type de partition MBR 0xEF à la partition système EFI (section 5.2.2).

    Donc, si vous ne pouvez pas faire fonctionner votre disque avec GPT, vous pouvez toujours créer une partition système EFI sur MBR, et elle sera utilisée aussi longtemps qu'elle dispose du système de fichiers correct et de tous les fichiers nécessaires (section 12.3.1.3):

    Pour les périphériques multimédias amovibles, une seule partition système compatible UEFI et cette partition doit contenir un répertoire défini par UEFI dans le répertoire racine. Le répertoire sera nommé EFI. Tous les chargeurs et applications OS seront stockés dans un sous-répertoire inférieur EFI appelé BOOT. Il ne doit y avoir qu'une seule image EFI exécutable pour chaque architecture de processeur prise en charge dans le répertoire BOOT. Pour que les supports amovibles soient amorçants sous EFI, il doit être construit conformément aux règles énoncées à la section 3.4.1.1.

En ce qui concerne les systèmes d'exploitation, Linux ne se soucie généralement pas du moindre peu de savoir s'il est démarré de BIOS aujourd'hui et de UEFI demain. J'ai dû redémarrer mon ordinateur portable du mode UEFI en mode "Compatibilité BIOS" et en arrière peut-être cent fois cette semaine, tout en essayant de trouver un bogue dans le support 3.17 UEFI ...


Notez que l'article "BIOS à la transformation de l'UEFI" concerne une chose très différente. Il décrit comment installer UEFI elle-même - une implémentation UEFI appelée "duo" - à démarrer à partir d'un système uniquement du BIOS. Il n'a rien à voir avec le démarrage d'un système d'exploitation directement auprès du BIOS.

11
user1686

Oui, c'est possible.

L'idée de base est de partition GPT votre clé USB comme ceci:

  1. Partition BIOS Boot (type GPT 1686148-6449-6E6F-744E-656564454649) - 1 MIB, aucun système de fichiers
  2. Partition système EFI (type GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B) - 200 MIB, système de fichiers VFAT
  3. Partition de démarrage Linux (type GPT 0FC63DAF-8483-4772-8E79-3D69D8477DE4) - 1 gib, système de fichiers ext4
  4. Système de fichiers racine/maison Linux (type GPT 0FC63DAF-8483-4772-8E79-3D69D8477DE4) - Space restant, système de fichiers XFS ou BTRFS

Cette partitionnement nous permet de démarrer sur Systèmes hérités car avec GPT, il y a toujours de l'espace pour un MBR (pour des raisons de compatibilité à l'envers) et Grub2 a suffisamment d'espace pour installer une étape centrale dans la partition de démarrage du BIOS. Les bioses hérités ne se soucient pas du schéma de partitionnement et du noyau Grub2/Linux n'ont aucun problème à comprendre le GPT sur les systèmes hérités.

Sur - Systèmes UEFI , le micrologiciel UEFI ignore le MBR et utilise la partition système EFI comme point d'entrée.

Par exemple, avec Fedora, vous devez essentiellement procéder comme suit:

Assurez-vous que le système de fichiers de démarrage Linux est monté sous /boot et ce système de fichiers de partition système EFI est monté sous /boot/efi.

(Re) Installez les chargeuses de démarrage Legacy et UEFI:

grub2-pc grub2-efi-x64 shim-x64 efibootmgr

(RE) Générez les fichiers de configuration de GRUB à la fois pour le thème Legacy et UEFI:

# grub2-mkconfig -o /boot/efi/EFI/Fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg

Selon si votre système démarré dans le mode héritage ou UEFI, vous devez corriger le premier ou le second fichier et remplacer (linux|initrd)16 avec (linux|initrd)efi ou l'inverse.

Installez Grub dans le MBR:

# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device

Voila.

2
maxschlepzig