ubuntuusers.de

GRUB_2/Shell

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels GRUB_2/Shell.

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11315

Hej tomtomtom,

tomtomtom schrieb:

Also wir haben da einen Artikel GRUB 2

die Seite Grub 2 war bis genau 29.04.2009 eine Artikel, mit dem Datum wurde daraus eine Zusammenstellung, ein gut gemachtes Inhaltsverzeichnis für Themen rund um grub. (Und wenn ich mir die Anforderungen an eine Wikiseite ansehe (nur mal den Punkt Wiki/Referenz (Abschnitt „Grundstruktur“)), dann könnte man auch sagen, daß das keine ist.)

und wir haben Unterartikel dazu, die unterhalb von GRUB 2 liegen und damit natürlich auch GRUB 2 im Namen.

den "hirarchischen" Aufbau dort bemerkt man erst, wenn man mal über den slash in der URL stolpert, der Ottonormal-user dürfte das vermutlich gar nicht bemerken. Btw., das war dann ja von Anfang an nicht konsequent, oder will hier jemand behaupten, daß Grub 2 durch Grub ersetzen und GRUB Umgebung analysieren (s. rev. 182111) und jetzt neu hinzugekommene Artikel wie GRUB 2 von BIOS nach EFI umstellen oder Universal stand-alone grub für BIOS und EFI auf USB flashkey und internen HDD und SSD nur deswegen mit grub_2 nichts zu tun haben, weil sie nicht in der (wikiinternen) Struktur inetegriert wurden?

Und zur Namensgebung (der jeweiligen Links): Die Änderung kam mit aasche mit rev. 523162

Und darüber hinaus behandelt der Artikel zur Analyse der Umgebung sowohl Grub Legacy als auch Grub2.

ach ja, und seit wann ist grub legacy aus der ganzen Artikelserie verschwunden, weil die letzte Ubuntuversion, in der er noch verfügbar war, längst eol ist? (ich such das jetzt nicht raus), und daß Teile von grub langlebiger sind als Ubuntuversionen, dafür kann ich schließlich nichts.

Und ja, das habe ich falsch gesehen, die Artikel selber tragen alle nicht 'Grub_2' im Namen, so steht es nur auf der Übersicht. So gesehen ist mein

Ferner sollte der Titel auch "Grub/Shell2 heißen.

von noisefloor falsch verstanden worden, ich meinte damit nicht den Link sondern den Titel auf der Seite. Und das steht ja so bei allen Seiten, bis auf eine GRUB-Umgebung analysieren

Gruß black tencate

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

kleine Erinnerung: der Artikel ist ungetestet. Wenn der in den kommenden Woche nicht mit einem unterstützem *buntu getestet wird, wandert der Artikel ins Archiv.

Gruß, noisefloor

A13XIS

Anmeldungsdatum:
21. Juli 2019

Beiträge: 2

Hallo! ☺

Grub ist Versionsunabhängig da es als Bootloader VOR Operationssystemen kommt. Auch die Beispiele und alle anderen praktischen Anleitungen werden sich nie ändern, solange Grub keine nicht-abwärts-kompatible Änderungen macht. Das ist aber 1. seht unwahrscheinlich und hat 2. nichts mit der Ubuntu Version zu tun.

Okay, habe die "Unterbeiträge" übersehen. Das obige stimmt für den Übersichtsartikel, aber nur bedingt für alle abhängigen. Wäre es nicht sinnvoller jeden Unterartikel einzeln zu testen und ggf. als veraltet zu markieren?

Grüße.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

aber nur bedingt für alle abhängigen.

Die Diskussion hier ist konkret nur für den Artikel Grub 2/Shell. Der ist ja an sich alleinstehend und in sich abgeschlossen. Oder was meist du?

Wäre es nicht sinnvoller jeden Unterartikel einzeln zu testen und ggf. als veraltet zu markieren?

So ist die gängige Praxis hier.

Gruß, noisefloor

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10429

Hallo in die Runde,

wenn ich GRUB 2/Shell (Abschnitt „Beispiel-Windows-starten“) will, dann ist der Start-Datenträger mit dem Befehl

set root=(hdX,Y) 

festzulegen. Es ist also hdX,Y zu ermitteln. In diesem Wiki und auch im Wiki GRUB-Umgebung analysieren wird der Befehl ls der grub-Shell-Kommandozeile genannt. In der Anlage sind bei einem EFI- System (also mit GPT) andere Angaben zu sehen. Die da lauten (proc) oder nur (hd0) aber auch (hd0,gpt1). Was ist jetzt (proc) und ist dann die sda nicht mehr hd0 sonder hd1, aber was ist dann hd0?

In meinem System ist das Windows

mate@mate-HP:~$ sudo efibootmgr --verbose 
[sudo] Passwort für mate: 
BootCurrent: 0006
Timeout: 0 seconds
BootOrder: 0006,0000,0007,0001,0002,0003,0009,000A,0004,0005
Boot0000* ubuntu	HD(1,GPT,fe577bfc-cc38-4c57-92b1-7777c4555c6d,0x800,0x32000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* DTO UEFI USB Floppy/CD	VenMedia(b6fef66f-1495-4584-a836-3492d1984a8d,0500000001)..BO
Boot0002* DTO UEFI USB Hard Drive	VenMedia(b6fef66f-1495-4584-a836-3492d1984a8d,0200000001)..BO
Boot0003* SPCC Solid State Disk	PciRoot(0x0)/Pci(0x1f,0x2)/Sata(0,65535,0)/HD(1,GPT,fe577bfc-cc38-4c57-92b1-7777c4555c6d,0x800,0x32000)..BO
Boot0004  DTO Legacy USB Floppy/CD	VenMedia(b6fef66f-1495-4584-a836-3492d1984a8d,0500000000)..BO
Boot0005  Hard Drive	BBS(HD,,0x0)..GO..NO?.........F.a.k.e. .U.s.b. .O.p.t.i.o.n.................BO
Boot0006* mate	HD(1,GPT,fe577bfc-cc38-4c57-92b1-7777c4555c6d,0x800,0x32000)/File(\EFI\mate\shimx64.efi)
Boot0007* Windows Boot Manager	HD(1,GPT,fe577bfc-cc38-4c57-92b1-7777c4555c6d,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0009* IP4 Intel(R) Ethernet Connection I217-LM	PciRoot(0x0)/Pci(0x19,0x0)/MAC(40a8f0541f87,0)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot000A* IP6 Intel(R) Ethernet Connection I217-LM	PciRoot(0x0)/Pci(0x19,0x0)/MAC(40a8f0541f87,0)/IPv6([::]:<->[::]:,0,0)..BO
mate@mate-HP:~$ 

das wäre dann HD(1,GPT was aber in der ls-Schreibweise nicht vorkommt. Gerate könnte das "hd1,gpt" lauten.

mate@mate-HP:~$ sudo lsblk -o NAME,UUID,FSTYPE,SIZE,LABEL,MOUNTPOINT,TYPE
NAME   UUID                                 FSTYPE   SIZE LABEL         MOUNTPOINT              TYPE
sda                                                119,2G                                       disk
├─sda1 2A50-8686                            vfat     100M SYSTEM                                part
├─sda2 fd756d21-1921-4794-a535-7e6092b6a36a ext4     128M                                       part
├─sda3 F800518000514732                     ntfs      58G Windows                           part
├─sda4 4456B93B56B92F14                     ntfs     583M SSD-Rest                              part
├─sda5 225b87f5-3a68-4b2a-8dcf-a381075b0802 ext4    24,9G Ubuntu                                part
├─sda6 779a5b91-5f21-4e66-9a8f-5df952a18f81 swap     8,7G               [SWAP]                  part
└─sda7 7c98e1e6-4163-40b5-b890-b20abb244f33 ext4    26,9G MATE          /                       part

Wie passen jetzt sda mit HD1 zusammen? Ich hätte vermutet sda>hd0 bzw. sda3>hd0,3 passen zusammen.

Kann das jemand erkären?

Anmerkung zu meinem System die Homeverzeichnisse von Ubuntu und Mate sind auf sdb, Daten für Windows werden auch auf der sdb abgelegt.

Wenn es nicht in die Diskusion passen sollte, bitte ins Forum einstellen.

Sinngemäß gilt das auch für den Teil GRUB 2/Shell (Abschnitt „Beispiel-Linux-starten“)

Bilder

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9758

Wohnort: Münster

Berlin_1946 schrieb:

[…] wenn ich GRUB 2/Shell (Abschnitt „Beispiel-Windows-starten“) will […]

Grundsätzlich: Die im Wiki beschriebenen Methode funktioniert nur, wenn der GRUB nach der Bios-Boot-Spezifikation gestartet wurde und nicht bei der UEFI-Boot-Methode.

Es ist also hdX,Y zu ermitteln.

Es gibt keinen festen Zusammenhang zwischen der sdA-Notation in einem Linux-System und der hdX,Y-Notation von GRUB, beides sind temporäre Bezeichner.

In beiden Situationen werden die gefundenen Festplatten in der Reihenfolge ihres Auffindens benannt:

  • Linux verwendet a, b, c, … für die erste, zweite, dritte, … beim aktuellen Start der Kernels gefundene Festplatte.

  • GRUB verwendet 0, 1, 2, … für die erste, zweite, dritte, … beim aktuellen Start vom Bios gefundene Festplatte.

Je nach Situation können sich die Reihenfolgen unterscheiden.

Frieder108

Avatar von Frieder108

Anmeldungsdatum:
7. März 2010

Beiträge: 9598

Um unter UEFI ein Windows mit Grub 2 zu "chainloaden" gehe ich immer folgendermaßen vor - erst das Windows suchen

BOOT="/boot/efi";NAME="/EFI/Microsoft/Boot/bootmgfw.efi";UUID=$(sudo grub-probe -t fs_uuid "${BOOT}${NAME}");DEV=$(sudo grub-probe -t device "${BOOT}${NAME}"); { echo -e "\n# snip--->\nmenuentry \"Windows UEFI:  bootmgfw.efi $DEV\" {\n    search --fs-uuid --no-floppy --set=root $UUID\n    chainloader (\${root})$NAME\n}\n\n# <--- snip"  ;}

das ergibt dann bspw.

# snip--->
menuentry "Windows UEFI:  bootmgfw.efi /dev/sda2" {
    search --fs-uuid --no-floppy --set=root 0AEA-ED99
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

# <--- snip 

und daraus wird der Eintrag für etc/grub.d/40_custom erstellt → sieht dann so aus

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows UEFI:  bootmgfw.efi /dev/sda2" {
    search --fs-uuid --no-floppy --set=root 0AEA-ED99
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

noch ein

sudo update-grub

hinterherschieben und gut isses.

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10429

Hallo kB,

danke für die Antwort.

... nicht bei der UEFI-Boot-Methode.

Das finde ich sollte Eingang ins Wiki finden. 😳

Hast du einen Link, wie es bei UEFI-Boot-Methode funktioniert? Ich meine, das einen Link in diese Wiki geschrieben wird, ohne auf die Mammut-Seite EFI Bootmanagement (leider hat die den Stand 16.04) zu verweisen.

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10429

Hallo Frieder108,

was machen wir jetzt?

Erst mal danke für deine Antwort.

Woher hast du das?

BOOT="/boot/efi";NAME="/EFI/Microsoft/Boot/bootmgfw.efi";UUID=$(sudo grub-probe -t fs_uuid "${BOOT}${NAME}");DEV=$(sudo grub-probe -t device "${BOOT}${NAME}"); { echo -e "\n# snip--->\nmenuentry \"Windows UEFI:  bootmgfw.efi $DEV\" {\n    search --fs-uuid --no-floppy --set=root $UUID\n    chainloader (\${root})$NAME\n}\n\n# <--- snip"  ;}

O.k. dein Fachwissen, steht so was auch im Wiki?

Das zum Thema BOOT habe ich gefunden , aber hilft mir auch nicht so richtig weiter

Und jetzt das Problem, soll das jetzt in einen Thread oder können bzw. dürfen wir das hier behandeln.

Ich meine das Delta auf die Antwort des o.g. Befehls zwischen deiner zu meiner Ausgabe.

mate@mate-HP:~$ BOOT="/boot/efi";NAME="/EFI/Microsoft/Boot/bootmgfw.efi";UUID=$(sudo grub-probe -t fs_uuid "${BOOT}${NAME}");DEV=$(sudo grub-probe -t device "${BOOT}${NAME}"); { echo -e "\n# snip--->\nmenuentry \"Windows UEFI:  bootmgfw.efi $DEV\" {\n    search --fs-uuid --no-floppy --set=root $UUID\n    chainloader (\${root})$NAME\n}\n\n# <--- snip"  ;}
[sudo] Passwort für mate: 

# snip--->
menuentry "Windows UEFI:  bootmgfw.efi /dev/sda7" {
    search --fs-uuid --no-floppy --set=root 7c98e1e6-4163-40b5-b890-b20abb244f33
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

# <--- snip
mate@mate-HP:~$ 

In meiner Installation Mate find ich die Datei bootmgfw.efi hier:

mate@mate-HP:/boot/efi/EFI/Microsoft/Boot$ ls -hal | grep -i bootmgfw.efi
-rwxr-xr-x  1 root root 1,5M Aug 24 11:29 bootmgfw.efi
mate@mate-HP:/boot/efi/EFI/Microsoft/Boot$ 

Siehe auch.

mate@mate-HP:~$ sudo parted -l
[sudo] Passwort für mate: 
Modell: ATA SPCC Solid State (scsi)
Festplatte  /dev/sda:  128GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: gpt
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Dateisystem     Name                          Flags
 1      1049kB  106MB   105MB   fat32           EFI system partition          boot, esp
 2      106MB   240MB   134MB   ext4            Microsoft reserved partition  msftdata
 3      240MB   62,5GB  62,3GB  ntfs            Basic data partition          msftdata
 4      62,5GB  63,1GB  611MB   ntfs            Rest-fuer-SSD                 versteckt, diag
 5      63,1GB  89,8GB  26,7GB  ext4            Ubuntu
 7      89,8GB  119GB   28,9GB  ext4            / MATE
 6      119GB   128GB   9369MB  linux-swap(v1)        

im Boot-Menü steht jetzt für Windows, wie im Befehl ober zu sehen ist sda1 und das Mate auf sda7 als Ubuntu 20.04 ... .

siehe Anhang "boot-menue.png".

Ich boote jetzt Ubuntu (sda5) und such dort nach bootmgfw.efi.

Nachtrag:

Im Ubuntu habe ich keine Datei bootmgfw.efi gefunden-

Bilder

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10429

Hallo kB , hallo Frieder108,

meine Frage an euch:

hat der Befehl ls in der GRUB_2/Shell bei einer Uefi- Installation noch eine Bedeutung oder was kann mit der Antwort des Befehls noch anfangen?

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11315

Hej Berlin_1946,

Berlin_1946 schrieb:

... was machen wir jetzt?

gute Frage… was schwebt Dir denn vor? Wüßte gerade nicht zu sagen, wann genau diese Situation eintritt!

... Im Ubuntu habe ich keine Datei bootmgfw.efi gefunden-

warum auch, das ist eine Windows Datei. Und in dem hier relevanten Zusammenhang – booten aus der grub CLI – findest Du die mit

sudo mount /dev/sda1 /mnt && ls /mnt/efi/microsoft/boot # wenn sda1 Deine `esp` ist

Wenn man (im EFI Modus) aus der grub CLI heraus etwas booten möchte – warum auch immer –, muß unterschieden werden zwischen den O/S Windows und Linux

  • Linux kannst Du immer über die SymLinks (die stehen immer in "/", leider beim Fossa neuerdings in "/boot"), die sich leicht finden lassen mit search -f /vmlinuz, dann mit den genannten Befehlen booten

  • Windows (im EFI) bootet nur 'durch' die Datei(en) in der esp, und die stehen eben in "/efi/microsoft/boot…" (gehört in die Rubrik: Was man weiß, was man wissen sollte). grub besitzt hier leider keine "Vervollständigung der Suche" mittels Tab ⇆ .

Gruß black tencate

Bilder

Frieder108

Avatar von Frieder108

Anmeldungsdatum:
7. März 2010

Beiträge: 9598

Berlin_1946 schrieb:

Hallo Frieder108,

was machen wir jetzt?

am besten machst du dafür im Supportbereich (einrichten + verwalten) ein eigenes Thema dafür auf.

Woher hast du das?

Das war eine Gemeinschaftsproduktion → https://thinkpad-forum.de/threads/148736-gel%C3%B6st-Fragen-zu-EFI-Dualboot?p=1491877&viewfull=1#post1491877 und https://forum.ubuntuusers.de/topic/uefi-dualboot-mit-win8-kubuntu-12-04-funzt-nic/#post-5033032 → keine Ahnung, warum das snip es nie ins Wiki geschafft hat. ☹

Ist zwar schon 8 Jahre alt, funktioniert aber auch im Jahre 2020 noch - und wenn du die beiden verlinkten Threads mal verfolgst, dann merkst du, dass ich damals selber noch ganz am Anfang in der Thematik stand. 😉

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9758

Wohnort: Münster

Berlin_1946 schrieb:

[…]

... nicht bei der UEFI-Boot-Methode.

Das finde ich sollte Eingang ins Wiki finden.

Ist drin.

Hast du einen Link, wie es bei UEFI-Boot-Methode funktioniert?

Nein, keinen Link. Aber ich habe jetzt im Wiki das Beispiel „Windows starten“ ergänzt.

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10429

Frieder108 schrieb:

Ist zwar schon 8 Jahre alt, funktioniert aber auch im Jahre 2020 noch - und wenn du die beiden verlinkten Threads mal verfolgst, dann merkst du, dass ich damals selber noch ganz am Anfang in der Thematik stand. 😉

😉 dann benötige ich noch etwas Zeit 😇

Das macht Mut, das auch du mal "klein" angefangen hast. 🤣

Mit eurer Hilfe hoffe ich auch mein Niveau zu steigen.

Danke

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10429

Hallo in die Runde,

die Vorgeschichte zu dieser Diskussion beginnt hier im GRUB_2 am 5. Februar 2022 11:12

Angaben in diesem Abschnitt GRUB 2/Shell (Abschnitt „Auswahlmenue-Modus“) funktioniert bei einigen Rechnern mit UEFI nicht mehr.

Man kann die Anzeige des Auswahlmenüs aber auch in einem solchen Fall durch Drücken der Shift-Taste während des Startvorgangs des Rechners erzwingen.

Funktioniert nur im BIOS. (Kann ich leider nicht nachprüfen. Wird aber schon stimmen, sonst hätte es bereits Proteste gegeben)

So funktioniert es bei einem Rechner der Fa. HP mit UEFI.

  • wenn auf dem Bildschirm "ESC-Taste drücken" angezeigt wird, ist das POST erfolgreich abgelaufen.

  • Esc betätigen

  • ein "Startmenü aufzurufen" erscheint, dieser ist zu markieren

  • Esc betätigen

  • Es erscheint das Grub_2-Menü

Das ist sicher so nicht für das Wiki geeignet, da es nicht zu verallgemeiner ist.

Wer kann das mal mit anderer Hardware testen, vllt lässt sich was erarbeiten, was für mehr als nur für HP passt oder noch brutaler formuliert, nur für diese UEFI- Firmware- Version. 😮

Nachtrag nur zur Verwirrung: 🤣 🤣 aber mehr zum 😢

Die Angaben aus dem UEFI-Menü:

wird dort als aktuell Version (Vers.) angeboten

BIOS Vers. L01 v02.70 # Vorsicht Falle

ME Firmware Vers. 9.0.20.144

Dort wird dann eine Einstellung für eine "Legacy-Unterstützung" angeboten. Immerhin.

Um dieses "BIOS" zu nutzen, ist das Legacy zu deaktivieren. Babylon lässt grüßen