Grub2 - Bootet ein System nur über Commandline nicht über Menüeintrag

A. Dreyer (LUG-OWL) ml10227 at adreyer.com
Sat Dec 29 15:20:15 CET 2012


On 29/12/12 13:24, Stefan U. Hegner wrote:
> Moinsen,
> 
> habe gerade einen nachweihnachtlichen Grub-Koller ;-((.
> 
> Mein Rechner hat einen Raid-Controller (gebootet ist der auf /dev/sda)
> und eine alte PATA Platte (gebootet ist die auf /dev/sdb). Mein /boot
> liegt auf /dev/sda1; auf /dev/sda2 habe ich ein Ubuntu-Rettungssystem.
> 
> Grub2 scheint die zu vertauschen, was ja prinzipiell kein Problem sein
> sollte. Mein "normales" Debian wird von Grub2 wie folgt erkannt und in
> einen funktionierenden Menüeintrag verwurschtet:
> 
>     menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
>             insmod part_msdos
>             insmod ext2
>             set root='(hd1,msdos1)'
>             search --no-floppy --fs-uuid --set 3a9ce315-deb5-448a-9502-697c9f2a5922
>             echo    'Loading Linux 2.6.32-5-amd64 ...'
>             linux   /vmlinuz-2.6.32-5-amd64 root=/dev/mapper/crypt-areca1-root ro  quiet splash
>             echo    'Loading initial ramdisk ...'
>             initrd  /initrd.img-2.6.32-5-amd64
>     }
> 
> Ich möchte über Grub auch mein Rettungssystem booten. In meiner
> /boot/grub/grub.cfg habe ich über /etc/grub.d/11_ubuntu folgenden
> Menüeintrag generiert:
> 
>     menuentry "HD1-label Ubuntu 12.10-64, kernel 3.5.0-17-generic (Rettungssystem)" {
>             insmod part_msdos
>             insmod ext2
>             set root='(hd1,msdos2)'
>             echo    'Loading Ubuntu Linux 12.10 ...'
>             linux /boot/vmlinuz-3.5.0-17-generic root=/dev/disk/by-label/ubuntu-root
>             initrd /boot/intitrd.img-3.5.0-17-generic
>     }
> 
> bzw. alternativ über Verwendung der UUID:
> 
>     menuentry "HD1-uuid Ubuntu 12.10-64, kernel 3.5.0-17-generic" {
>             insmod part_msdos
>             insmod ext2
>             set root='(hd1,msdos2)'
>             search --no-floppy --fs-uuid --set ea899bc4-adc2-40fd-9d3a-b758e279bfb5
>             echo    'Loading Ubuntu Linux 12.10 ...'
>             linux /boot/vmlinuz-3.5.0-17-generic root=UUID=ea899bc4-adc2-40fd-9d3a-b758e279bfb5
>             initrd /boot/intitrd.img-3.5.0-17-generic
>     }
> 
> Wenn ich diese  Menüeinträge boote, bekomme ich Kernel-Panic, denn das
> System findet das root-Volume nicht. Im Dump sehe ich, dass als /dev/sda
> meine zweite Platte (/dev/sdb) und das optische Laufwerk (/dev/sr0)
> gefunden wird, nicht dagegen mein RAID-Controller:
> 
>     Cannot open root device "UUID=ea899 ..." (bzw. "/dev/disk/by-label ..."
>     Available partitions ... sr0 ... sda ... sda1
> 
> Aber mir scheint auch, dass die initrd gar nicht erst geladen wird. -
> Funktioniert der 3.5 er Kernel an der Stelle komplett anders?
> 
> Hatte auch noch alternativ den ubuntu-kernel und die initrd in die
> /boot-Partition nach /dev/sda1/ubuntu gepackt und auch das führt dazu,
> dass der Kernel geladen und die initrd nicht gefunden wird:
> 
>     menuentry "HD1-1-label-boot Ubuntu 12.10-64, kernel 3.5.0-17-generic (Rettungssystem)" {
>             insmod part_msdos
>             insmod ext2
>             set root='(hd1,msdos1)'
>             echo    'Loading Ubuntu Linux 12.10 ...'
>             linux /ubuntu/vmlinuz-3.5.0-17-generic root=/dev/disk/by-label/ubuntu-root
>             echo    'Loading initial Ramdisk ...'
>             initrd /ubuntu/intitrd.img-3.5.0-17-generic
>     } 
> 
> Aber was ich absolut nicht begreife ist folgendes:
> Gebe ich dagegen am Grub-Prompt die Zeilen manuell ein, werden die
> Platten nicht vertauscht (!!!) ...
> 
>     > set root='(hd0,msdos2)'
>     > linux /boot/vmlinuz-3.5.0-17-generic
>     root=/dev/disk/by-label/ubuntu-root
>     > initrd /boot/intitrd.img-3.5.0-17-generic
>     > boot
> 
> und die Kiste startet sauber das Ubuntu - alles gut! - Alternativ habe
> ich für root= schon /dev/sda2 bzw. UUID=xxxx ... und dem kernel aus
> /dev/sda1/ubuntu probiert - das alles funktioniert.
> 
> Jaaa, ich kann mir für mein Rettungssystem, was ich hoffentlich nie
> brauchen werde einen Zettel mit grub-Kommandos schreiben und den ganzen
> Kram vergessen ... aber das fände ich auch blöd, nach all den Stunden,
> die ich hieran schon gebastelt habe.
> 
> Auch würde ich gerne verstehen, wo das Problem ist (3.5er Kernel, der
> Raid, falsche Grub2-Config). Mag' mir wer einen heißen Tipp geben, wie
> ich das vielleicht doch noch hinbekomme?
> 
> LG und 1000 Dank!
> 
> Stefan.

Wie sieht deine devices.map aus? Manuell nutzt du hd0.. weiter oben ist
aber alles hd1..



Regards,
Achim Dreyer
-- 
A. Dreyer, Senior SysAdmin (UNIX&Network) / Internet Security Consultant




More information about the Linux mailing list