# Neues System will nicht booten

## l3u

Hallo allerseits!

Seit gestern versuche ich, Gentoo auf einem Lenovo Ideapad 130S zu installieren. Meine letzte Gentoo-Installation ist jetzt schon ein paar Jahre her, und offensichtlich hat sich da einiges geändert ;-)

Scheinbar benutzt man ja heutzutage nicht mehr die Partitionstabelle von damals™. Also habe ich laut Handbuch eine GPT-Partitionstabelle erstellt (bzw. die Festplatte hatte schon eine). Da das BIOS (oder wie das heute heißt) einen „Legacy“-Boot-Modus neben dem UEFI-Boot-Modus hat, habe ich mir gedacht, dass ich dann ja scheinbar diesen UEFI-Kram nicht machen muss, sondern wie gehabt mittels MBR booten kann.

Aufgesetzt habe ich das System mittels GRML, also Linux booten geht prinzipiell schonmal – zumindest von USB. Erstellt habe ich eine Systempartition und davor diese 2 MB große Grub-Boot-Partition, die man ja braucht, wenn man eine GPT-Festplatte mit MBR booten will (oder?!). Grub-install /dev/sda hat sich auch nicht beschwert – mir ist allerdings die Rolle der Grub-Boot-Partition nicht ganz klar, weil die soll man ja auch nicht mit einem Dateisystem formatieren. Unhd woher weiß Grub dann eigentlich, dass es sie gibt?!

Nun ja, das Ergebnis ist jedenfalls jetzt, dass erstmal gar nichts passiert, und dann kommt ein Boot-Menü, das offensichtlich vom Notebook selber ist. Da kann ich die Festplatte oder einen „Windows Boot Manager“ auswählen (woher der auch immer kommt nachdem ich die Festplatte ja komplett platt gemacht habe). Und egal, was ich auswähle: Es passiert zwei Sekunden nichts, und dann kommt das selbe Menü wieder.

Also passt da ja irgendwas nicht … ich wäre höchst dankbar für jede Erklärung/Hilfe! Vielen Dank im Voraus!

----------

## firefly

Du vermischt da ein paar sachen.

GPT und MBR sind unterschiedliche Partitionsschemata für Festplatten. Wenn die Festplatte mit GPT partitioniert ist machst du gar nichts mehr mit MBR.

Die "Grub boot" Partition ist notwendig da bei GPT kein platz da ist, wo grub seinen second stage ablegen kann. Bei MBR gab es am anfang ein paar ungenutzte sektoren wo Grub den second stage ablegen konnte

(https://en.wikipedia.org/wiki/BIOS_boot_partition)

Wenn ein Bootmenu vom BIOS gezeigt wird (so klingt deine Beschreibung), dann wird wohl immer noch UEFI fürs booten verwendet (das hat ein integriertes boot menu)

Eventuell reicht es aus die boot reihenfolge im BIOS/UEFI umzustellen (falls das geht)

Mehr kann ich dir da jetzt nicht helfen, da ich aktuell keine Erfahrung mit UEFI habe. Ich verwende auch den "Legacy" Boot modus. Das gerät ist aber ein PC und kein Notebook/Laptop

----------

## l3u

Die Reihenfolge habe ich schon auf „Legacy first“ (statt „UEFI first“) eingestellt …

----------

## toralf

Ich habe auf meinem 4 Jahre alten Lenovo ThinkPad 4402 folgende Partitionen auf einer SSD

```
:

$ sudo fdisk -l

Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt

Disk identifier: 57608924-3129-49BA-8255-3EDD4D4973B9

Device        Start       End   Sectors   Size Type

/dev/sda1      2048      6143      4096     2M BIOS boot

/dev/sda2      6144  33560575  33554432    16G Linux swap

/dev/sda3  33560576 468862094 435301519 207.6G Linux filesystem

```

und im BIOS (soweit ich mich erinnere) ebenfalls legacy kompatibles Booten eingestellt. Obiges korreliert mit meinen beiden Filesystemen in /etc/fstab:

```
/dev/sda3               /               btrfs           compress=lzo,ssd_spread,noatime         0 0

/dev/sda2               none                            swap            sw                      0 0

```

Beim grub2 hast Du auch den setup Schritt gemacht und dabei darauf beachtet, daß /boot (so DU es auf einer separaten PArtition hast) gemounted war bzw. wurde?

----------

## l3u

Letztendlich hat's dann (zum Glück!!!) mit UEFI geklappt. Ich hab schlicht die bisherige Installation auf einen USB-Stick ge-tar-t, und dann nochmal die Festplatte platt gemacht. Dann ein neues GPT-Label erstellt, eine 2 MB große grub-boot-Partition ohne Dateisystem, dann eine 100 MB große FAT32-Partition für UEFI, und dann die Root-Partition (auf die ich dann den vorher eingepackten Tarball wieder ausgepackt habe).

Grub konnte dann von GRML aus erstmal nicht den efivars-Eintrag ändern, mangels Modul von GRML. Die Gentoo-Installations-CD wollte gleich überhaupt nicht booten. Das Resultat des Installationsversuchs konnte dann auch nicht booten. Also hab ich's mit der „default UEFI location“ probiert (/boot/efi/EFI/gentoo/grubx64.efi nach /boot/efi/EFI/BOOT/BOOTX64.EFI kopieren). Und siehe da: Grub taucht auf.

Bemerkenswerterweise habe ich dann der Zeile „Kernel sowieso wird geladen …“ knapp zwei Minuten(!) dabei zugeschaut, dass sie da steht und sonst nichts passiert, als ich dann bereits dabei war, zu suchen, was da wieder nicht passt, ist das System dann doch gebootet, und zwar in ein paar Sekunden. Mit dem eigentlichen Gentoo-System konnte ich dann auch Grub normal installieren, incl. efivars-Eintrag. Und jetzt bootet die Kiste normal.

Puh – und da soll einer sagen, dass früher /nicht/ alles besser war ;-)

----------

## ChrisJumper

 *l3u wrote:*   

> 
> 
> Puh – und da soll einer sagen, dass früher /nicht/ alles besser war ;-)

 

Sehr gut das die Kiste jetzt läuft! Zum Zitat: Na das täuscht, ich denke das größte Problem ist halt das wir in Zukunft mehrere Möglichkeiten haben wenn nicht alles direkt auf GPT und MBR umgestellt wird, dann muss man immer analysieren und sich dran erinnern wie das war. Das habe ich aktuell schon bei Grub und Grub2, wobei es mehr Grub2 Systeme sind und das ganze deswegen sich vertrauter anfühlt.

Das mit GPT und UEFI wirkt auf mich auch komplizierter. Aber es ist wohl einfacher für Mischsysteme wie beim Dualboot mit Microsoft.. ;D

Mit mehreren Möglichkeiten wird natürlich immer alles komplizierter, aber im Grunde ist es schon besser wenn alte Techniken ersetzt werden.

Hab aktuell ein "Problem", das sich lösen lässt aber ich bin zu Faul. Will eine Festplatte, durch eine andere ersetzen. Hatte die Daten per Backup gesichert aber natürlich die Boot-Information mit Grub im MBR bei meiner Backupstrategie vergessen. Jetzt ist aber kein SATA-Port mehr frei (ich kaufe mir wahrscheinlich einfach eine Steckkarte) und per USB funktioniert die Festplatte, aber Grub weigert sich sie zu "sehen" weil der "Kernel in der Device.map" dafür keinen Eintrag hat, weil es halt über USB als Wechseldatenträger angeschlossen ist.

Es klang so trivial, Kopieren, austauschen und vielleicht noch den UUID-Eintrag anpassen, Fertig. Aber so leicht geht es nicht. Weil Grub Legacy ja beim Stage2 vermerkt wo die Boot oder Root Festplatte liegt. Das man die vor dem reboot umhängt und an eine andere Position packt ist wohl nicht so gedacht (Es gab ja im Bios mal Einstellung wie wann welche Festplatte wo ist.). :D

Lösen lässt sich das Problem natürlich durch ein Live-CD Boot, kopieren umstecken und dann installieren. Oder halt durch eine DD-Kopie, die ich aber nicht machen wollte weil es keine identische Festplatte ist.

Es ist schon ein wenig blöd das die Speicheradressierung immer noch so seltsam ist, ich kann schon verstehen warum alle gerne nur noch mit Images/Container arbeiten wollen. Doch letztlich macht jede zusätzliche Schicht alles wieder ein wenig komplexer, teilweise mächtiger aber im Spezialfall auch schwieriger nach zu vollziehen. Die meisten Dateisysteme verwalte ich mittlerweile eigentlich per lvm aber das von dem man bootet halt nicht. ;D

----------

## firefly

 *ChrisJumper wrote:*   

> Zum Zitat: Na das täuscht, ich denke das größte Problem ist halt das wir in Zukunft mehrere Möglichkeiten haben wenn nicht alles direkt auf GPT und MBR umgestellt wird

 

Öhm man kann nicht auf GPT und MBR umstellen, es geht nur das eine oder andere. Da beides Formate für Partitionstabellen sind.

----------

## ChrisJumper

Natürlich kann man das, Backup der Daten machen. Dann die Festplatte neu formatieren und einen GPT erstellen.

Kann man mit allen machen, nur bestimmte (meist ältere) Systeme setzen das Booten von MBR voraus weil deren BIOS von der Platte sonst nicht booten kann.

Der Post war auch eher gedacht das man mal sollte und nicht nur aus Bequemlichkeit alte Tools verwendet, sondern schon zu aktuellen Standard oder Methoden migriert, weil es die Administration vereinfacht und es weniger Ausnahmen erzeugt. Welche im Idealfall ja in einer Systemdokumentation hinterlegt werden. Aber da schaut man auch erst rein wenn etwas nicht klappte. ;D

Ich stelle mir immer vor das ich im Alter Alzheimer habe und in meinen Aufzeichnungen aber noch die Hinweise finde. Spaß beiseite, es erhöht halt einfach die Produktivität und Bequemlichkeit. Wenn auch nicht zwangsläufig die Sicherheit.

----------

## firefly

Bitte was?

Du kannst auf einer Festplatte nicht MBR und GPT gleichzeitig verwenden. Und das hast du so geschrieben!

 *ChrisJumper wrote:*   

> Na das täuscht, ich denke das größte Problem ist halt das wir in Zukunft mehrere Möglichkeiten haben wenn nicht alles direkt auf GPT und MBR umgestellt wird

 

----------

## schmidicom

Hier gibt es ja etliche Spekulationen zu GPT.  :Wink: 

GPT ist zwar ein Teil des UEFI-Standard funktioniert aber auch ganz ohne UEFI, egal wie Uralt der PC auch sein mag, und Grund dafür ist der eigentlich immer vorhandene "Protective MBR". Für alles was kein GPT kann sieht es dann so aus als hätte die Festplatte ein normales MBR-Label mit einer einzigen großen Partition von unbekannten Typ.

Siehe: https://de.wikipedia.org/wiki/GUID_Partition_Table#MBR-Partitionstabelle

Das einzige was bei einem entsprechend alten Computer problematisch werden könnte wäre das dessen BIOS mit der Größe der heutigen Festplatten nicht klar kommt.

Wenn aber ein GPT-Label bei einem Computer mit BIOS oder UEFI im Legacy-Modus zum Einsatz kommen soll fallen natürlich einige Dinge an die beachtet werden müssen um einen funktionierenden boot hinzubekommen:

1. Es muss eine "BIOS boot partition" erstellt werden in der sich der Legacy-Bootloader installieren kann.

2. Der "Protective MBR" muss mit einem kleinen Bootcode versehen werden welcher nichts anderes macht als den ersten Block aus der oben erstellten "BIOS boot partition" zu laden.

Siehe: https://wiki.archlinux.org/index.php/syslinux#GUID_partition_table

Ich habe so einen über 10 Jahre alten Server ohne UEFI mit einem GPT-Label auf der Festplatte und SYSLINUX problemlos zum booten bekommen.

EDIT:

Auch nicht schlecht, trotz Englisch, ist die folgende Seite: http://www.system-rescue-cd.org/disk-partitioning/The-new-GPT-disk-layout/

----------

## ChrisJumper

Frohe Feiertage an alle Leser und Leserinnen zur aktuellen Stunde.

Ich meinte natürlich nicht GPT und fdisk Zeitgleich auf einer Platte. Stimmt ich habe mich da verschrieben. Ich hinge da an dem Gedanken das es komplizierter ist wenn man nicht ein einheitliches System hat. Je mehr Einheitliche Systeme umso besser.

Entschuldige firefly. Ich hätte beim schreiben mehr Acht geben müssen.

Es sind ja immer die kleinen Ungenauigkeiten die Fehler erzeugen.

Danke an Schmidicom für die Links!

Warum ich aber eigentlich schreibe ist:

Altes Athlon 64 Mainboard genommen mit zwei Sata-Anschlüssen und DVDROM: Aktuelles Ubuntu gebootet. Beide Festplatten angeschlossen. Auf der neuen wollte ich direkt GPT + Grub 2 installieren. Also vorsichtshalber wie im Gentoo Handbuch eine GPT erstellt, Partitionen formatiert und dann halt das Rootfs vom Original auf die neue Festplatte ins Rootfs kopiert.

Ging alles sehr gut, wollte nur noch ins Chroot, ein paar Verzeichnisse anpassen, grub2 emergen und in der /etc/fstab die neue UUID ändern...

Da meldet der chroot Versuch einen Ungültiger Maschinenbefehl zurück und das Chrooten funktioniert nicht.

Eigentlich beides 64 Bit systeme, das eine von Intel das andere von AMD. Ich werde jetzt den Original rechner noch mal mit einer Livecd zu Leibe rücken. Aber diese kleinen Dinge ärgern einfach nur.

Es ist unmöglich von einem fremden-Live-System, also ohne chroot, aus das grub-install Skript zu verwenden sollte, auch wenn es Grub 2 ist? Damit man die Festplatte entsprechend vorbereiten kann oder?

Update: So alles behoben und wieder in Butter. Hatte das System wohl damals auch mit einem USB-Stick gebootet und unetbootin funktioniert nicht mehr gut. Mich an die Gentoo Wiki - LiveUSB Anleitung aus dem Wiki gehalten und es ging schneller einfacher und ohne Probleme!

----------

## l3u

 *schmidicom wrote:*   

> Wenn aber ein GPT-Label bei einem Computer mit BIOS oder UEFI im Legacy-Modus zum Einsatz kommen soll fallen natürlich einige Dinge an die beachtet werden müssen um einen funktionierenden boot hinzubekommen:
> 
> 1. Es muss eine "BIOS boot partition" erstellt werden in der sich der Legacy-Bootloader installieren kann.
> 
> 2. Der "Protective MBR" muss mit einem kleinen Bootcode versehen werden welcher nichts anderes macht als den ersten Block aus der oben erstellten "BIOS boot partition" zu laden.
> ...

 

Heißt also, dass ich diese suspekte, dateisystemlose „BIOS boot partition“ nur brauche, wenn ich den „Legacy Mode“ benutze?! Ich brauch sie also nicht, wenn ich UEFI benutze, und diese UEFI-FAT-Partition habe, wo sich GRUB hininstalliert? Ich hab das so verstanden (laut Gentoo-Dokumentation), dass man beide braucht?

Das ist alles irgendwie ein bisschen verwirrend ;-)

----------

## Child_of_Sun_24

 *l3u wrote:*   

>  *schmidicom wrote:*   Wenn aber ein GPT-Label bei einem Computer mit BIOS oder UEFI im Legacy-Modus zum Einsatz kommen soll fallen natürlich einige Dinge an die beachtet werden müssen um einen funktionierenden boot hinzubekommen:
> 
> 1. Es muss eine "BIOS boot partition" erstellt werden in der sich der Legacy-Bootloader installieren kann.
> 
> 2. Der "Protective MBR" muss mit einem kleinen Bootcode versehen werden welcher nichts anderes macht als den ersten Block aus der oben erstellten "BIOS boot partition" zu laden.
> ...

 

Ich boote per Grub2 im Uefi modus und brauche keine bios boot partition, nur die Fat32 Efi Partition ist nötig.

----------

## schmidicom

 *l3u wrote:*   

>  *schmidicom wrote:*   Wenn aber ein GPT-Label bei einem Computer mit BIOS oder UEFI im Legacy-Modus zum Einsatz kommen soll fallen natürlich einige Dinge an die beachtet werden müssen um einen funktionierenden boot hinzubekommen:
> 
> 1. Es muss eine "BIOS boot partition" erstellt werden in der sich der Legacy-Bootloader installieren kann.
> 
> 2. Der "Protective MBR" muss mit einem kleinen Bootcode versehen werden welcher nichts anderes macht als den ersten Block aus der oben erstellten "BIOS boot partition" zu laden.
> ...

 

An dieser Partition ist doch gar nichts suspekt und dateisystemlos ist sie auch nicht...

Sie funktioniert genau gleich wie die boot-Partition von früher, der hat man ja auch ein möglichst einfaches Dateisystem verpasst das dann vom eigenen Bootloader (egal ob SYSLINUX, GRUB oder sonst etwas) unterstützt wurde.

 *l3u wrote:*   

> Ich brauch sie also nicht, wenn ich UEFI benutze, und diese UEFI-FAT-Partition habe, wo sich GRUB hininstalliert?

 

Die ESP ist extra nur für das UEFI und wird von diesem direkt ausgelesen, was dann eben auch zu der Anforderung führt das diese ESP zwingend FAT16/32 und eine strikte Ordnerstruktur haben muss.

 *l3u wrote:*   

> Ich hab das so verstanden (laut Gentoo-Dokumentation), dass man beide braucht?

 

Dem ist nur so wenn du deine Installation sowohl im UEFI- als auch im Legacy-Modus gestartet bekommen willst. Aber so etwas macht ja eigentlich nur bei einem System sinn das man (z.B. per USB-Wechselfestplatte) von einem PC zum nächsten trägt, aber eine feste Installation auf einer Maschine wird wohl kaum ständig hin und her wechseln.

EDIT:

Das wird jetzt zwar noch mehr potential für Verwirrung bringen aber es will trotzdem noch erwähnt sein.

Theoretisch wäre es möglich ein und der selben Partition sowohl das Flag für eine "BIOS boot partition" als auch für eine "EFI-Systempartition" zu verpassen und sie dann für beides gleichzeitig zu nutzen, die beiden Verwendungszwecke sollten sich dabei eigentlich nicht in die Quere kommen. Im Tool "parted" hätte eine solche Partition dann die folgenden beiden Flags: "legacy_boot" und "esp"

https://www.gnu.org/software/parted/manual/html_node/set.html

----------

## l3u

Also unterm Strich: Das Einfachste ist, eine UEFI-Boot-Partition mit FAT zu erstellen und eine Systempartition. Und dann per UEFI booten. Oder?!

----------

## schmidicom

 *l3u wrote:*   

> Also unterm Strich: Das Einfachste ist, eine UEFI-Boot-Partition mit FAT zu erstellen und eine Systempartition. Und dann per UEFI booten. Oder?!

 

Wenn du einen Computer mit UEFI hast dann ja. Abschalten lässt sich UEFI eh nicht wirklich, man könnte dem Betriebssystem lediglich vorgaukeln es wäre ein klassisches BIOS.

EDIT:

Die swap-Partition nicht vergessen.  :Wink: 

----------

## l3u

Ah was, wenn ich tatsächlich mal swap brauchen sollte, dann kann ich genausogut mit fallocate eine Datei namens /swap mit 0600 erzeugen, als swap swap formatieren und dann benutzen ;-)

----------

