Siduction Forum
Siduction Forum => Installation - Support => Topic started by: michaa7 on 2011/12/07, 15:00:47
-
Um missverständnissen vorzubeugen: Grub2 für die neuinstalltion funktioniert, mein problem betrifft nur die alte installation!!!
Bei einer neuen installation (auf /dev/sdb1) habe ich grub2 in den mbr schreiben lassen. Die alte installation liegt auf /dev/sda2, taucht in Grub2 auswahlmenü als über chainload bootbare installation auf.
Allerdings funktioniert der eintrag nicht, ich erhalte dann nur ein "invalid magic number"
Der fehler wurde möglicherweise dadur ch verursacht, dass auch die alte installation grub2 im mbr hatte. Da diese alte installation aber *nicht* auf dauer beibehalten werden soll, habe ich bei der neuinstall grub2 in den mbr installieren lassen, wohl etws vorschnell ...
what nu?
Edit1://
Das sollte doch irgendwie mit grub-setup hinzubekommen sein:
grub-setup /dev/sda2
führt jedoch nur zu einer fehlermeldung von wegen grub in partition, schlechte idee, einbettung nicht möglich, aber erforderloich, weil auf mehrere platten installiert werden soll.
Jemand ne idee wie man dies mit den weiteren optionen hinbekommen kann? -f (force)? oder wie?
Edit2://
Das problem besteht wohl in der tatsache dass die alte installtion zwar bislang über einen grub2 im mbr gebootet werden konnte, in der partition selbst jedoch entweder kein Grub2 oder gar ein Grub_legacy installiert war/ist.
Wie das alte system aus dem Grub2 der neuen installtion gebootet wird ist mir egal (ob über chainload oder direkt) nur irgendwie muß ich das noch eine zeitlang starten können ...
hälp!
Edit3://
Folgendes konnte ich mittels eines ubuntu-wikis in erfahrung bringen:
# for d in $(sed -ne 's/^.*\(sd.*\)/\1/p' /proc/partitions);do echo -e "$d\t ID: $(sudo hexdump -v -s 0x80 -n 2 -e '2/1 "%x" "\n"' /dev/$d)";done;echo -e "\nGRUB 1: 5272/aa75\nGRUB 2: 7c3c/48b4/020"
sda ID: 020
sda1 ID: 6616
sda2 ID: 020
sda3 ID: ef2e
sda4 ID: 00
sda5 ID: 8ec0
sda6 ID: 8ec0
sda7 ID: 8ec0
sda8 ID: 00
sda9 ID: 00
sda10 ID: 00
sdb ID: 020
sdb1 ID: 00
sdb2 ID: 00
sdb3 ID: 00
sdb4 ID: 00
sdb5 ID: 00
sdb6 ID: 00
sdb7 ID: 00
sdb8 ID: 00
sdb9 ID: 00
sdb10 ID: 00
020 steht für Grub2. Das heißt, dass die alte, nicht bootbare installation sehr wohl einen Grub2 in Partition besitzt, nur rührt der kaum von der neuinstallation her.
Wie auch immer, ich muss die *alte* installation booten können! Wie?
EDIT4://
Kleiner fortschritt, nachdem ich mittels
/usr/sbin/grub-install --recheck --no-floppy /dev/sda
Grub2 nochmal installiert habe läuft nach reboot in das neue system ein grub-setup -f /dev/sda2
nun durch, mit fehlermeldung wegen "keine gute idee und blocklisten". soweit die gute nachricht, die schlechte: Die alte installtion bootet immer noch nicht, nach wie vor der gleiche fehler von wegen "invalid magic number"
niemand ne idee?
EDIT5://
Fast vollständig gelöst, fast!
es ist mir nun gelungen, ausgehend vom CLI des Grub2 das alte system zu booten!!!
mit "c" im Grub auswahlmenü in die Grub kommandozeile wechseln, dort mit:grub> configfile (hd0,msdos2)/boot/grub/grub.cfg
das konfigfile der *alten* installtion aufrufenund dadurch booten. Klappt.
Was noch nicht klappt:
Ich will diesen umweg über den Grub-CLi ja nicht jedes mal gehen müssen, wie ändere ich nun das neue menü so ab, dass die alte config beim entsprechenden eintrag mit eingebunden wird?
(und den grundfehler habe ich natürlich immer noch nicht gerafft!)
-
Um missverständnissen vorzubeugen: Grub2 für die neuinstalltion funktioniert, mein problem betrifft nur die alte installation!!!
Bei einer neuen installation (auf /dev/sdb1) habe ich grub2 in den mbr schreiben lassen. Die alte installation liegt auf /dev/sda2, taucht in Grub2 auswahlmenü als über chainload bootbare installation auf.
...
(und den grundfehler habe ic natürlich immer noch nicht gerafft!)
Wieso Chainload? Hast Du den os-prober deaktiviert?
Poste doch erstmal die neue /boot/grub/cfg.
Viele Grüße
Bequimão
-
danke für deine nachfrage:
#
# 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='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
set locale_dir=($root)/boot/grub/locale
set lang=de_DE
insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, mit Linux 3.1-4.towo.1-siduction-686' --class debian --class gnu-linux --class gnu --class os {
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
echo 'Linux 3.1-4.towo.1-siduction-686 wird geladen â¦'
linux /boot/vmlinuz-3.1-4.towo.1-siduction-686 root=UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ro quiet
echo 'Initiale Ramdisk wird geladen â¦'
initrd /boot/initrd.img-3.1-4.towo.1-siduction-686
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
menuentry "Memory test (memtest86+, experimental multiboot)" {
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
multiboot /boot/memtest86+_multiboot.bin
}
menuentry "Memory test (memtest86+, serial console 115200, experimental multiboot)" {
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
multiboot /boot/memtest86+_multiboot.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 2000 (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod fat
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root xxxxxxxx
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Chainload into GRUB 2 (on /dev/sda2)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
linux /boot/grub/core.img
}
menuentry "Debian GNU/Linux, kernel memtest86+ (on /dev/sda2)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
linux /boot/memtest86+.bin
}
menuentry "MS-DOS 5.x/6.x/Win3.1 (on /dev/sda6)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxx
drivemap -s (hd0) ${root}
chainloader +1
}
### 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.
### 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 ###
Ich wüßte nicht wo ich den os-prober deaktiviert haben sollte, und hier im grub.cfg file habe ich jetzt nachträglich nur die UUIDs ausgexxxxxxxt
-
so, nu klappts auch mit dem neuen grub.cfg file, allerdings auch nur auf umwegen:
in der /etc/grub.d/40-custom befinden sich folgende einträge.
#!/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 "aptosid" {
set root=(h0,msdos2)
search --no-floppy --fs-uuid --set xxxxxxxxxxxxxxxxxxxxxx
linux /boot/vmlinuz-3.1-4.slh.3-aptosid-686 root=xxxxxxxxxxxxxxxxxxx$
initrd /boot/initrd.img-3.1-4.slh.3-aptosid-686
}
menuentry "aptosid (configfile)" {
configfile (hd0,msdos2)/boot/grub/grub.cfg
}
Nach grub-mkconfig und update-grub funktioniert menuentry "aptosid" *nicht*, aber "aptosid (configfile)" präsentiert ein weiteres auswahlmenü, dies mit den alten einträgen, und die funktionieren dann. So, das problem ist gelöst, die ursache nicht klar.
-
Geil! Mit configfile den Trick kannte ich gar nicht.
Vergleich doch mal einen funktionierenen menuentry davon mit dem menuentry "aptosid"! (root=xxx ist auf jedenfall falsch)
-
naja, das mit configfile war geraten, aus der sytax des Grub-CLI, root=xxx ist natürlicht total falsch, hätte mir selber auffallen müssen, aber mir war eh' nicht klar, ob die syntax im neuen Grub sich vielleicht geändert hätte.
Aber auch nach der korrektur klappte er erste aptosideintrag nicht, folgend fehlermeldung:
Fehler: no argument specified
Fehler: no such disk
Fehler: you need to load the kernel first
-
... und es ward licht geworden.
diese ganze "insmod" sache hatte ich überhaupt nicht auf dem plan, ich war mangels alternative von einem +buntu wiki ausgeganen, was mich ja (grub-CLI) dann auch einen riesenschritt weiter gebracht hatte. Dass es soetwas wie "insmod" in grub gibt und dies auch notwendig ist war mir vollkommen fremd.
Ok, nun habe ich also den eintrag für den letzten kernel aus der /boot/grub/grub.cfg des alten systems in die des neuen kopiert , e voilá, *ha* *le* *lu* *ja*, wie immer, kaum macht man's richtig schon klappt's, der eintrag funktioniert.
dennoch, diese configfile geschichte hat ihren vorteil, die funktioniert auch nach einem kernelupdate, solle sie jedenfalls!
danke ralul, dein kommentar hat mich dann noch auf die richtige spur gebracht!
-
40_custom ist doch ein Standard-file? Gib dem bloß eine andere Nummer ansonsten kann dir auch das überschrieben werden.
-
40_custom ist doch ein Standard-file? Gib dem bloß eine andere Nummer ansonsten kann dir auch das überschrieben werden.
Sicher? Warum sollte etwas sich 40_"custom" nennendes überschrieben werden?
BTW: solang man kein grub_mkconfig ausführt kann das sogar überschreiben werden.
Dennoch danke für den hinweis, das muß ich mal beobachten.
-
@geier, normal bie Linux ist alles unter /etc dem lokalen Admin (root) überlassen. Debian sieht das manchmal anders (fragt aber meistens). In diesem Fall steht sogar in der 40_custom eine Aufforderung an den root-user!
@michaa, nimm in der 40_custom die festen Links ohne Versionsnummern: /vmlinuz /initrd.img
Die werden bei deiner anderen Installation beim Kernelupgrade aktualiesiert. So hast du immer den neuesten kernel von der anderen Installation!
-
ahhaaaaaaa, mercie. Danke
-
ahhaaaaaaa, mercie. Danke
Ja, es ist sooo einfach!
Aber ich habe hier bei dem Thema immer das Problem diese Einfachheit zu vermitteln. Wahrscheinlich wähle ich die falschen Worte.
Micha, kannst Du uns einen Gefallen tun, weil dieses Thema immer wieder auftauchen wird, und eine kurze Wikiseite zu dem Thema verfassen?
-
wiki, ich hasse wiki, und ich hasse wikisyntax, aber mir wird kaum was anderes übrig bleiben als auch mal was zu tun, schreibs eben mal mittelhoch auf die prio liste ... ma schaun
-
Wir können die Seite ja zusammen erstellen. Wichtig wäre mir dabei, dass Du in Deinen Worten den Anfang machst. Ich bin anscheinend so "betriebsblind" (das Thema ist zu einfach für mich), dass man mich nicht versteht, habe ich bei genau dem Thema oft erlebt, dass meine Hinweise nicht benutzt werden (können).