staging.inyokaproject.org

GRUB_2/Skripte

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

syscon-hh

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

Lasall schrieb:

Hi,

hat der Zusatz "quiet splash" bei Plymouth noch Effekt?

Ja, das wirkt sich nach wie vor aus - diese Einträge sind also nicht reine Zierde.

  • ohne splash

Die Anzeige von Plymouth wird nicht mehr angezeigt - der Monitor bleibt farblos bis zum Login.

  • ohne quiet

    • aber splash eingetragen

splash überschreibt quiet und es erfolgt eine normale Anzeige von Plymouth.

  • weder quiet noch splash

Auf dem Monitor wird die Ausgabe des Bootvorganges angezeigt. Vorrausgesetzt es gibt keine weitere Option wie z.B.

  • $vt_handoff

Wurde diese Option gesetzt, dann bleibt auch ohne quiet die Anzeige aus → nicht ganz, der Monitor zeigt dann das gesetzte VT an (in der Regel VT 7), der Kernel gibt die Bootinformationen weiterhin auf VT 1 aus.

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi syscon-hh,

vielen Dank für deine Erklärung und Aufklärung ☺ !

Gruss Lasall

u1000

Anmeldungsdatum:
2. Oktober 2011

Beiträge: 1850

Hat jemand mal in letzter Zeit den Abschnitt "Von ISO-Dateien mittels loopback booten" getestet? Bei mir funktionieren die Beispiele nicht, beim Booten kommt z.B. "file not found"

Nach meiner Meinung nach sind in den Scripten Fehler:

1. Beispiel Ubuntu-Iso

export GRUB_LOOPBACK_ISO_FILE="/Pfad_zum_ISO/..."

Wie soll der Teil "Pfad_zum_ISO", also z.B. /home/user/hans/xzy.iso funktionieren ? Beim Booten gibts keine fstab, d.h. ein /home/user/... ist undefiniert.

2. Beispiel Parted Magic Iso

Hier wird der Pfad zum Iso schon besser per (hd0,3) oder /dev/sda3/pmagic-4.4.iso definiert. Woher kommen allerdings im Teil

initrd (loop)/pmagic/initramfs

die Unter-Pfade "../pmagic/.." her ? Diese sind doch ebenfalls undefiniert ? Auch Fehlen die Dateisystemtreiber part_msdos ntfs und ext2 ?

Vielleicht kann mir jemand helfen, ggf. habe ich hier auch was falsch verstanden. Was ich suche sind einfachste Beispiele um z.B.

  • gparted-live-0.13.1-2

  • lubuntu-12.04-desktop-amd64

mal zum Testen zu Booten. Vielen Dank

u1000

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 4768

Also erstens sind die Beispiele ja schon mal ein paar Jahre alt. Dann gilt es zu beachten, dass man bei Pfaden die GRUB-Geräte-Notation verwendet. Am besten drückst Du im GRUB-Menü beim Rechner-Start mal "C", um in die GRUB-Shell zu gelangen. ls listet Dir dann, wie GRUB aktuell - das hat sich über die zwei Jahre z.B. ein wenig geändert, Geräte und Partitionen bezeichnet.

Die dritte Partition auf der ersten Platte wäre derzeit also:

(hd0,msdos3)

wenn es sich um eine Festplatte mit MBR-Struktur handelt oder

(hd0,gpt3)

wenn es sich um eine Platte mit GPT-Struktur handelt.

Dann gilt es zu berücksichtigen, dass Pfadangaben unterschiedlich angegeben werden können - es gibt also immer mehrere Wege, wie auch die beiden Beispiele im Artikel darlegen:

Beim Ubuntu-Beispiel wird zunächst mittels root auf (hd0,3) verwiesen. Alle weiteren Pfadangaben gehen dann davon aus - es sei denn Du würdest einem Pfad ausdrücklich ein anderes Gerät voranstellen. D.h. im Ubuntu-Beispiel könntest Du das mit dem "export" auch weglassen und stattdessen so schreiben:

loopback loop (hd0,msdos3)/iso/ubuntu-9.10-desktop-i386.iso

Das Ubuntu-Iso wäre dann in dem Fall im Verzeichnis /iso auf /dev/sda3.

Woher kommen allerdings im Teil

initrd (loop)/pmagic/initramfs

die Unter-Pfade "../pmagic/.." her ? Diese sind doch ebenfalls undefiniert ?

Doch, das sind dann Pfadangaben innerhalb des ISOs. Also alles, was ein Vorangestelltes (loop) hat verweist auf die ISO-Datei, die Du weiteroben mittels loopback einbindest. Oder was meinst Du sonst mit "undefiniert"? Sofern es die Datei für die Ramdisk /pmagic/initramfs in neueren Parted-Magic-ISOs nicht mehr gibt, musst Du halt nachschauen, wie sie jetzt lautet.

Um das ganze zu lernen, empfehle ich Dir wie gesagt den Gang in die GRUB-Shell, da kannst Du das alle schön einzeln Befehl für Befehl austesten.

Gruß, Martin }

u1000

Anmeldungsdatum:
2. Oktober 2011

Beiträge: 1850

Hi Newubunti, vielen Dank für die Denkanstöße.

Die korrekten Pfade habe ich mit grub rescue gefunden, in meinem Fall (auf einem NTFS Filesystem)

(hd0,msdos7)/lubuntu-12.04-desktop-amd64.iso
(hd0,msdos7)/ubuntu-12.10-beta1-desktop-amd64+mac.iso
(hd0,msdos7)/gparted-live-0.13.1-2.iso

Zudem habe ich die Isofiles inspiziert, und die Pfade innerhalb der ISO's zu den Dateien vmlinuz und initrd zu finden.

Ubuntu / Lubuntu: 
  /casper/vmlinuz
  /casper/initrd.lz
gparted
  /live/vmlinuz
  /live/initrd.img

Leider funktionieren alle 3 grub Einträge nicht. Bei allen kommt erstmal ein "no such device: ...iso". Nach einer Denkpause von 2-3 Sekunden wird dann doch gebootet. Bei den beiden Ubuntus gibts dann einen Fehler, dass /dev/sr0 nicht gefunden wird. Man landet dann bei allen in einer Busybox mit einem (initramfs) Prompt. Ausser einem "reboot" habe ich hier keine Ahnung wie es weiter geht ☺

Aktueller Stand:

#! /bin/sh -e
export GRUB_LOOPBACK_ISO_FILE="(hd0,msdos7)/lubuntu-12.04-desktop-amd64.iso"
export GRUB_LOOPBACK_ISO_FILE2="(hd0,msdos7)/ubuntu-12.10-beta1-desktop-amd64+mac.iso"
echo "Adding Live CD entry" >&2

cat << EOF
menuentry 'lubuntu-12.04-desktop-amd64' {
	insmod part_msdos
	insmod ntfs
	insmod ext2
	search -n -f --set=root ${GRUB_LOOPBACK_ISO_FILE}
	loopback loop ${GRUB_LOOPBACK_ISO_FILE}
	linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=${GRUB_LOOPBACK_ISO_FILE} ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX} quiet splash
	initrd (loop)/casper/initrd.lz
}

menuentry 'ubuntu-12.10-beta1-desktop-amd64+mac.iso' {
	insmod part_msdos
	insmod ntfs
	insmod ext2
	search -n -f --set=root ${GRUB_LOOPBACK_ISO_FILE2}
	loopback loop ${GRUB_LOOPBACK_ISO_FILE2}
	linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=${GRUB_LOOPBACK_ISO_FILE2} ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX} quiet splash
	initrd (loop)/casper/initrd.lz
}

menuentry "gparted-live-0.13.1-2.iso" {
	insmod part_msdos
	insmod ntfs
	insmod ext2
	search -n -f --set=root (hd0,msdos7)/gparted-live-0.13.1-2.iso
	loopback loop (hd0,msdos7)/gparted-live-0.13.1-2.iso
	linux (loop)/live/vmlinuz isofrom=(hd0,msdos7)/gparted-live-0.13.1-2.iso edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=de
	initrd (loop)/live/initrd.img
}
EOF

Laut wiki gibt es noch den Abschnitt "Kernel-Boot-Optionen für ISO ermitteln" - ist das der Punkt, wo es bei mir ggf stockt ?

syscon-hh

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

Hallo u1000, nimm bitte in der Deklaration folgende Änderung vor:

export GRUB_LOOPBACK_ISO_FILE="/lubuntu-12.04-desktop-amd64.iso"

Die anderen Einträge sinngemäß - Grub soll schließlich nur den File suchen und dabei das Laufwerk bestimmen / zuordnen!!

Das bedeutet aber, dass auf dem Device /dev/sda7 auch diese ISO's direkt liegen müssen!!!

gruß syscon-hh

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 4768

u1000 schrieb:

Laut wiki gibt es noch den Abschnitt "Kernel-Boot-Optionen für ISO ermitteln" - ist das der Punkt, wo es bei mir ggf stockt ?

Ja, neben dem, was syscon-hh erläutert hat. Bei der export-Zeile darf natürlich kein Gerät stehen.

Und ja, die Kernel-Optionen sind nicht für alle ISO bzw. Systeme gleich. Die musst Du Dir aus den entsprechenden Dateien aus dem ISO heraussuchen.

Gruß, Martin

u1000

Anmeldungsdatum:
2. Oktober 2011

Beiträge: 1850

Danke, Newubunti, syscon-hh !

Ubuntu 12.04 & 12.10 lassen sich nun einwandfrei Booten. Das ist ja klasse: Neue Distro ausprobieren, keine CD brennen, keinen USB Stick raussuchen, echte Hardware und keine VM. Und das Booten ist rasant schnell...

Mit gparted klappt es noch nicht (Varianten a/b/c). Das wäre aber auch nicht schlimm, da das sicher ein ganz schlechtes Beispiel wäre, mit einem gparted das eigene Filesystem, wo das iso liegt zu verändern ☺

Daher nur zur Info halber, habe hier die Kernel-Optionen gefunden, aber noch nicht getestet:

gparted-live-0.13.1-2.iso –> /isolinux/isolinux.cfg

 kernel /live/vmlinuz
  append initrd=/live/initrd.img boot=live config  noswap  ip=frommedia  nosplash

Verwirrt bin ich noch durch die unterschiedlichen Komandos in der linux... Zeile. Hier werden, so wie ich verstanden habe Kernel-Optionen übergeben, aber was sind isofrom= oder iso-scan/filename= ?

Aktueller Stand mit Ubuntu 12.04 & 12.10 , sowie 3 gparted Varianten:

#! /bin/sh -e
export GRUB_LOOPBACK_ISO_FILE1="/lubuntu-12.04-desktop-amd64.iso"
export GRUB_LOOPBACK_ISO_FILE2="/ubuntu-12.10-beta1-desktop-amd64+mac.iso"
export GRUB_LOOPBACK_ISO_FILE3="/gparted-live-0.13.1-2.iso"

echo "Adding Live CD entry\n\t${GRUB_LOOPBACK_ISO_FILE1}\n\t${GRUB_LOOPBACK_ISO_FILE2}\n\t${GRUB_LOOPBACK_ISO_FILE3}" >&2

cat << EOF
submenu "ISO Live CD @ loopback .." {

menuentry "${GRUB_LOOPBACK_ISO_FILE1}" {
	insmod part_msdos
	insmod ntfs
	insmod ext2
	search -n -f --set=root ${GRUB_LOOPBACK_ISO_FILE1}
	loopback loop ${GRUB_LOOPBACK_ISO_FILE1}
	linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=${GRUB_LOOPBACK_ISO_FILE1}
	initrd (loop)/casper/initrd.lz
}

menuentry "${GRUB_LOOPBACK_ISO_FILE2}" {
	insmod part_msdos
	insmod ntfs
	insmod ext2
	search -n -f --set=root ${GRUB_LOOPBACK_ISO_FILE2}
	loopback loop ${GRUB_LOOPBACK_ISO_FILE2}
	linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=${GRUB_LOOPBACK_ISO_FILE2}
	initrd (loop)/casper/initrd.lz
}

menuentry "${GRUB_LOOPBACK_ISO_FILE3} a" {
	insmod part_msdos
	insmod ntfs
	insmod ext2	
	search -n -f --set=root ${GRUB_LOOPBACK_ISO_FILE3}
	loopback loop ${GRUB_LOOPBACK_ISO_FILE3}
	linux (loop)/live/vmlinuz isofrom=${GRUB_LOOPBACK_ISO_FILE3} edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=de
	initrd (loop)/live/initrd.img
}

menuentry "${GRUB_LOOPBACK_ISO_FILE3} b" {
	insmod part_msdos
	insmod ntfs
	insmod ext2	
	search -n -f --set=root ${GRUB_LOOPBACK_ISO_FILE3}
	loopback loop ${GRUB_LOOPBACK_ISO_FILE3}
	linux (loop)/live/vmlinuz isofrom=/dev/sda7${GRUB_LOOPBACK_ISO_FILE3} edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=de
	initrd (loop)/live/initrd.img
}

menuentry "${GRUB_LOOPBACK_ISO_FILE3} c" {
	insmod part_msdos
	insmod ntfs
	insmod ext2	
	search -n -f --set=root ${GRUB_LOOPBACK_ISO_FILE3}
	loopback loop ${GRUB_LOOPBACK_ISO_FILE3}
	linux (loop)/live/vmlinuz boot=live iso-scan/filename=${GRUB_LOOPBACK_ISO_FILE3}
	initrd (loop)/live/initrd.img
}
}
EOF

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 10674

Hej,

(?) evt. 'falsch' gedacht? - > Starten-von-USB

...Liegt das Zielsystem auf einem externen Datenträger
...

....
menuentry "Ubuntu, auf externer Festplatte" {
insmod usb
insmod ext2
set root='(hd0,1)' #...(hd(0,1)
....

Gruß black tencate

syscon-hh

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

black tencate schrieb:

(?) evt. 'falsch' gedacht? - > Starten-von-USB

...Liegt das Zielsystem auf einem externen Datenträger

Ich verstehe jetzt die Frage / den Einwurf nicht!

Sobald man von einer externen Festplatte / USB-Stick startet, ist das für GRUB 2 immer das

  • erste Device - also = 0 (Null)

Einfach ausprobieren und in der Grub-Shell mal mit ls abfragen.

Falls es um die Schreibweise geht - dann ist (hd0,1) richtig - einfach mal in eine fertige grub.cfg schauen.

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 10674

Hej syscon-hh,

syscon-hh schrieb:

... Ich verstehe jetzt die Frage / den Einwurf nicht!

ich interpretiere die Passage so, daß ich einen grub auf der internen Platte starte, und von dort aus ein externes device (USB) z. b. per "chainload" booten möchte, wozu sollte ich sonst ein script verwenden? (wenn ein Ubuntu/grub auf einer ext. Platte installiert ist, und von der gebootet wird, ist das doch obsolet, oder?)

Der Einwand deshalb, weil ich gerade mit einem USB3 Stick so meine Problemchen habe - > usb3-stick-bootet-nur-wenn-hdd-abwesend.

Gruß black tencate

lionlizard

Avatar von lionlizard

Anmeldungsdatum:
20. September 2012

Beiträge: 6244

Ich habe gerade ein Iso-file von der Festplatte eingebunden. Dabei habe ich festgestellt, dass entgegen des Beispiels für das Booten des Parted Magic Iso im Skript für /Pfad_zum_Isofile/isofile.iso das Laufwerk nicht enthalten sein darf. Dieses wird durch die Abfrage

search -f  /Pfad_zum_Isofile/isofile.iso 

ermittelt. Sieht man auch, wenn man das in der Grub-shell eingibt. Ich glaube, dass sollte so mit aufgenommen werden.

syscon-hh

Anmeldungsdatum:
8. Oktober 2005

Beiträge: 10220

lionlizard schrieb:

Ich habe gerade ein Iso-file von der Festplatte eingebunden. Dabei habe ich festgestellt, dass entgegen des Beispiels für das Booten des Parted Magic Iso im Skript für /Pfad_zum_Isofile/isofile.iso das Laufwerk nicht enthalten sein darf. Dieses wird durch die Abfrage

search -f  /Pfad_zum_Isofile/isofile.iso 

ermittelt. Sieht man auch, wenn man das in der Grub-shell eingibt. Ich glaube, dass sollte so mit aufgenommen werden.

Teste das bitte aus und ergänze das WIKI - sicherlich kein Problem für Dich.

Wie das aussehen muss/kann, steht ja ein Kasten höher beim "Ubuntu.ISO" - insbesondere die "alte" Zeile 6 mit

isofrom=/dev/sda3/pmagic-4.4.iso

muss dann auch mit einbezogen werden (UUID verwenden ist wohl sicherer).

gruß syscon-hh

lionlizard

Avatar von lionlizard

Anmeldungsdatum:
20. September 2012

Beiträge: 6244

Ich habe da wohl etwas vermixt. Also das Parted Magic- Beispiel funktioniert, weil dort nicht

 search -f -n --set=root

verwendet wird. Aber bei dem Linuxbeispiel habe ich einen entsprechnenden Eintrag gemacht. Auch einen Hinweis, dass man das /isodevice aushängen muss, wenn man installieren will, hielt ich für angebracht.

Ich hoffe das geht so.

lg

lionlizard

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 10674

Hej lionlizard,

lionlizard schrieb:

... Auch einen Hinweis, dass man das /isodevice aushängen muss, wenn man installieren will, hielt ich für angebracht.

hast Du das denn getestet? In Deinem Fall war ja eine Partitionierung nicht nötig, wäre also interessant zu wissen, ob das immer erforderlich ist.

Gruß black tencate