grub2: kopiertes system einbinden (crossposting)

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
michaa7
Beiträge: 5033
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

grub2: kopiertes system einbinden (crossposting)

Beitrag von michaa7 » 06.09.2015 18:54:38

Kann mir jemand einen funktionierenden eintrag in /etc/grub.d/40/41_custom posten? Die grundkonfiguration sollte so sein, dass grub auf festplatte x,n und das kopierte, zusätzlich zu bootende linux auf y,n liegt.

Hier habe ich im siduction forum schon herumgefragt, aber ich komme mit der info nicht klar, auch weil ich im netz keine aktuelle zusatzinfo zu --class, insmod, usw finde. Ich weiß auch nicht wie ich meinem funktionierendem system informationen zu benötigten modulen entlocken kann. /boot/grub ist eben in version 2 für normaluser ein hieroglyphendschungel.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Apfelmann
Beiträge: 669
Registriert: 15.01.2010 20:48:45
Kontaktdaten:

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von Apfelmann » 06.09.2015 20:30:05

Für grub gibt es ein Sammelsurium an skripten und dateien, in diesen Dateien sollte von Hand nichts verändert werden,

am einfachsten ist es das zweite zusätzliche System einzurichten und falls grub installiert werden soll, nur auf die Partition des zweiten Systems, nicht in den mbr,

im ersten System wird danach ein update-grub als root durchgeführt und damit ist das zweite System auch im Bootmenü

LG

michaa7
Beiträge: 5033
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von michaa7 » 06.09.2015 21:38:57

Apfelmann hat geschrieben:Für grub gibt es ein Sammelsurium an skripten und dateien, in diesen Dateien sollte von Hand nichts verändert werden,

am einfachsten ist es das zweite zusätzliche System einzurichten und falls grub installiert werden soll, nur auf die Partition des zweiten Systems, nicht in den mbr,

im ersten System wird danach ein update-grub als root durchgeführt und damit ist das zweite System auch im Bootmenü

LG
Ich editiere nichts was nicht dazu gedacht ist (40_custom). Ich möchte das zweite system ohne chainload laden, das sollte durch den richtigen eintrag in die 40_custom möglich sein ... aber nur wenn man genau weiß wie das geht. Ich weiß es offensichtlich nicht.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von smutbert » 06.09.2015 23:55:10

michaa7 hat geschrieben:Kann mir jemand einen funktionierenden eintrag in /etc/grub.d/40/41_custom posten? Die grundkonfiguration sollte so sein, dass grub auf festplatte x,n und das kopierte, zusätzlich zu bootende linux auf y,n liegt.
Sich an der Festplattennummerierung zu orientieren kann schief gehen, weil die sich durchaus ändern kann, ganz ohne Anlass, bei einem neuen Kernel, durch einen steckengebliebenen USB-Stick,… aber mit UUIDs oder wahlweise stattdessen mit den Dateisystemlabels ist es nicht wirklich schwieriger.

Ein Eintrag könnte zB so aussehen, in zwei Varianten, wobei zweitere, die üblicherweise in / liegenden symbolischen Links zu Kernel und initrd nutzt, was aber nur funktioniert, wenn /boot nicht auf einem eigenen Dateisystem liegt:

Code: Alles auswählen

menuentry 'Debian Test Variante 1' {
        search --no-floppy --fs-uuid --set=root 5d6a4678-adc1-497e-92df-4ec223aaa163
        linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=5d6a4678-adc1-497e-92df-4ec223aaa163 ro quiet
        initrd /boot/initrd.img-3.16.0-4-amd64             
}

menuentry 'Debian Test Variante 2' {
        search --no-floppy --fs-uuid --set=root 5d6a4678-adc1-497e-92df-4ec223aaa163
        linux  /vmlinuz root=UUID=5d6a4678-adc1-497e-92df-4ec223aaa163 ro quiet
        initrd  /initrd.img                
}
Die erste Variante hat den Nachteil, dass sie bei einem neuen Kernel mit einem anderen Dateinamen angepasst werden muss, deshalb noch eine Variante, bei der du nicht den Kernel des anderen Systems lädst, sondern lediglich die grub-Konfigurationsdatei, wodurch das damit aufgerufene Menü immer zum aktuellen Kernel des anderen Systems passen sollte

Code: Alles auswählen

menuentry 'GRUB (Debian Test Variante 3)' {
        search --no-floppy --fs-uuid --set=root 5d6a4678-adc1-497e-92df-4ec223aaa163
        configfile /boot/grub/grub.cfg
}
Anpassungen sind natürlich notwendig und wenn es nur die richtige UUID ist, die du hineinschreiben musst.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von rendegast » 07.09.2015 03:02:05

Eigentlich sollte das per default aktivierte Skript Debianos-prober bei einem 'update-grub' die gefundenen Kernel einbinden.

Eventuelles Problem dabei,
alle Kernel bekommen dieselben Zusatzoptionen
(aus /etc/default/grub[.d/*.cfg]).
Die bisher einfachste Möglichkeit bei grub2 für spezielle Optionen per kernel scheint mir ein Kopieren des entsprechenden Abschnitts aus der grub.cfg in eine der custom-Dateien, und Anpassung desselben.
(Ich bevorzuge da die /boot/grub/custom.cfg)

Das in grub1 noch mögliche (übersichtliche) chainloading eines Bootloaders des alternativen Systems aus dessen Dateisystem ist bei grub2 so nicht mehr möglich/vorgesehen.
(grub2 WILL in den MBR, verweigert sich bei Schreiben in ein Dateisystem.
grub2 erschwert das alternative Schreiben in eine leere Partition (loop) dann durch Bestehen auf eine Partitonierung derselben verbunden mit einem dann noch vorzufindendem Dateisystem auf einer dieser Pseudo-Partitionen.
Dann bin ich auch nicht mehr weitergekommen.)



Damit grub2 in anderer Art kernelspezifische Optionen auswertet/setzt,
müßte wohl
/usr/sbin/grub-mkconfig
/usr/share/grub/grub-mkconfig_lib
entsprechend gepatcht werden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

pferdefreund
Beiträge: 3800
Registriert: 26.02.2009 14:35:56

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von pferdefreund » 07.09.2015 07:11:35

Oder lilo - der kann auch noch chainloading - da bleibt das Hauptsystem aussen vor und man ist flexibel. So kein UEFI (Was lilo wohl auch mittlerweile können soll) hineinspielt, ist das für mich persönlich die verständlichere Bootloader-Einrichtung. Aber das ist Geschmackssache. Zumindest habe ich mit Lilo schon 2 LInux parallel zu Windows problemlos gestartet - wobei Windows, da entsorgt, keine Rolle mehr spielt.

Benutzeravatar
detix
Beiträge: 1744
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von detix » 07.09.2015 07:51:48

Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

pferdefreund
Beiträge: 3800
Registriert: 26.02.2009 14:35:56

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von pferdefreund » 07.09.2015 19:09:50

Das wäre schade, da muss ich mir unbedingt den Quellcode wo wegsichern. Ich liebe den - einfach und verständlich zu konfigurieren und tut was er soll. So wie mein bereits offiziell ausgestorbener xmms mit eq-plugin. Da hab ich auch die Quellen und der kann bei mir sogar jack nachdem ich den Quelltext des im Netz gefundenen Jack-Plugins angepasst habe. Ich liebe Open Source, da kann man wenigstens was drehen...

michaa7
Beiträge: 5033
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von michaa7 » 09.09.2015 10:35:09

Ich habe es nun nach vielen missverständnissen so hinbekommen, dass ich in /etc/grub.d/11_playground folgendes geschrieben habe:
#!/bin/sh
exec tail -n +3 $0
menuentry "siduction_experimental"{
insmod gzio
insmod part_msdos
set root='hd2,msdos1'
linux /vmlinuz root=UUID=nn-nnn-nnn-nnn ro quiet nosplash
initrd /initrd.img
}
und das funktioniert.

Dumm war dass zunächst die ersten beiden zeilen fehlten, und nachdem ich den fehler behoben habe ich nicht verstand dass der in der konsole sichtbare output von "update-grub" *nicht* alle einträge anzeigt, sondern offenbar nur den osprober anteil oder wenig mehr. Dadurch bekam ich gar nicht mit, dass alles längst funktionierte bis ich mir das ergebnis direkt in /boot/grub/grub.cfg angeschaut habe.

Ziel des ganzen war ja händisch einen eintrag zu erzeugen, den ich nicht so leicht mit anderen verwechsle.
smutbert hat geschrieben: Sich an der Festplattennummerierung zu orientieren kann schief gehen, ...
das mache ich natürlich nicht, das beispiel sollte nur die lage auf zwei unterschiedlichen festplatten anzeigen.
...
smutbert hat geschrieben:...deshalb noch eine Variante, bei der du nicht den Kernel des anderen Systems lädst, sondern lediglich die grub-Konfigurationsdatei, wodurch das damit aufgerufene Menü immer zum aktuellen Kernel des anderen Systems passen sollte

Code: Alles auswählen

menuentry 'GRUB (Debian Test Variante 3)' {
        search --no-floppy --fs-uuid --set=root 5d6a4678-adc1-497e-92df-4ec223aaa163
        configfile /boot/grub/grub.cfg
}
...
Funktioniert das mit grub2 (ich bin grad verwirrt ob es in grub_legacy auch eine grub.cfg gab)? Soweit das für grub2 gilt wäre es das ausprobieren wert.

@rendegast
rendegast hat geschrieben:Eigentlich sollte das per default aktivierte Skript Debianos-prober bei einem 'update-grub' die gefundenen Kernel einbinden.
Das klappt und klappte natürlich. Mein problem dabei sind die so generierten einträge die einfach zu wenig eindeutig sind um verwechslungen sicher auszuschließen.

rendegast hat geschrieben:(grub2 WILL in den MBR, verweigert sich bei Schreiben in ein Dateisystem.
grub2 erschwert das alternative Schreiben in eine leere Partition (loop) dann durch Bestehen auf eine Partitonierung derselben verbunden mit einem dann noch vorzufindendem Dateisystem auf einer dieser Pseudo-Partitionen.
Dann bin ich auch nicht mehr weitergekommen.)
Das hört sich im siduction manual aber ganz anders an.


Danke an alle.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von smutbert » 09.09.2015 11:56:10

michaa7 hat geschrieben:Funktioniert das mit grub2 (ich bin grad verwirrt ob es in grub_legacy auch eine grub.cfg gab)? Soweit das für grub2 gilt wäre es das ausprobieren wert.
Ja, das ist für grub2. Im alten Grub hieß die Konfigurationsdatei üblicherweise menu.lst und sah noch ein bißchen anders aus.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von rendegast » 09.09.2015 16:14:29

michaa7 hat geschrieben:
rendegast hat geschrieben: mein Schmodder
Das hört sich im siduction manual aber ganz anders an.
Ich sehe dort nur 'grub-install >>>>> MBR',
nix von 'grub-install ... /dev/sdx1' (also Partition) oder "embedded".

Erstelle eine leere oder formatierte Partition, versuche es. (jessie, grub-pc 2.02~beta2)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Bequimao
Beiträge: 112
Registriert: 29.01.2011 17:05:11
Wohnort: Minas Gerais, Bras.

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von Bequimao » 09.09.2015 19:19:52

Hallo,

Ohne den ganzen Thread gelesen zu haben: Installation in die Partition wird von den neueren grub-Versionen nicht mehr unterstützt. Es kommt dann eine Fehlermeldung, daß die Installation nur mit Blocklists geht und diese instabil sind.

Installation in die Partition geht nur mit

Code: Alles auswählen

# grub-install --force /dev/sdx1
Ich mache es in meinem Multiboot-System so: Bei einer neuen Installation installiere ich grub immer in den MBR (oder die EFI-Systempartition). Anschließend boote ich die Partition, die den Bootloader übernehmen soll, oder mache ein #chroot in die Partition, falls das Booten nicht geht.

Nach

Code: Alles auswählen

# grub-install /dev/sda
# update-grub
kommt es vor, daß neue Installationen nicht erkannt werden, insbesondere logische Partitionen im LVM. Das folgende ist als Kochrezept zu verstehen, nicht als exakte Anweisung.
Ich reboote und führe dann aus:

Code: Alles auswählen

# grub-mkdevicemap
update-initramfs bzw. mkinitrd

und nochmals

Code: Alles auswählen

# grub-install /dev/sda
# update-grub
Wenn dann eine Partition vom os-prober immer noch nicht gefunden wird, hilft dann ein Mounten. Ich komme jedenfalls immer zum Ziel, ohne die Vorgänge exakt zu verstehen.

Viele Grüße
Bequimão
Bequimão (gesprochen: Be-ki-mãu) ist Manuel Beckmann, brasilianischer Revolutionär in Maranhão (1630 - 1685).

michaa7
Beiträge: 5033
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von michaa7 » 09.09.2015 20:52:04

[quote="rendegast"---
[/quote] Ich sehe dort nur 'grub-install >>>>> MBR',
[/quote]

Ok, ich bin hier alles andere als ein fachmann, aber was hier steht interpretiere ich zumindest so dass es unter grub2 gehen sollte. Habe es aber nicht ausprobiert. Ob neueste grub2 varianten dies vielleicht nicht mehr unterstützen und das handbuch noch nicht wieder up-to-date ist weiß iach auch nicht. Werde ich mal nachfragen.
Stelle bei der Installation eines weiteren Betriebssystems sicher, dass Grub nicht in den MBR, sondern in die Partition des neuen Betriebssystems geschrieben wird:
grub-mkdevicemap --no-floppy
update-grub

Warnhinweise können ignoriert werden.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von rendegast » 09.09.2015 22:36:36

Den angeführten Satz habe ich zwar überlesen, da auf "grub-install" fokussiert,
aber lasse ich jessie sprechen:

Code: Alles auswählen

# file -s /dev/sdb1
/dev/sdb1: Linux rev 1.0 ext4 filesystem data, UUID=c28ff176-4176-4007-afc7-a1736200fa85, volume name "neu" (extents) (huge files)

# grub-install -V
grub-install (GRUB) 2.02~beta2-22

# grub-install [--force] --recheck --no-floppy /dev/sdb1
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: error: embedding is not possible, but this is required for cross-disk install.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Taomon
Beiträge: 627
Registriert: 08.03.2011 16:34:38
Lizenz eigener Beiträge: GNU Free Documentation License

Re: grub2: kopiertes system einbinden (crossposting)

Beitrag von Taomon » 26.09.2015 19:38:03

Für den Start von Open Sus von USB-Platte habe ich mir eine eigenes Skript gebastelt unter /etc/grube.d/

Code: Alles auswählen

#! /bin/sh -e
echo "Füge OpenSuse 11.3 hinzu" >&2
  cat << EOF
menuentry "OpenSuse - 2.6.34.10-0.4" {
	insmod usb
	insmod ext2
	set root='(hd1,4)'
	search --no-floppy --fs-uuid --set 900a84de-1d59-4d49-bcb2-ba8537043478
	linux /vmlinuz-2.6.34.10-0.4-default root=UUID=ea001ae4-78c7-4094-821c-8b216e118a7b resume=usb-ICY_BOX_IB-272StU-OT_20110428019D-0:0-part7 splash=silent quiet showopts vga=0x034d
	initrd /initrd-2.6.34.10-0.4-default
}

menuentry "Failsafe -- openSUSE 11.3 - 2.6.34.10-0.2" {
	insmod usb
	insmod part_msdos
	insmod ext2
	set root='(hd1,4)'
	search --no-floppy --fs-uuid --set 900a84de-1d59-4d49-bcb2-ba8537043478
	linux /boot/vmlinuz-2.6.34.10-0.2-desktop root=UUID=ea001ae4-78c7-4094-821c-8b216e118a7b showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x034d
	initrd /boot/initrd-2.6.34.10-0.2-desktop
}
EOF
So mal als Gerüst zum anpassen. Mit

Code: Alles auswählen

grub-mkconfig
wurde dann de Eintrag erstellt und

Code: Alles auswählen

updtae-grub
.

Gruß Taomon
Bitte gelegentliche Schreibfehler übersehen. Ich habe ADHS. Danke.

Antworten