Grub2 findet nur Installation auf sda1.

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
hermelin
Beiträge: 149
Registriert: 18.07.2008 11:10:19

Grub2 findet nur Installation auf sda1.

Beitrag von hermelin » 13.08.2012 14:38:49

Hallo,

Ich habe folgendes gemacht. Ich habe eine debian installation auf sda1, sdb1 und sdc1. Sdc1 ist wheezy, sdb1 ist squeeze amd64. Ich
habe nun auf sda1 ein squeeze amd64 installiert und die Verzeichnisse /boot und /etc auf sdb1 gesichert.

Dann habe ich den Inhalt von sdb1 nach sda1 kopiert. Ich habe also eine Kopie von sdb1 erstellt. Das Hauptgrub ist das von sda1, welches in
den MBR von sda installiert wurde. Für sdb1 und sdc1 habe ich einen extra Eintrag in die Datei /etc/grub.d/40_custom geschrieben. Grub wurde da in
den Anfang der Partition also nach sdb1 bzw, sdc1 installiert. Das funktioniert auch.

Ich habe nun von sdb1 die Sicherungen von sda1 für Grub zurüchgesichert. Auch die fstab.

#!/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 "chainloader fuer wheezy auf sdc1"{
set root=(hd2,1)
chainloader +1
}
menuentry "AMD-64"{
set root=(hd1,1)
chainloader +1
}

Ich habe dann noch in /etc/default die Datei grub angepasst und update-grub ausgeführt(sda1). Das merkwürdige ist nun, daß nur sda1 in der grub.cfg
aufgeführt wurde, sdb1 und sdc1 nicht.? D.h. das sdb1 und sdc1 zwar über die Extra Einträge (chainloader+1) gebootet werden
können, aber von update-grub selbst nicht gefunden werden. D.h. es ist kein Menueeintrag vorhanden. Ich hatte auch via
Rettungsmodus versucht (von cd gebootet) Grub zu reparieren, das hatt aber nicht funktioniert.
Anbei die grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set b2531a0e-020f-4310-9cd4-fa97d1d3edbc
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=1680x1050x32
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set b2531a0e-020f-4310-9cd4-fa97d1d3edbc
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
set timeout=55
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set b2531a0e-020f-4310-9cd4-fa97d1d3edbc
insmod png
if background_image /usr/share/images/desktop-base/spacefun-grub.png; then
set color_normal=light-gray/black
set color_highlight=white/black
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
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='(hd0,msdos1)'
search --no-floppy --fs-uuid --set b2531a0e-020f-4310-9cd4-fa97d1d3edbc
echo 'Loading Linux 2.6.32-5-amd64 ...'
linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=b2531a0e-020f-4310-9cd4-fa97d1d3edbc ro pnpbios=off vga=0x319
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-amd64
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set b2531a0e-020f-4310-9cd4-fa97d1d3edbc
echo 'Loading Linux 2.6.32-5-amd64 ...'
linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=b2531a0e-020f-4310-9cd4-fa97d1d3edbc ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-amd64
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# 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 "chainloader fuer wheezy auf sdc1"{
set root=(hd2,1)
chainloader +1
}
menuentry "AMD-64"{
set root=(hd1,1)
chainloader +1
}
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Wo hakt es da.?
Tschau
Hermann

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: Grub2 findet nur Installation auf sda1.

Beitrag von gbotti » 13.08.2012 15:51:13

Hi.
menuentry "chainloader fuer wheezy auf sdc1"{
set root=(hd2,1)
chainloader +1
}
menuentry "AMD-64"{
set root=(hd1,1)
chainloader +1
}
### END /etc/grub.d/40_custom ###
Wenn auf der zweiten / dritten Platte kein Bootloader installiert ist, wird dir das nichts bringen. Ich bin mir nicht mal sicher, ob das so funktionieren würde, wenn ein Bootloader installiert ist.

Einen Linux-Kernel startet man mit GRUB normalerweise so, wie es schon weiter oben in Deiner Config vorkommt:

Code: Alles auswählen

menuentry 'Debian WHEEZY' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
echo	'Loading OS ...'
linux	/boot/vmlinuz-DEINE_VMLINUZ-DATEI root=UUID=UUID_DES_WHEEZY-SYSTEMS ro single 
echo	'Loading initial ramdisk ...'
initrd	/boot/initrd.img-DEINE_INITRD
Ich übernehme mal keine Funktionsgarantie dafür, da ich kein Vergleichssystem zum Testen hier habe :)
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

hermelin
Beiträge: 149
Registriert: 18.07.2008 11:10:19

Re: Grub2 findet nur Installation auf sda1.

Beitrag von hermelin » 13.08.2012 16:01:23

gbotti hat geschrieben:Hi.
menuentry "chainloader fuer wheezy auf sdc1"{
set root=(hd2,1)
chainloader +1
}
menuentry "AMD-64"{
set root=(hd1,1)
chainloader +1
}
### END /etc/grub.d/40_custom ###
Wenn auf der zweiten / dritten Platte kein Bootloader installiert ist, wird dir das nichts bringen. Ich bin mir nicht mal sicher, ob das so funktionieren würde, wenn ein Bootloader installiert ist.

Doch das funktioniert. Grub ist da in sdb1 bzw. sdc1 installiert worden.

Einen Linux-Kernel startet man mit GRUB normalerweise so, wie es schon weiter oben in Deiner Config vorkommt:
[....]

Ich übernehme mal keine Funktionsgarantie dafür, da ich kein Vergleichssystem zum Testen hier habe :)
Das müßte Grub aber normalerweise beim Ausführen von "update-grub" selbst finden.? Wieso klappt das nicht.

Tschau
Hermann

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: Grub2 findet nur Installation auf sda1.

Beitrag von gbotti » 13.08.2012 16:14:26

Ich hatte noch nie ein zweites Linux auf ner zweiten Platte :( Seit ich das brauche habe ich virtuelle Maschinen ;)

Also...
Tante Google hat mir erzählt, dass es eventuell ein defektes OS-Prober-Paket sein könnte oder auf der Partition der zweiten Festplatte mit WHEEZY ist kein Boot-Flag gesetzt und der OS-Prober sucht deswegen nicht danach...
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

hermelin
Beiträge: 149
Registriert: 18.07.2008 11:10:19

Re: Grub2 findet nur Installation auf sda1.[gelöst]

Beitrag von hermelin » 13.08.2012 17:09:15

gbotti hat geschrieben:Ich hatte noch nie ein zweites Linux auf ner zweiten Platte :( Seit ich das brauche habe ich virtuelle Maschinen ;)

Also...
Tante Google hat mir erzählt, dass es eventuell ein defektes OS-Prober-Paket sein könnte oder auf der Partition der zweiten Festplatte mit WHEEZY ist kein Boot-Flag gesetzt und der OS-Prober sucht deswegen nicht danach...
Hallo.
Ich hab grub nochmal ganz neu mit "apt-get --reinstall install..." installiert. Jetzt funktioniert es wie gewünscht.

Danke an alle die mir Geantwortet haben.

Tschau
Hermann

Antworten