Howto/Installation von 32-Bit Ubuntu auf EFI-System

Achtung!

Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.

Hinweis:

Diese Howto-Anleitung wurde zuletzt von Ulfzibis am 26.09.2021 unter Ubuntu 16.04.6 und Ubuntu 18.04.4 erfolgreich getestet.

Auf Systemen mit mäßigen Ressourcen kann es vorteilhaft sein, das leichtgewichtigere 32-Bit Ubuntu zu verwenden. Da dies auf 64-Bit-UEFI auf normalem Weg nicht möglich ist, wird hier eine Anleitung dafür gegeben. Diese wurde auf einem ASUS F200MA mit einem Ubuntu 16.04.6 32-Bit Installationsmedium (-i386.iso) auf einem MultiSystem-USB-Medium getestet, funktioniert aber sehr wahrscheinlich auch mit anderen Versionen, solange die darin enthaltene GRUB-Version vor dem März 2020 erstellt wurde. Ansonsten bekommt man dieses Problem. Sollte das Live-System nicht starten, kann das an secure boot liegen, das man im UEFI-BIOS-Setup temporär deaktivieren kann.

Hinweis:

Man kann sich die Durchführung dieser Anleitung erleichtern in dem man nach dem Start des Live-Systems den Firefox aufruft und diese Wiki-Seite öffnet. Dann kann man die einzelnen Befehle mittels Strg + C und + Strg + V direkt ins Terminal kopieren.

Hinweis:

Von einem Benutzer wurde berichtet, dass ubiquity in diesem Setup nicht formatieren und danach installieren kann. Es kann deshalb empfehlenswert sein, die gewünschten Partitionen zuerst mit GParted (vom Live-System) zu erstellen und zu formatieren und dann bei der Installation die Variante "Etwas Anderes" zu wählen und da nichts mehr zu verändern oder zu formatieren, sondern nur die Partitionen für die Einhängepunkte /, /home, evtl. swap etc. festzulegen.

Zunächst startet man den Rechner mit dem 32-Bit-Installationsmedium (Hinweis bzgl. GNOME oder Unity beachten) und wählt dann "Ubuntu ausprobieren" statt "... installieren". Um dieses Problem zu vermeiden, ist unbedingt darauf zu achten, dass keine Internetverbindung besteht. Dann öffnet man z.B. mit Strg + Alt + T ein Terminal und startet darin eine Installation ohne Bootmanager:

ubiquity -b 

Nun installiert man Ubuntu wie gewöhnlich.

Sollte nach dem Aushängen der Installationspartition gefragt werden, sollte man dies mit Ja beantworten. Andernfalls kann es vorkommen, dass Ubiquity hängen bleibt.

Sobald die Installation abgeschlossen ist, wechselt man mittels "Ausprobieren fortsetzen" wieder ins Terminal des Live-Systems, bindet die nötigen Partitionen und Verzeichnisse ein und legt eine Apt-Pinning-Datei mit unten aufgeführtem Inhalt an (sie verhindert späteres Überschreiben mit GRUB-Versionen, die den Systemstart vereiteln können):

sudo mount /dev/sdaX /mnt           # Ubuntu 32-Bit Zielpartition: sdaX, z.B. sda7
sudo mount /dev/sdaY /mnt/boot/efi  # FAT-32 EFI-Partition: sdaY, meist sda1
for dir in /dev /dev/pts /proc /sys /run; do sudo mount --bind $dir /mnt/$dir; done
sudo -H gedit /mnt/etc/apt/preferences.d/grub.pref 

Package: grub-pc
Pin: release v=*, l=*
Pin-Priority: -1

Package: grub* grub*:amd64 shim* shim*:amd64
Pin: release a=*-security
Pin-Priority: -1

Package: grub* grub*:amd64 shim* shim*:amd64
Pin: release a=*-updates
Pin-Priority: -1

Ggf. ist noch empfohlen, die GRUB-Konfigurationsdatei zu aktualisieren mit:

sudo -H gedit /mnt/etc/default/grub 

Dann wechselt man in die Shell des Zielsystems:

sudo chroot /mnt /bin/bash 

⚓︎ Nun ersetzt man grub-pc durch einen der EFI-Bootmanager nach Wahl:

Nun muss GRUB 2 noch in die EFI-Partition installiert (erstaunlicherweise wird dabei auch der nötige Menü-Eintrag im NVRAM gesetzt obwohl man unter 32-Bit-Ubuntu wegen fehlendem efivarfs-Treiber im Kernel mittels efibootmgr nicht darauf zugreifen kann) werden:

grub-install 

Dabei sollte ungefähr folgendes ausgegeben werden (die Fehler können ignoriert werden):

x86_64-efi wird für Ihre Plattform installiert.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub-install: Fehler: efibootmgr schlug beim Registrieren des Boot-Eintrags fehl: Datei oder Verzeichnis nicht gefunden.

Bei anderem Fehler mit dieser Option versuchen: --efi-directory /boot/efi

Nun noch GRUB konfigurieren, und dann verläßt man die chroot-Umgebung wieder:

update-grub
exit 

Nun kann der Rechner neu gestartet werden, und dann sollte automatisch das neu installierte Ubuntu 32-Bit in Erscheinung treten. Ist dies nicht der Fall, sollte man zunächst die UEFI-Boot-Reihenfolge überprüfen, und falls der signed-Bootloader installiert wurde, kann secure boot nun auch wieder aktiviert werden.

⚓︎ Nach erfolgreichem Start sollte man auch einmal überprüfen, ob für zukünftige Aktualisierungen von GRUB alles ordnungsgemäß konfiguriert ist:

sudo apt install 

GNOME und Unity unter Ubuntu 18.04

Da es für die Desktop-Umgebungen GNOME und Unity seit Ubuntu 18.04 kein eigenes 32-Bit-Installationsmedium mehr gibt, führt man diese Anleitung zunächst mit einem Lubuntu-32-Bit-Installationsmedium als Minimalinstallation aus. Die gewünschte Desktop-Umgebung installiert man dann anschließend mit:

sudo apt install ubuntu-gnome-desktop 

oder

sudo apt install ubuntu-unity-desktop 

Nach dem Neustart kann man die gewünschte Desktop-Umgebung dann im Displaymanager auswählen.

Probleme

Alternative

Im Fehlerbericht wird noch eine weitere Möglichkeit aufgezeigt.