Créer une clé USB bootable (UEFI GRUB) pour Ubuntu et Windows 7

12

Je veux créer un EFI USB amorçable pour installer Ubuntu et Windows 7 (peut-être avec des utilitaires comme PartedMagic ). J'ai fait cela en utilisant MultiSystem auparavant. Cependant, j'utilise GPT et l'installation de Windows doit être lancée en mode EFI pour être installée sur le système GPT. Je suppose que je dois utiliser GRUB EFI à la place? S'il n'y a pas d'application comme MultiSystem qui crée un USB de démarrage GRUB EFI, comment puis-je en créer un moi-même?

Je suppose que je vais formater mon USB en GPT et y installer GRUB EFI (comment?). Ensuite, je dois configurer GRUB EFI pour charger l'installation d'Ubuntu et de Windows 7 dans EFI? Comment puis-je faire cela?

MISE À JOUR

Voici ce que j'ai essayé

  • Créer 2 partitions sur mon USB (GPT, 100 + Mo FAT32 (/ dev / sdc1, définir l'indicateur de démarrage), Le reste FAT32, / dev / sdc2, pour les installations)
  • Extraire les iso de Windows 7 et Ubuntu 11.10 dans la partition d'installation, 2 dossiers différents
  • sudo elilo -b /dev/sdc1Testé avec --autoconf --efiboot -v`

jiewmeng@JM:~$ sudo elilo -b /dev/sdc1 --autoconf --efiboot -v
elilo: backing up existing /etc/elilo.conf as /etc/elilo.conf-
Loaded efivars kernel module to enable use of efibootmgr
elilo: Checking filesystem on /dev/sdc1...
elilo: Mounting /dev/sdc1...
e    lilo: 44298KB needed, 78781KB free, 42192KB to reuse
elilo: Installing primary bootstrap /usr/lib/elilo/elilo.efi onto /dev/sdc1...
elilo: Installing /tmp/elilo.k8NWXX on /dev/sdc1...
elilo: Installing /vmlinuz on /dev/sdc1...
elilo: Installing /vmlinuz.old on /dev/sdc1...
elilo: Installing /initrd.img on /dev/sdc1...
elilo: Installing /initrd.img.old on /dev/sdc1...
elilo: Updating EFI boot-device variable...
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
elilo: An error occured while updating boot menu, we'll ignore it
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
elilo: Installation complete.

Je n'ai sudo modprobe efivarspas eu de sortie mais j'ai la même erreur, je pense que c'est parce que je ne suis pas connecté à EFI Ubuntu?

Ensuite, je vais essayer d'utiliser USB Startup Disk Creator pour démarrer dans un système actif en mode EFI pour réessayer

MISE À JOUR

Je suis tellement perdu, Windows est-il installé en premier? J'ai formaté et créé une clé USB amorçable pour Ubuntu Alternate avec UNetBootIn, et il a également échoué avec la même erreur d'absence de noyau. Si j'ai créé un bureau Ubuntu, je ne pourrai pas configurer les sources apt

Le syslog pour l'installation du bureau ubuntu http://pastebin.com/CdbUPXax

Je pense que je ferais mieux de ne pas perdre de temps et de revenir bientôt au MBR ... cela signifie que je dois en quelque sorte sauvegarder toutes mes données en premier ... c'est pourquoi je les retarde au dernier recours ... des idées?

MISE À JOUR

J'ai essayé de démarrer Ubuntu 11.10 Alternate en mode BIOS (non-EFI), installé correctement sauf que je ne peux pas installer un chargeur de démarrage. Il indique une erreur fatale. J'ai ensuite installé GRUB en démarrant l'USB en mode de récupération. Fonctionne mais ne démarre pas. Donne un écran vide au démarrage. Si j'essaie d'entrer en mode de récupération (sur le disque dur, où ubuntu est installé), le clavier semble échouer, la souris a cependant la lumière.

Jiew Meng
la source
Avez-vous examiné cela? unetbootin.sourceforge.net
Dustin L.
Easy2Boot peut être ce que vous voulez.
SteveSi
Les réponses sont meilleures lorsqu'elles sont plus qu'un simple lien ou référence à une solution potentielle. Les réponses qui montrent comment faire quelque chose ou à tout le moins décrire l'approche générale sont ce que nous recherchons ici.
slm

Réponses:

8

Je travaille sur une mise à jour de cette question / réponse.
Cela ne fonctionne pas sans erreurs, mais en travaillant avec @jiewmeng, j'ai découvert que l'objectif était d'utiliser une clé USB pour installer à la fois Windows et Ubuntu sur un seul disque dur, UEFI.
Cela a pris du temps et j'ai trouvé la solution, mais nous devons nettoyer la question et la réponse.
On peut peut-être aussi répondre à la question d'origine, mais comme l'objectif était plus du côté de l'installation, le USB UEFI à démarrage unique semblait moins important.
J'utilise actuellement deux clés USB, une pour Windows, une pour Ubuntu.
Ceci est un WIP à mettre à jour dès que possible

Je travaille sur cela depuis quelques jours, une heure de libre ici et là et j'ai enfin un seul USB, qui va démarrer et offrir l'installation de Windows 7 et Ubuntu.
Ma configuration est spécifique à 64 bits, vous pouvez essayer de changer pour accueillir un intall 32 bits mais il existe de nombreuses différences dans les noms de fichiers. Veuillez suivre si vous avez besoin de 32 bits. Cela dit...

Vous ne pouvez pas installer Windows 7 à partir d'une clé USB au format GPT.
Vous pouvez utiliser gdisk, ou se séparèrent, et créer un USB TPG, qui va démarrer via UEFI.
Vous pourrez configurer le gestionnaire de démarrage UEFI pour charger le programme d'installation Windows à partir de l'USB, mais le programme d'installation recherchera les fichiers et les données nécessaires pour effectuer l'installation et ne reconnaîtra pas le GPT USB, tandis qu'il trouvera un MBR USB .

Cependant, cela n'a que peu de conséquence car UEFI examine le MBR / GPT et la partition EFI, voir l'entrée Wikipedia sur le démarrage UEFI

Malgré l'utilisation d'un MBR standard pour l'USB, on peut installer via UEFI sur un disque GPT.

Les éléments suivants ont fonctionné à l'aide d'installations 64 bits, sur UEFI Asus Sabertooth 64 bits.
Le firmware de chaque carte mère est très spécifique et chaque firmware UEFI de la carte mère recherche le démarrage UEFI différemment. Vous pouvez avoir des problèmes avec votre carte mère pour trouver les données de démarrage, mais ce qui suit fonctionne sur mon ASUS.

Voici comment j'ai créé une clé USB amorçable avec une copie installable du DVD Windows 7 64 bits et une ISO Ubuntu (dans cet exemple, l'iso de bureau 11,10 64 bits).

À l'aide d'un USB 16G, c'est tout ce que j'avais à portée de main ...
mon USB installé en tant que / dev / sdc, modifiez les références pertinentes pour le périphérique approprié pour votre USB.
Assurez-vous que 7zip est installé.

fdisk /dev/sdc
create new MBR, 'o' command
create new partition, part 1, size 8G, type ef, set bootable, write
mkfs.vfat -F32 /dev/sdc1
mkdir /mnt/USB
mount /dev/sdc1 /mnt/USB
insert Windows 7 x64 DVD, again, mine appeared as /media/UDF\ Volume, you need to change references below
# Extract/Copy the entire Windows DVD to the USB
cp -r /media/UDF\ Volume/* /mnt/USB
# I don't know what effect the following rename has, I copied blindly from another webpage.
mv /mnt/USB/sources/ei.cfg /mnt/USB/sources/ei.cfg_
cd /mnt/USB/efi/microsoft/boot/
7z e /mnt/USB/sources/install.wim 1/Windows/Boot/EFI/bootmgfw.efi
cp -r /mnt/USB/efi/microsoft/boot /mnt/USB/efi/
mv /mnt/USB/efi/boot/bootmgfw.efi /mnt/USB/efi/boot/bootx64.efi
# At this point I booted the USB, and installed Windows 7 to a GPT SSD
# Upon reboot I noticed the Windows Boot loader in my UEFI boot list (actually it made itself 1st).
# so, here we have a standalone Windows7 UEFI installer that will function correctly (64bit ASUS, at least).
# Now, on to adding Ubuntu
cd /mnt/USB
7z x /path2iso/ubuntu-11.10-desktop-amd64.iso
# If 7z finds prexisting files with the same name, just allow always overwrite
# (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? A

# At this point I booted the USB, and installed Ubuntu x64 to a GPT SSD
# we have a standalone Ubuntu 64bit installer that install Ubuntu 64

# Now, on to add a boot manager that will allow us to select between Windows 7 and Ubuntu

# Get the target UUID of the USB partition, using either blkid or the following command
grub-probe --target=fs_uuid /mnt/USB/efi/Microsoft/Boot/bootmgfw.efi  
will print YOUR_UUID # Substitute into the following references to YOUR_UUID

# Append the following menuentry to /mnt/USB/boot/grub/x86_64-efi/grub.cfg

menuentry "Microsoft Windows x86_64 UEFI-GPT Setup" {
    insmod usbms  
    insmod part_gpt  
    insmod part_msdos  
    insmod fat  
    insmod search_fs_uuid  
    insmod chain  
    search --fs-uuid --no-floppy --set=root YOUR_UUID # <- CHANGE THIS TO YOUR UUID
    chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi  
}

Et le tour est joué! Une clé USB qui utilise grub comme gestionnaire de démarrage, permettant l'installation sur des disques GPT avec l'installation UEFI.

Si vous avez une erreur, n'hésitez pas à m'envoyer un message, et je vais l'examiner.

bsd
la source
J'ai réussi à démarrer dans le programme d'installation de Windows au point « À ce stade, j'ai démarré l'USB et installé Windows 7 ». Cependant, lorsque j'essaie, grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78j'obtiens "Argument supplémentaire inconnu` 4983-DA78 '. "
Jiew Meng
L'exécution de grub-probe fournit l'uuid à utiliser. Il doit ensuite être remplacé dans le texte suivant.
bsd
la commande est uniquement grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi No args. La valeur '4983-DA78' est votre UUID renvoyé par grub-probe, à utiliser dans le texte suivant comme YOUR_UUID
bsd
windows installé bien mais quand j'ai essayé ubuntu ça dit pas de noyau, des idées?
Jiew Meng
Avez-vous installé Ubuntu sur une machine sur laquelle Windows 7 était déjà installé via la clé USB UEFI?
bsd
3

Je ferai de mon mieux pour répondre à la question, j'espère que je vous guiderai dans la bonne direction.

Comme vous le savez déjà, l'installation de Win7 x64 à partir de GPT n'est possible qu'à partir d'EFI. Pire encore, vous ne pouvez utiliser aucun hybride, car Win7 x64 traite tout disque hybride comme un MBR hérité. Vous devez donc renommer / repartitionner votre clé USB en GPT. Ce type de configuration n'est pas préférable pour une clé USB, compte tenu des problèmes de portabilité. Je ne dis pas de ne pas en faire un, je ne m'attendrais pas à ce qu'il existe un outil automatisé. En fait, je pense que vous pourrez peut-être utiliser plusieurs systèmes, après avoir formaté votre disque. Si le Grub2 installé automatiquement ne prend pas en charge EFI / GPT, remplacez-le par la version correcte de Grub2.

Je suppose donc que vous devrez peut-être effectuer une partie de l'installation manuellement, ce qui, dans son intégralité, dépasse le cadre de cette réponse. Bien que je devrais pouvoir vous aider à démarrer ...

À l'aide d'une version actuelle de parted, renommer votre lecteur avec GPT. En supposant que le disque se trouve dans / dev / sdc,

 parted -s /dev/sdc mklabel gpt

Maintenant, vous devez partitionner le disque, de préférence une clé USB doit être un seul primaire. Je vais toujours avec FAT32, pour mes USB bootables.

parted -s /dev/sdc mkpart primary fat32 0 -1

parted mkpartne crée pas le FS, comme le mkpartfsferait. Le partedDOC recommande d'utiliser le support approprié mkfs, par opposition au partedsupport intégré.

mkfs.vfat /dev/sdc1

Votre lecteur est maintenant prêt à gérer les données. À ce stade, j'espère que vous pourrez utiliser le multisystème pour configurer votre lecteur.

Une fois que vous avez terminé avec tout cela ... Nous devons configurer Grub2, évidemment nous avons l'intention de garder la configuration. Multisystem peut avoir la possibilité de démarrer à partir d'EFI, mais vous devrez quand même jouer avec la configuration du module.

La configuration Grub2 est situé à, boot/grub/grub.cfg. Vous devriez voir certains modules commentés. J'en ai vu un concernant le GPT, mais je ne suis pas sûr d'EFI. Je voudrais regarder et faire quelques tests, pensez à lire certains des documents Grub2.

Si vous avez encore des problèmes, commentez en retour avec des questions de suivi.

JM Becker
la source
2

Commencez par la réponse de bdowning ci-dessus, puis continuez ici pour ajouter Parted Magic.

Il existe deux façons de procéder, mais la plus simple consiste à copier le répertoire pmagic de l'ISO Parted Magic vers la racine de votre disque USB, puis à y ajouter une entrée de menu:

menuentry "Parted Magic" --class gnu-linux --class gnu --class os {
  linux /pmagic/bzImage
  initrd /pmagic/initrd.img
}

(Vous devrez peut-être lire le manuel de grub2 pour le faire fonctionner correctement; j'ai utilisé grub1 lorsque je l'ai fait l'autre jour, et les fichiers de configuration sont différents.)

L'inconvénient ici est que vous mélangez des fichiers pour Windows, Ubuntu et maintenant Parted Magic dans un seul système de fichiers. Pire, nous les avons placés directement dans la partition système EFI. Cela fonctionne, mais bien sûr, cela pourrait ne pas fonctionner pour toutes les combinaisons de systèmes d'exploitation, donc ce que nous devons vraiment faire est de créer une partition distincte sur le lecteur pour chaque système d'exploitation. Pour ce faire, il faut dire à grub de rechercher le bon système de fichiers, ce qu'il peut faire par guid. Chaque système de fichiers reçoit un guid unique lors de sa création, vous devrez donc utiliser grub-probe (ou des outils similaires) pour trouver ce guid. Vous le collez ensuite dans une commande de recherche dans votre configuration grub:

menuentry "Parted Magic" --class gnu-linux --class gnu --class os {
    search --no-floppy --fs-uuid --set 8d2acb74-5216-4696-90a8-c76f92d5e4ee
    linux /pmagic/bzImage
    initrd /pmagic/initrd.img
}

J'espère que cela t'aides.

db48x
la source
Le multiboot fonctionnera, mais dans la réponse de bdowning, lorsque j'essaie d'installer Ubuntu, je reçois le noyau non disponible (alternatif) ou je ne peux pas configurer les erreurs apt (bureau) (voir la publication et les commentaires de bdowning), des idées sur la façon de résoudre ce problème? Nous discutons également @ chat.stackexchange.com/rooms/info/2240/…
Jiew Meng
2

Dans les machines non UEFI, nous pouvons utiliser GRUB2 pour rendre la clé USB amorçable. Ensuite, nous pouvons utiliser la commande 'ntldr' dans le GRUB2 pour démarrer Windows à partir d'USB.

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

Voir la réponse complète sur mon blog Création d'un Windows bootable USB à partir de Linux

harish2704
la source
1
Bien que ce lien puisse répondre à la question, il est préférable d'inclure une description plus détaillée de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir presque inutiles si votre lien tombe en panne.
G-Man dit `` Réintègre Monica '' le
1

Pourquoi s'embêter avec GRUB2? Cela complique simplement les choses. Utilisez simplement la méthode EFI STUB pour démarrer le noyau Linux à partir de l'ESP en ajoutant un shell UEFI dans l'ESP.

fpmurphy
la source
Bon à savoir. Dans mon cas spécifique (ancien macbook pro), cela ne fonctionne pas, car Apple a renommé cette merde propriétaire en "EFI" et dit que son chargeur de démarrage est un EFI. Mais en fait, il s'agit d'un chargeur de démarrage personnalisé non documenté, buggé, capable de démarrer uniquement osx et windows. Ainsi, j'ai installé LILO dans l'une des partitions et mentir à ce chargeur de démarrage qu'il s'agit d'une fenêtre. Donc ça marche. Ainsi, "EFI" démarre LILO en mode d'émulation BIOS et LILO démarre le noyau.
peterh