ISO mit Grub2 booten

Eine coole neue Funktion von Grub2 ist es, dass man ISO Dateien direkt booten kann. Dieses ist sogar recht einfach implementiert. Ich habe bei mir auf meinem System ein Verzeichnis

/iso

angelegt und dort z.B. die grml64_2010.12.iso abgelegt. Nach dem Hinzuefuegen des folgenden Eintrags in die /etc/grub.d/40custom

menuentry "GRML 2010.12 64bit ISO" {
  loopback loop (hd0,msdos5)/iso/grml64_2010.12.iso
  linux    (loop)/boot/grml64/linux26 findiso=/iso/grml64_2010.12.iso boot=live quiet vga=791 noeject noprompt ignore_bootid
  initrd   (loop)/boot/grml64/initrd.gz
}

musste nur noch ein update-grub2 aufgerufen werden und schon konnte ich in meine Bootmenue die ISO Datei auswaehlen und das System starten. Wer sein System nicht wie ich in der ersten logischen Partition hat, sondern z.B. in der ersten primaeren muss natuerlich ein (hd0,0) angeben.

Ich finde das recht praktisch um auszuprobieren wie sich eine LiveCD auf dem eigenen System verhaelt oder eine alternative Distro auszuprobieren, ohne dass man einen Rohling verbraucht oder seinen USB-Stick ueberschreibt.

Wer das ganze noch Passwortgeschuetzt haben moechte muss noch zwei Kleinigkeiten hinzufuegen. Zum einen ganz  am Ende der /etc/grub.d/00_header die folgenden Zeilen einfuegen:

cat << EOF
set superusers="foobar"
password foobar baz
EOF

zum anderen noch die Zeile:

menuentry "GRML 2010.12 64bit ISO" {

abaendern in

menuentry --users foobar "GRML 2010.12 64bit ISO" {

und das update-grub2 nicht vergessen. Der User foobar ist dann superuser, was bedeutet, dass er auch fuer das editieren innerhalb der Grub2-Shell aktiv ist.

debian, grub, kernelupdate, falsches root-device

Grad mit Thomas drueber gesprochen und er meinte ich sollte mal nen Blogeintrag schreiben, weil sich das keiner durch liesst. Das Problem ist, dass bei einem Debian System, in diesem Fall Lenny auf einem Dell Poweredge 1950/2950 bei einem Kernelupdate immer automatisch auch die /boot/grub/menu.lst geupdated wird, und da dann immer ein falsches root-device genommen wird, so dass das booten scheitert. Die Ursache bei den Poweredge Systemen ist, dass sie eine Broadcom NetXtreme II Netzwerkkarte verbaut haben mit einer propietaeren Firmware, die man beim installieren via USB-Stick nachliefern muss. Der USB-Stick wird als /dev/sda und die Festplatten dann als /dev/sdb etc. erkannt. Das root-device ist danach in der fstab und menu.lst /dev/sdb. Nach dem manuellen aendern bleibt die fstab auch den rest Ihres lebens so, die menu.lst wiegesagt nicht. Das ganze kann man aendern, indem man in der /boot/grub/menu.lst die Zeile

#kopt=root=/dev/sdb1 ro

sucht und entsprechend abaendert in das _richtige_ root-device. Wichtig ist, dass man das ganze auskommentiert laesst. Wenn man ein bisschen drueber liesst, steht das da auch, aber wie Thomas schon richtig anmerkte: das liest ja eh keiner. Bei mir hat es auch mehrere Stunden gedauert ;-)