Erstellen Sie ein bootfähiges (UEFI GRUB) USB für die Installation von Ubuntu und Windows 7

12

Ich möchte ein bootfähiges EFI USB erstellen, um Ubuntu und Windows 7 zu installieren (möglicherweise mit Dienstprogrammen wie PartedMagic ). Das habe ich vorher mit MultiSystem gemacht . Ich verwende jedoch GPT und die Windows-Installation muss im EFI-Modus gestartet werden, um sie auf einem GPT-System zu installieren. Ich muss wohl stattdessen GRUB EFI verwenden. Wenn es keine App wie MultiSystem gibt, die einen bootfähigen GRUB EFI-USB-Stick erstellt, wie kann ich dann selbst eine erstellen?

Ich nehme an, ich werde mein USB als GPT formatieren und GRUB EFI darauf installieren (wie?). Muss ich dann GRUB EFI konfigurieren, um die Installation von Ubuntu und Windows 7 in EFI zu laden? Wie kann ich das machen?

AKTUALISIEREN

Folgendes habe ich versucht

  • Erstelle 2 Partitionen auf meinem USB (GPT, 100 + MB FAT32 (/ dev / sdc1, setze Boot-Flag), der Rest FAT32, / dev / sdc2, für Installationen)
  • Extrahieren Sie Windows 7 & Ubuntu 11.10 in die Installer-Partition, 2 verschiedene Ordner
  • Versucht mit sudo elilo -b /dev/sdc1--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.

Habe sudo modprobe efivarskeine Ausgabe aber den gleichen Fehler bekommen, ich denke es liegt daran, dass ich nicht in EFI Ubuntu eingebunden bin?

Als Nächstes werde ich versuchen, mit USB Startup Disk Creator ein Live-System im EFI-Modus zu starten, um es erneut zu versuchen

AKTUALISIEREN

Ich bin so verloren, ist Windows 1. der Fehler installiert? Ich habe ein bootfähiges USB für Ubuntu Alternate mit UNetBootIn formatiert und erstellt, und es ist ebenfalls fehlgeschlagen, da kein Kernel verfügbar war. Wenn ich einen Ubuntu-Desktop erstellt habe, kann ich keine passenden Quellen konfigurieren

Das Syslog für Ubuntu Desktop installiert http://pastebin.com/CdbUPXax

Ich habe das Gefühl, ich sollte keine Zeit verschwenden und bald wieder zu MBR zurückkehren. Das bedeutet, dass ich irgendwie alle meine Daten sichern muss.

AKTUALISIEREN

Ich habe versucht, Ubuntu 11.10 Alternate im BIOS-Modus (Non-EFI) zu starten. Die Installation funktioniert einwandfrei, es sei denn, ich kann keinen Bootloader installieren. Es heißt schwerwiegender Fehler. Ich habe dann GRUB installiert, indem ich den USB im Wiederherstellungsmodus gebootet habe. Funktioniert aber bootet nicht. Gibt einen leeren Bildschirm beim Booten. Wenn ich versuche, in den Wiederherstellungsmodus zu wechseln (auf der Festplatte, auf der Ubuntu installiert ist), scheint die Tastatur nicht zu funktionieren, die Maus leuchtet jedoch.

Jiew Meng
quelle
Hast du das untersucht? unetbootin.sourceforge.net
Dustin L.
Easy2Boot kann das sein, was Sie wollen.
SteveSi
Antworten sind am besten, wenn sie mehr sind als nur ein Link oder ein Verweis auf eine mögliche Lösung. Antworten, die zeigen, wie man etwas macht oder zumindest die allgemeine Herangehensweise beschreibt, sind das, was wir hier suchen.
slm

Antworten:

8

Ich arbeite an einem Update dieser Frage / Antwort.
Dies funktioniert nicht ohne Fehler, aber als ich mit @jiewmeng arbeitete, stellte ich fest, dass das Ziel darin bestand, Windows und Ubuntu über USB auf einer Festplatte, UEFI, zu installieren.
Es hat eine Weile gedauert und ich habe die Lösung gefunden, aber wir müssen die Frage und Antwort bereinigen.
Vielleicht kann die ursprüngliche Frage auch beantwortet werden, aber da das Ziel mehr auf der Installationsseite lag, schien das Single-Boot-UEFI-USB weniger wichtig zu sein.
Ich verwende derzeit zwei USB-Sticks, einen für Windows und einen für Ubuntu.
Dies ist ein WIP, der so schnell wie möglich aktualisiert werden soll

Ich arbeite seit ein paar Tagen daran, habe hier und da eine freie Stunde und habe endlich einen einzigen USB, der bootet und die Installation von Windows 7 und Ubuntu anbietet.
Meine Konfiguration ist 64-Bit-spezifisch. Sie können versuchen, eine 32-Bit-Version zu ändern, aber es gibt viele Unterschiede bei den Dateinamen. Bitte setzen Sie sich mit uns in Verbindung, wenn Sie 32-Bit benötigen. Das gesagt...

Sie können Windows 7 nicht von einem mit GPT formatierten USB-Gerät installieren.
Sie können gdisk oder parted verwenden und ein GPT-USB erstellen, das über UEFI gestartet wird .
Sie können den UEFI-Boot-Manager so konfigurieren, dass der Windows-Installer vom USB geladen wird. Der Installer sucht jedoch nach Dateien und Daten, die für die Installation erforderlich sind, und erkennt den GPT-USB nicht, während er einen MBR-USB findet .

Dies ist jedoch von geringer Bedeutung, da UEFI den MBR / GPT und die EFI-Partition betrachtet (siehe Wikipedia-Eintrag zum UEFI-Booten)

Trotz der Verwendung eines Standard-MBR für den USB kann eine Installation über UEFI auf einer GPT-Festplatte erfolgen.

Das Folgende funktionierte mit 64-Bit-Installationen auf 64-Bit-UEFI-Asus-Sabertooth.
Die Firmware auf jedem Motherboard ist sehr spezifisch und die UEFI-Firmware jedes Motherboards sucht nach einem UEFI-Start auf unterschiedliche Weise. Möglicherweise haben Sie Probleme mit dem Auffinden von Startdaten auf Ihrem Motherboard, aber auf meinem ASUS funktioniert Folgendes.

Hier ist, wie ich einen bootfähigen USB mit einer installierbaren Kopie der Windows 7 64-Bit-DVD und einer Ubuntu-ISO erstellt habe (in diesem Beispiel die 11.10 64-Bit-Desktop-ISO).

Ändern Sie mithilfe eines 16G-USB, das alles ist, was ich zur Hand hatte ...
mein USB wurde als / dev / sdc installiert, die relevanten Verweise auf das entsprechende Gerät für Ihren USB.
Stellen Sie sicher, dass 7zip installiert ist.

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  
}

Und voila! Ein funktionierender USB-Stick, der grub als Boot-Manager verwendet und die Installation auf GPT-Datenträgern mit UEFI-Installation ermöglicht.

Wenn Sie Fehler haben, zögern Sie nicht, mir eine Nachricht zu senden, und ich werde mich darum kümmern.

bsd
quelle
Ich boote erfolgreich in Windows Installer an dem Punkt " An diesem Punkt habe ich den USB gebootet und Windows 7 installiert ". Beim Versuch grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78erhalte ich jedoch "Unbekanntes zusätzliches Argument" 4983-DA78 ".
Jiew Meng
Running Grub-Probe liefert die zu verwendende UUID. Es ist dann im folgenden Text zu ersetzen.
bsd
Der Befehl lautet nur grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi Keine Argumente. Der Wert '4983-DA78' ist Ihre UUID, die von grub-probe zurückgegeben wird, damit Sie sie im folgenden Text als YOUR_UUID
bsd
installierte Windows in Ordnung, aber als ich Ubuntu ausprobierte, sagt es kein Kernel, irgendwelche Ideen?
Jiew Meng
Haben Sie Ubuntu auf einem Computer installiert, auf dem Windows 7 bereits über den UEFI-USB-Stick installiert war?
bsd
3

Ich werde mein Bestes tun, um die Frage zu beantworten. Hoffentlich werde ich Sie in die richtige Richtung bringen.

Wie Sie bereits wissen, ist die Installation von Win7 x64 über GPT nur über EFI möglich. Schlimmer noch, Sie haben die Verwendung eines Hybrids verhindert, da Win7 x64 jede Hybrid-Festplatte als älteren MBR behandelt. Sie müssen Ihren USB-Stick also als GPT neu kennzeichnen / partitionieren. Diese Art der Einrichtung ist aus Gründen der Portabilität für USB-Geräte nicht empfehlenswert. Ich sage nicht, mache keine, ich würde einfach nicht erwarten, dass es ein automatisiertes Tool gibt. Ich glaube tatsächlich, dass Sie Multisystem verwenden können, nachdem Sie Ihr Laufwerk formatiert haben. Wenn das automatisch installierte Grub2 keine EFI / GPT-Unterstützung bietet, überschreiben Sie es mit der richtigen Version von Grub2.

Daher würde ich davon ausgehen, dass Sie möglicherweise einen Teil der Installation manuell ausführen müssen, was in seiner Gesamtheit den Rahmen dieser Antwort sprengt. Obwohl ich in der Lage sein sollte, Sie in Gang zu bringen ....

partedBenennen Sie Ihr Laufwerk mit einer aktuellen Version von mit GPT neu. Angenommen, die Festplatte befindet sich unter / dev / sdc.

 parted -s /dev/sdc mklabel gpt

Jetzt müssen Sie das Laufwerk partitionieren, vorzugsweise sollte ein USB eine einzelne primäre sein. Ich gehe immer mit FAT32, für meine bootfähigen USBs.

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

parted mkpartschafft die FS nicht, wie mkpartfsmöchte. Das partedDOC empfiehlt die Verwendung der richtigen mkfs, im Gegensatz zur partedeingebauten Unterstützung.

mkfs.vfat /dev/sdc1

Ihr Laufwerk ist jetzt bereit, die Daten zu verarbeiten. An dieser Stelle hoffe ich, dass Sie das Multisystem verwenden können, um Ihr Laufwerk einzurichten.

Sobald du mit all dem fertig bist ... Wir müssen Grub2 einrichten, offensichtlich beabsichtigen wir, die Konfiguration beizubehalten. Multisystem hat möglicherweise die Möglichkeit, von EFI zu booten, aber Sie müssen sich trotzdem mit der Modulkonfiguration herumschlagen.

Die Grub2 Konfiguration befindet sich an, boot/grub/grub.cfg. Einige der Module sollten auskommentiert sein. Ich habe einen über GPT gesehen, bin mir aber nicht sicher, was EFI angeht. Ich würde nachsehen und ein paar Tests durchführen. Lesen Sie einige der Grub2-Dokumente.

Wenn Sie immer noch Probleme haben, antworten Sie mit weiteren Fragen.

JM Becker
quelle
2

Beginnen Sie mit der obigen Antwort von bdowning und fahren Sie hier fort, um Parted Magic hinzuzufügen.

Es gibt verschiedene Möglichkeiten, dies zu tun. Am einfachsten ist es jedoch, das pmagic-Verzeichnis von der Parted Magic-ISO in das Stammverzeichnis Ihrer USB-Festplatte zu kopieren und anschließend einen Menüeintrag hinzuzufügen:

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

(Möglicherweise müssen Sie das Handbuch zu grub2 lesen, damit es vollständig funktioniert. Ich habe grub1 verwendet, als ich dies neulich getan habe, und die Konfigurationsdateien sind unterschiedlich.)

Der Nachteil dabei ist, dass Sie Dateien für Windows, Ubuntu und jetzt Parted Magic in einem einzigen Dateisystem mischen. Schlimmer noch, wir haben sie direkt in die EFI-Systempartition eingefügt. Es funktioniert, aber natürlich funktioniert es möglicherweise nicht für jede Kombination von Betriebssystemen. Wir sollten also wirklich für jedes Betriebssystem eine separate Partition auf dem Laufwerk erstellen. Um dies zu tun, muss grub angewiesen werden, nach dem richtigen Dateisystem zu suchen, was mit guid möglich ist. Jedes Dateisystem erhält bei der Erstellung eine eindeutige Guid. Sie müssen daher grub-probe (oder ähnliche Tools) verwenden, um diese Guid zu finden. Dann steckst du es in einen Suchbefehl in deiner Grub-Konfiguration:

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
}

Hoffe das hilft.

db48x
quelle
Der Multiboot wird funktionieren, aber wenn ich in der Antwort von bdowning versuche, Ubuntu zu installieren, erhalte ich Kernel nicht verfügbar (alternativ) oder kann keine apt (Desktop) -Fehler konfigurieren (siehe Beitrag und Kommentare von bdowning). Gibt es Ideen, wie das behoben werden kann? Wir unterhalten uns auch unter chat.stackexchange.com/rooms/info/2240/…
Jiew Meng
2

Auf Nicht-UEFI-Maschinen können wir GRUB2 verwenden, um den USB-Stick bootfähig zu machen. Dann können wir den Befehl 'ntldr' in GRUB2 verwenden, um Windows von USB zu booten.

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

Die vollständige Antwort finden Sie in meinem Blog. Erstellen eines bootfähigen Windows-USB unter Linux

harish2704
quelle
1
Während dieser Link die Frage beantworten kann, ist es besser, hier eine detailliertere Beschreibung der Antwort aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können fast unbrauchbar werden, wenn Ihr Link ausfällt.
G-Man sagt, dass Monica am
1

Warum sich mit GRUB2 beschäftigen? Es macht die Dinge nur komplizierter. Verwenden Sie einfach die EFI STUB-Methode, um den Linux-Kernel vom ESP zu booten, indem Sie eine UEFI-Shell zum ESP hinzufügen.

fpmurphy
quelle
Gut zu wissen. In meinem speziellen Fall (altes MacBook Pro) funktioniert es nicht, weil der Apple diesen proprietären Mist in "EFI" umbenannt hat und sagt, dass sein Bootloader ein EFI ist. Tatsächlich ist es jedoch ein undokumentierter, fehlerhafter, angepasster Bootloader, der nur OSX und Windows booten kann. Daher habe ich LILO in eine der Partitionen installiert und diesem Bootloader vorgemacht, dass es sich um ein Windows handelt. So funktioniert es. Also bootet "EFI" LILO im BIOS-Emulationsmodus und LILO bootet den Kernel.
Peterh - Wiedereinsetzung von Monica