Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] (gelöst) grub2: probs mit alter installtion  (Read 5931 times)

Offline michaa7

  • User
  • Posts: 2.298
[DE] (gelöst) grub2: probs mit alter installtion
« 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:

Code: [Select]
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:

Quote
# 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

Code: [Select]
/usr/sbin/grub-install --recheck --no-floppy /dev/sda Grub2 nochmal installiert habe läuft nach reboot in das neue system ein
Code: [Select]
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:
Code: [Select]
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!)
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline Bequimão

  • User
  • Posts: 121
Re: (fast gelöst) grub2: probs mit alter installtion
« Reply #1 on: 2011/12/07, 20:12:32 »
Quote from: "michaa7"
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
Bequimão (gesprochen: Be-ki-mãu) ist Manuel Beckmann,
brasilianischer Revolutionär in Maranhão (1630 - 1685).

Offline michaa7

  • User
  • Posts: 2.298
(gelöst) grub2: probs mit alter installtion
« Reply #2 on: 2011/12/07, 20:52:00 »
danke für deine nachfrage:

Quote
#
# 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
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline michaa7

  • User
  • Posts: 2.298
(gelöst) grub2: probs mit alter installtion
« Reply #3 on: 2011/12/07, 22:17:53 »
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.
Quote
#!/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.
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline ralul

  • User
  • Posts: 1.814
(gelöst) grub2: probs mit alter installtion
« Reply #4 on: 2011/12/07, 23:10:04 »
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)
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline michaa7

  • User
  • Posts: 2.298
(gelöst) grub2: probs mit alter installtion
« Reply #5 on: 2011/12/07, 23:31:14 »
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
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline michaa7

  • User
  • Posts: 2.298
(gelöst) grub2: probs mit alter installtion
« Reply #6 on: 2011/12/07, 23:51:24 »
... 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!
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline Geier0815

  • User
  • Posts: 588
(gelöst) grub2: probs mit alter installtion
« Reply #7 on: 2011/12/08, 06:56:38 »
40_custom ist doch ein Standard-file? Gib dem bloß eine andere Nummer ansonsten kann dir auch das überschrieben werden.
Wenn Windows die Lösung ist...
kann ich dann bitte das Problem zurück haben?

Offline michaa7

  • User
  • Posts: 2.298
(gelöst) grub2: probs mit alter installtion
« Reply #8 on: 2011/12/08, 11:32:29 »
Quote from: "Geier0815"
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.
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline ralul

  • User
  • Posts: 1.814
(gelöst) grub2: probs mit alter installtion
« Reply #9 on: 2011/12/08, 13:45:32 »
@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!
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline michaa7

  • User
  • Posts: 2.298
(gelöst) grub2: probs mit alter installtion
« Reply #10 on: 2011/12/08, 13:54:07 »
ahhaaaaaaa, mercie. Danke
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline ralul

  • User
  • Posts: 1.814
(gelöst) grub2: probs mit alter installtion
« Reply #11 on: 2011/12/08, 23:48:59 »
Quote from: "michaa7"
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?
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline michaa7

  • User
  • Posts: 2.298
(gelöst) grub2: probs mit alter installtion
« Reply #12 on: 2011/12/08, 23:58:32 »
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
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline ralul

  • User
  • Posts: 1.814
(gelöst) grub2: probs mit alter installtion
« Reply #13 on: 2011/12/09, 15:35:54 »
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).
experiencing siduction runs better than my gentoo makes me know I know nothing