Anzeige:
Ergebnis 1 bis 13 von 13

Thema: bootbaren USB-Stick für 32bit UEFI erstellen

  1. #1
    Registrierter Benutzer Avatar von ThorstenHirsch
    Registriert seit
    Nov 2002
    Beiträge
    6.558

    bootbaren USB-Stick für 32bit UEFI erstellen

    Die Dödel bei Lenovo bringen doch tatsächlich seit November 2013 Atom-Tablets (32bit) mit UEFI raus. Und so eins habe ich jetzt in die Finger bekommen. Das Problem: mit 32bit UEFI hat wohl niemand gerechnet, deshalb unterstützt bspw. der USB Creator von Ubuntu UEFI nur bei 64bit Images.
    Aber ich bin nicht der Erste, der dieses Problem hat.

    Was ich schon weiß:
    - UEFI braucht eine GPT-Partitionstabelle (ein einfacher MBR reicht nicht mehr), Lösung: gdisk
    - UEFI braucht eine FAT-Partition (muss nicht die erste sein), die jedoch die Partitions-ID EF00 aufweist (es darf nur eine Partition mit dieser ID auf dem USB-Stick geben), Lösung: mkfs.vfat und gdisk
    - UEFI erwartet in seiner UEFI-Partition ein Unterverzeichnis /mnt/efi/boot, wo es bei 64bit-Systemen die Datei bootx64.efi erwartet, bei 32bit muss sie bootia32.efi heißen
    - ein solcher Bootloader heißt efilinux, ist wohl von Intel und wird neuerdings auch von Ubuntu benutzt; um das 32bit-Paket auf einem 64bit-Ubuntu zu installieren, muss man das Paket "efilinux:i386" installieren; der Bootloader ist dann unter /usr/lib/efilinux zu finden (es gibt nur 1 Datei dort, die heißt zwar nicht bootia32.efi, aber sie ist es)
    - für efilinux wird ein Boot-Menü (ähnlich grub.cfg) benötigt, die Datei muss wohl efilinux.cfg heißen und ebenfalls unter /efi/boot liegen
    - bei Pfaden auf der EFI-Partition muss "\" benutzt werden (also bspw. für den Pfad der initrd)
    - fängt eine Zeile mit "-f " an, wird dieser Eintrag geladen ohne dass ein Boot-Menü angezeigt wird
    - Kommentare scheinen schon mal nicht mit "#" am Anfang der Zeile eingeleitet zu werden.

    Was ich nicht weiß:
    - Inhalt der efilinux.cfg: Welches device ist "0:" in "0:\vmlinuz"? Das Boot-Medium selbst? Warum brauche ich das, wenn laut anderen Beispielen auch einfach "\vmlinuz" funktionieren soll? (Es sieht so aus als würd 0:\vmlinuz und \vmlinuz gleichermaßen funktionieren.)
    - Kann man das irgendwie debuggen?

    Links, wo ich meine Infos gefunden habe: USBStickUEFIHowto vom Ubuntu Wiki und eine Frage auf askubuntu.com zu 32bit UEFI.

    Ich hab' den Eindruck, dass UEFI von Ernie und Bert entwickelt wurde. Und da rede ich noch nicht mal von dem unsäglichen Secure Boot! Das ist doch echt unterirdisch.

    Kann mir dennoch jemand bei meinen Fragen weiterhelfen?
    Geändert von ThorstenHirsch (04.02.14 um 20:03 Uhr)
    ¡Nuestro amigo... el Computador!

  2. #2
    Registrierter Benutzer Avatar von ThorstenHirsch
    Registriert seit
    Nov 2002
    Beiträge
    6.558
    Okay, ich bin ein bisschen weiter gekommen. Meine Antworten habe ich im ersten post ergänzt. Offen ist leider noch:

    - Linux (der Kernel) bootet nicht, der Bootvorgang bleibt hier hängen:
    Code:
    efilinux loader 1.0
    Using efilinux config file
    Diesen Zustand bekomme ich auf 2 Varianten hin - bei einer bleibt die LED vom USB-Stick an, bei der anderen geht sie aus. Ich weiß nicht, was besser ist.
    ¡Nuestro amigo... el Computador!

  3. #3
    Registrierter Benutzer
    Registriert seit
    Nov 2014
    Beiträge
    2
    Der PI320 besitzt einen 64Bit-Prozessor (Atom Z3735F Bay Trail-CR) und ein 32Bit-UEFI, was sich für Linux als sehr unglückliche Kombination darstellt.
    Das vorinstallierte Windows 8.1 ist ebenfalls 32Bit, was angesichts des Hauptspeichers von 2GB durchaus verständlich ist, denn 32Bit-Programme können ohnehin nicht mehr Speicher adressieren.
    Im Prinzip würde also auch ein 32Bit-Linux ausreichen, doch leider stellt bisher keine große Distribution UEFI und 32Bit-Kernel zur Verfügung. 32-Bit-Distributionen verwenden BIOS+MBR und die 64Bit-Varianten verwenden UEFI+GPT.
    Dies hat technische Hintergründe, auf die ich hier nicht näher eingehe (http://www.golem.de/news/linux-bios-...08-100731.html).
    Nun ist es beim PI320 glücklicherweise möglich, mithilfe einer "bootia32.efi" den Rechner von USB-Stick/-CD-Rom zu starten. Selbst die beiliegende Recovery-CD von Zotac enthält diese Datei, ist aber für unsere Zwecke ungeeignet.


    Um Ubuntu auf dem PI320 zu installieren, braucht man:
    -einen internetfähigen Windows-PC
    -Ubuntu 14.10 64Bit als ISO (z.B. ubuntu-14.10-desktop-amd64.iso)
    -rufus-1.4.10.exe
    -bootia32.efi von github (für den USB-Stick)
    -7zip (oder jedes andere Programm, mit dem Dateien aus ISO-Abbildern extrahiert werden können)
    -einen 2GB USB-Stick oder größer

    Unter Windows den Stick einstecken und Rufus starten. Einstellungen: GPT Partitionierungsschema für UEFI Computer, Fat32, 4096 Byte
    Das Symbol rechts von "startfähiges Laufwerk erstellen mit: ISO-Abbild" anklicken, die ubuntu-14.10-desktop-amd64.iso suchen und auswählen.
    Schaltfläche "Start" anklicken und warten, bis Rufus mit dem Vorgang fertig ist. Rufus beenden.
    Dann die Datei "bootia32.efi" auf den Ubuntu-USB-Stick in das Verzeichnis "EFI/boot" kopieren. Der Stick ist nun einsatzbereit.

    Den Stick an den PI320 anschliessen, einschalten und mit Taste "ESC" ins UEFI springen. Unter "Security" bitte "Secure Boot" auf disable stellen. Unter "Boot" bitte "Fast Boot" auf disable stellen.
    "F10" drücken und "Save Changes and Exit" auswählen. Der Rechner startet neu. Taste "F8" mehrfach drücken, bis die Bootauswahl erscheint und den USB-Stick auswählen.
    Anschliessend mit "Try Ubuntu without installing" starten. Nachdem Ubuntu gestartet ist, sollte in den "System Settings" mit "Brightness & Lock" der Bildschirmschoner abgeschaltet werden, weil der PI320 nicht mehr daraus aufwacht!
    Danach links oben bei der Aktionsleiste nach "gparted" suchen. Mit "gparted" kann man die interne eMMC umpartitionieren. Ich habe die Windowspartition auf 8GB verkleinert, so dass etwa 18GB für Ubuntu frei werden.

    Man kann nun den Ubuntu-Installer in der Aktionsleiste starten und das Programm holt ein paar Auskünfte bezüglich Sprache, Tastatur usw ein. Dann kommt der Punkt, an dem Ubuntu nach dem Installationstyp fragt. Hier "Ubuntu neben Windows Boot Manager installieren" auswählen. Nach der Installation nicht neu starten, sondern Netzwerkkabel einstecken und ein Terminal öffnen.

    Jetzt folgende Befehle im Terminal eingeben:
    sudo -s
    mount /dev/mmcblk0p5 /mnt
    mount /dev/mmcblk0p1 /mnt/boot/efi
    for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
    mount -o bind /etc/resolv.conf /mnt/etc/resolv.conf
    chroot /mnt /bin/bash
    apt-get update
    apt-get -y remove grub-efi-amd64
    apt-get -y install grub-efi-ia32
    sed -i 's/vmlinuz-3.16.0-23-generic.efi.signed/vmlinuz-3.16.0-23-generic/g' /boot/grub/grub.cfg

    Fertig. Nach einem Neustart sollte jetzt Grub2 starten und sowohl Ubuntu, als auch Windows zur Auswahl anbieten.
    Viel Spaß!

  4. #4
    Registrierter Benutzer
    Registriert seit
    Jan 2015
    Beiträge
    1
    Hallo

    Ich versuche grade das was in dem Thread oben beschrieben ist.
    Bei mir Startet nach dem Start Grub nicht sonder nur der Windows Bootloader mit Windows 8.1 als einziger Punkt.
    Jedoch gab es bei mir auch den Ordner mount /dev/mmcblk0p5 nicht und /dev/mmcblk0p1 lies sich nicht einbinden.
    Habe ein Surftab Wintron 10.1

    jemand eine Idee ?

    MfG chris

  5. #5
    Registrierter Benutzer
    Registriert seit
    Nov 2014
    Beiträge
    2
    Hallo chris1005,

    die Geräte /dev/mmcblk0p5 und /dev/mmcblk0p1 sind die Partitionen des internen Laufwerks (ähnlich wie die Laufwerksbuchstaben unter Windows).
    Die von mir angegebenen Partitionen beziehen sich nur auf den Mini-PC PI320 und auch nur solange die Werkseinstellungen nicht verändert wurden.
    Um die Partitionsbezeichnungen für dein Gerät herauszubekommen, kannst du nach "sudo -s" den Befehl "fdisk -l" (kleines L) ausführen.
    Sehr wahrscheinlich werden deine Partitionen als "/dev/sda1" , "/dev/sda2" usw. bezeichnet sein. Leider kenne ich das Surftab nicht und kann daher keine genaueren Angaben machen.
    Falls deine Linuxkenntnisse nicht ausreichen, um die richtigen Partitionen auf deinem Gerät herauszufinden und an den entsprechenden Stellen in meinem Script einzufügen, dann bleibt dir leider nur der Weg, das Internet nach einer Anleitung für exakt dein Gerätemodell zu durchsuchen. Bedauerlicherweise ist Linux zwar ein mächtiges Betriebssystem, doch leider noch nicht sehr bedienungsfreundlich. Je älter dein Gerät ist, desto besser sind die Chancen, dass du eine gute Anleitung findest.

    Viel Erfolg!

  6. #6
    Registrierter Benutzer
    Registriert seit
    Jan 2015
    Beiträge
    3
    Zitat Zitat von neverless Beitrag anzeigen
    Der PI320 besitzt einen 64Bit-Prozessor (Atom Z3735F Bay Trail-CR) und ein 32Bit-UEFI, was sich für Linux als sehr unglückliche Kombination darstellt.
    Das vorinstallierte Windows 8.1 ist ebenfalls 32Bit, was angesichts des Hauptspeichers von 2GB durchaus verständlich ist, denn 32Bit-Programme können ohnehin nicht mehr Speicher adressieren.
    Im Prinzip würde also auch ein 32Bit-Linux ausreichen, doch leider stellt bisher keine große Distribution UEFI und 32Bit-Kernel zur Verfügung. 32-Bit-Distributionen verwenden BIOS+MBR und die 64Bit-Varianten verwenden UEFI+GPT.
    Dies hat technische Hintergründe, auf die ich hier nicht näher eingehe (http://www.golem.de/news/linux-bios-...08-100731.html).
    Nun ist es beim PI320 glücklicherweise möglich, mithilfe einer "bootia32.efi" den Rechner von USB-Stick/-CD-Rom zu starten. Selbst die beiliegende Recovery-CD von Zotac enthält diese Datei, ist aber für unsere Zwecke ungeeignet.


    Um Ubuntu auf dem PI320 zu installieren, braucht man:
    -einen internetfähigen Windows-PC
    -Ubuntu 14.10 64Bit als ISO (z.B. ubuntu-14.10-desktop-amd64.iso)
    -rufus-1.4.10.exe
    -bootia32.efi von github (für den USB-Stick)
    -7zip (oder jedes andere Programm, mit dem Dateien aus ISO-Abbildern extrahiert werden können)
    -einen 2GB USB-Stick oder größer

    Unter Windows den Stick einstecken und Rufus starten. Einstellungen: GPT Partitionierungsschema für UEFI Computer, Fat32, 4096 Byte
    Das Symbol rechts von "startfähiges Laufwerk erstellen mit: ISO-Abbild" anklicken, die ubuntu-14.10-desktop-amd64.iso suchen und auswählen.
    Schaltfläche "Start" anklicken und warten, bis Rufus mit dem Vorgang fertig ist. Rufus beenden.
    Dann die Datei "bootia32.efi" auf den Ubuntu-USB-Stick in das Verzeichnis "EFI/boot" kopieren. Der Stick ist nun einsatzbereit.

    Den Stick an den PI320 anschliessen, einschalten und mit Taste "ESC" ins UEFI springen. Unter "Security" bitte "Secure Boot" auf disable stellen. Unter "Boot" bitte "Fast Boot" auf disable stellen.
    "F10" drücken und "Save Changes and Exit" auswählen. Der Rechner startet neu. Taste "F8" mehrfach drücken, bis die Bootauswahl erscheint und den USB-Stick auswählen.
    Anschliessend mit "Try Ubuntu without installing" starten. Nachdem Ubuntu gestartet ist, sollte in den "System Settings" mit "Brightness & Lock" der Bildschirmschoner abgeschaltet werden, weil der PI320 nicht mehr daraus aufwacht!
    Danach links oben bei der Aktionsleiste nach "gparted" suchen. Mit "gparted" kann man die interne eMMC umpartitionieren. Ich habe die Windowspartition auf 8GB verkleinert, so dass etwa 18GB für Ubuntu frei werden.

    Man kann nun den Ubuntu-Installer in der Aktionsleiste starten und das Programm holt ein paar Auskünfte bezüglich Sprache, Tastatur usw ein. Dann kommt der Punkt, an dem Ubuntu nach dem Installationstyp fragt. Hier "Ubuntu neben Windows Boot Manager installieren" auswählen. Nach der Installation nicht neu starten, sondern Netzwerkkabel einstecken und ein Terminal öffnen.

    Jetzt folgende Befehle im Terminal eingeben:
    sudo -s
    mount /dev/mmcblk0p5 /mnt
    mount /dev/mmcblk0p1 /mnt/boot/efi
    for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
    mount -o bind /etc/resolv.conf /mnt/etc/resolv.conf
    chroot /mnt /bin/bash
    apt-get update
    apt-get -y remove grub-efi-amd64
    apt-get -y install grub-efi-ia32
    sed -i 's/vmlinuz-3.16.0-23-generic.efi.signed/vmlinuz-3.16.0-23-generic/g' /boot/grub/grub.cfg

    Fertig. Nach einem Neustart sollte jetzt Grub2 starten und sowohl Ubuntu, als auch Windows zur Auswahl anbieten.
    Viel Spaß!
    Hallo

    danke für die super Anleitung!
    Alles funktioniert so wie beschrieben.

    Ich habe dann versucht die Treiber (Wlan-Wifi Audio Bluetooth) für das Gerät zu installieren bisher leider ohne Erfolg.

    Dazu habe ich die Treiber für Asus T100 (BayTrail Prozessor Z3740) verwendet.

    Gibt es eventuell Unterschiede bei den verschiedenen Prozessoren, dass man für den Zotac 321 (Z3735F) nicht dieselbe verwenden darf?

    Hat schon jemand es geschafft diese Geräte zum Laufen zu bringen?

    Für jegliche Hilfe wäre ich sehr dankbar.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jan 2015
    Beiträge
    4
    Ich möchte mich ebenfalls für die Anleitung bedanken, ausprobiert auf einem PI320. Bei mir treten bei den letzten Schritten leider noch Schwierigkeiten auf - ich habe die Fragen dazu mit einem % Zeichen markiert:

    sudo -s
    % Ich habe Windows beim Partitionieren entfernen lassen, dadurch ist EXT4 partition /dev/mmcblk0p2 hier. Könnte das noch andere Seiteneffekte gehabt haben?
    mount /dev/mmcblk0p5 /mnt
    % Der Installer hat eine EFI boot partition neu erstellt. Das hier muss /mnt/boot/efi heissen, nicht /mnt/boot, korrekt? Siehe Frage dazu weiter unten:
    mount /dev/mmcblk0p1 /mnt/boot/efi
    for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
    mount -o bind /etc/resolv.conf /mnt/etc/resolv.conf
    chroot /mnt /bin/bash
    apt-get update
    apt-get -y remove grub-efi-amd64
    % Die Installation von 32bit EFI GRUB lief durch, allerdings brach die Konfiguration mit einer Fehlermeldung ab. Beim 2. Versuch (nachdem das Booten nicht geklappt hat) habe ich /dev/mmcblk0p1 auf /mnt/boot gemounted (ohne /efi). Dann ohne Fehlermeldung, aber immernoch ohne erfolgreichen boot
    apt-get -y install grub-efi-ia32
    % Das war revision -28 beim aktuellen 14.10 Desktop installer, aber sonst kein Unterschied
    sed -i 's/vmlinuz-3.16.0-23-generic.efi.signed/vmlinuz-3.16.0-23-generic/g' /boot/grub/grub.cfg

    Falls jemand den Inhalt von /mnt/boot und /mnt/boot (die Ausgabe von ls) posten könnte, wäre mir wahrscheinlich schon sehr geholfen, da ich prüfen kann wo etwas schief gelaufen ist.

  8. #8
    Registrierter Benutzer
    Registriert seit
    Jan 2015
    Beiträge
    3
    Hallo,
    wenn ich richtig verstanden habe, sind alle Partitionen von Windows gelöscht worden.

    Der interne Speicher war ja mit Windows schon voll belegt. Um Ubuntu neu zu installieren, musstest Du die Windows Partition verkleinern um Platz für Ubuntu zu bekommen.
    In der obigen Anleitung ging der Autor davon aus, dass </dev/mmcblk0p5> mit installiertem Windows die erste Partition war die neu erstellt wurde vom der Ubuntu Installation.

    Wenn jetzt </dev/mmcblk0p2 > die Linux Partition ist so muss man natürlich auch diese und nicht </dev/mmcblk0p5> mounten.
    Der Befehl lautet dann
    mount /dev/mmcblk0p2 /mnt

    Du hast recht in der Annahme, dass im letzten Befehl jetzt der Kernel <vmlinuz-3.16.0-28-generic.efi.signed> genommen werden muss.
    Die Befehlszeile ist dann
    sed -i 's/vmlinuz-3.16.0-28-generic.efi.signed/vmlinuz-3.16.0-28-generic/g' /boot/grub/grub.cfg

    Bitte starte nochmals mit dem USB-Stick zum testen Deinen Computer und gebe alle Befehle nochmals der Reihe nach an. Die beiden Zeilen die ich angesprochen habe müssen allerdings geändert werden.

    Danach sollte die Installation funktionieren.

    Weiterhin habe ich den neueren Kernel <3.18.0-031800-generic> installiert, dieser hat schon einige Dinge im Kernel realisiert, die für den BayTrail Prozessor notwendig sind.

  9. #9
    Registrierter Benutzer
    Registriert seit
    Jan 2015
    Beiträge
    4
    @Avantar: Das habe ich versucht und Ubuntu taucht auch 2x im UEFI Menu auf, aber Boot-Versuche enden damit dass er in die UEFI shell zurück fällt. Ist nach dem Ändern der Grub config noch ein tool-run nötig um diese Anzuwenden? Hat sonst jemand Tipps zum Debugging?

  10. #10
    Registrierter Benutzer
    Registriert seit
    Jan 2015
    Beiträge
    3
    Zitat Zitat von qgc Beitrag anzeigen
    @Avantar: Das habe ich versucht und Ubuntu taucht auch 2x im UEFI Menu auf, aber Boot-Versuche enden damit dass er in die UEFI shell zurück fällt. Ist nach dem Ändern der Grub config noch ein tool-run nötig um diese Anzuwenden? Hat sonst jemand Tipps zum Debugging?
    Hallo,
    Ich habe es selbst nochmals ausbrbiert und mein System bootet anstandslos.

    Du kannst nochmal versuchen die Konfuguation Grub2 zu erzeugen.
    Das passiert mit
    <sudo update-grub>

    Viel Glück

  11. #11
    Registrierter Benutzer
    Registriert seit
    Jan 2015
    Beiträge
    4
    @Avantar: Danke für den cross-check. Auch der 3. Versuch hat es nicht gebracht, ich fange jetzt nochmal ganz vorne an. Welche disks hast du wenn du ls /dev/mmc* eingibst? Ich komme da noch auf zwei je 4 MB grosse boot partitionen / disks.

  12. #12
    Registrierter Benutzer
    Registriert seit
    Jan 2015
    Beiträge
    4
    Hier ist das offizielle Ubuntu issue:
    https://bugs.launchpad.net/ubuntu/+s...2/+bug/1341944

  13. #13
    Registrierter Benutzer Avatar von Mansaylon
    Registriert seit
    Nov 2011
    Ort
    Schweiz
    Beiträge
    37
    Der Beitrag hier ist zwar schon etwas älter... aber hat jemand schon ein CentOS 7 64bit auf den PI320 gebracht?
    Bis zu grub> komme ich..... weiter nicht.
    Ich will auch nicht einen parallel Betrieb von Linux und Windows haben.... lediglich ein CentOS 7.
    Bye
    Mansaylon

Ähnliche Themen

  1. USB 3.0 PCIe Karte
    Von Andi123 im Forum stationäre Hardware
    Antworten: 12
    Letzter Beitrag: 30.01.13, 12:37
  2. Meine Boot-hänger sind garkeine :-(
    Von smartysmart34 im Forum System installieren und konfigurieren
    Antworten: 20
    Letzter Beitrag: 03.09.07, 11:18
  3. USB-Stick in Maus
    Von Der Papst im Forum Selbstgebaute Elektronik
    Antworten: 10
    Letzter Beitrag: 30.04.07, 19:25
  4. Usb-Geraete Konflikt (Tastatur / externe HDD)
    Von quasseln im Forum stationäre Hardware
    Antworten: 2
    Letzter Beitrag: 19.04.07, 10:16
  5. Wie wird mein MP3-Player von Linux erkannt?
    Von 123Linux im Forum Mobiles Linux, Notebook, PDA
    Antworten: 30
    Letzter Beitrag: 25.06.05, 16:55

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •