Re: Grub2-UID Fehler
Hallo Sascha,
Am Donnerstag, 16. Juni 2011 schrieb Sascha Reißner:
> Am Mittwoch, den 15.06.2011, 21:56 +0100 schrieb Siegfrid
Brandstätter:
> > Booten tut es jetzt auch aber verkehrt, es wird die falsche
> > Partition mit diesem Kernel geladen.
> >
> > Auf /dev/sdb13 ist Wheezy mit Kernel 2.6.38-2-686
> > und in
> > /dev/sdb17 ist Squeeze mit Kernel 2.6.32-5-486
> >
> > von dem gibt es aber auch eins mit 2.6.32-5-686
> >
> > nur dieses letzte erhielt mal die UID von Wheezy, frage nicht
> > warum. Da ich aber dies reparieren wollte, weil es immer am Ende
> > kein X bekam wie Wheezy, aus bekannten Gründen (Nvidia) habe ich
> > mich gewundert und nun mal genau nachgesehen warum und finde dabei
> > das die UID von Wheezy auf dieses Squeeze läuft. Daher auch der
> > Wheezy Fehler in Squeeze bei dieser Installation, wobei hier ja
> > der Nvidia Effekt gar nicht vorhanden sein dürfte. Anscheinend
> > wurde wegen dem "-686" am Ende was vertauscht. Darum möchte ich
> > dies auch reparieren.
>
> [...]
>
> > OK schau dir mal die UID's an und den Kernel dazu.
> > Die boot/grub/grub.cfg
> >
> > ### BEGIN /etc/grub.d/10_linux ###
> > menuentry 'Debian GNU/Linux, with Linux 2.6.38-2-686' --class
> > debian -- class gnu-linux --class gnu --class os {
> >
> > insmod part_msdos
> > insmod ext2
> > set root='(hd1,msdos13)'
> > search --no-floppy --fs-uuid --set=root ca68ee6b-4019-49cf-
> >
> > b2dd-0c686b6dfca2
> >
> > echo 'Loading Linux 2.6.38-2-686 ...'
> > linux /boot/vmlinuz-2.6.38-2-686 root=UUID=ca68ee6b-4019-49cf-
> >
> > b2dd-0c686b6dfca2 ro quiet
> >
> > echo 'Loading initial ramdisk ...'
> > initrd /boot/initrd.img-2.6.38-2-686
> >
> > }
> > menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class
> > debian -- class gnu-linux --class gnu --class os {
> >
> > insmod part_msdos
> > insmod ext2
> > set root='(hd1,msdos13)'
> > search --no-floppy --fs-uuid --set=root ca68ee6b-4019-49cf-
> >
> > b2dd-0c686b6dfca2
> >
> > echo 'Loading Linux 2.6.32-5-686 ...'
> > linux /boot/vmlinuz-2.6.32-5-686 root=UUID=ca68ee6b-4019-49cf-
> >
> > b2dd-0c686b6dfca2 ro quiet
> >
> > echo 'Loading initial ramdisk ...'
> > initrd /boot/initrd.img-2.6.32-5-686
> >
> > Hier unten ist es richtig!
> >
> > menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-486' (Squeeze-
> > Stable_sdb17)-class debian --class gnu-linux --class gnu --class os
> > {
> >
> > insmod part_msdos
> > insmod ext2
> > set root='(hd1,msdos17)'
> > search --no-floppy --fs-uuid --set 9bf4de71-
> >
> > a37f-41fe-8b21-64a171688537
> >
> > echo 'Loading Linux 2.6.32-5-486 ...'
> > linux /boot/vmlinuz-2.6.32-5-486 root=UUID=9bf4de71-
> >
> > a37f-41fe-8b21-64a171688537 ro
> >
> >
> > Und ich wunderte mich ewig warum der "Linux 2.6.32-5-686" nicht
> > will.
>
> [...]
>
> Hieraus wird ersichtlich, daß du /boot nicht auf einer eigenen
> Partition hast.
> Bei dir liegt /boot in der /-Partition und das in beiden Fällen.
> Du hast also zwei /-Partitionen und daher auch zwei
> /boot-Verzeichnisse. Wenn du ein update-grub anstößt, werden die
> Einträge unterhalb vom /boot-Verzeichnis auf der aktuellen
> /-Partition aktualisiert. Das /boot-Verzeichnis in der anderen
> /-Partition bekommt davon nichts mit.
> Welches /boot-Verzeichnis Grub beim booten verwendet, kann ich leider
> nicht feststellen, aber Fakt ist, daß sich beide /boot-Verzeichnis
> sicher im Inhalt unterscheiden.
>
Ja so ist es!
> Prüfen kannst du das, indem du ein Linux bootest und dann die
> andere /-Partition mal in /mnt mountest.
> Dann vergleich mal /boot mit /mnt/boot.
>
> Mein Vorschlag wäre, du erstellst eine eigene /boot-Partition die
> dann von allen Systemen gemountet wird.
> Dann ist es egal aus welcher Distribution du update-grub aufrufst, da
> alle mit dem selben /boot-Verzeichnis arbeiten.
>
Das Problem ist nun, ich habe eine alte /boot Partition, aber die ist
nicht mehr in der fstab mit drinnen, daher fehlt ihr die UUID. Habe mit
gparted gerade diese sda1 wieder mit /boot bezeichnet. Aber wie erhalte
ich die UUID?
Mit grub-install erhalte ich dann:
# grub-install /dev/sda1
/usr/sbin/grub-setup: warn: Es wird versucht, GRUB in eine Partition
anstelle in den MBR zu installieren. Das ist eine SCHLECHTE Idee..
/usr/sbin/grub-setup: error: embedding is not possible, but this is
required for cross-disk install.
> > > Wichtig ist, dass /boot/grub/device.map stimmt.
> >
> > Da steht ja nun wirklich nicht viel drinnen, aber das dürfte
> > stimmen, zumindest sind diese beiden Festplatten richtig
> > zugeordnet. Hat aber nichts mit falchen Partitionen zu tun. Die
> > liegen alle auf der (hd1)
> >
> > (hd0) /dev/disk/by-id/ata-ST340014A_5JX0D218
> > (hd1) /dev/disk/by-id/ata-ST3160021A_5JS178X3
> >
> > > > Aber möglicherweise weiß ja wer wie ich es einfacher und besser
> > > > machen könnte, muß ja wohl gehen.
> > >
> > > GRUB einfach so lassen, wie der Debian Installer ihn auf die
> > > Platte hievte, und es gut sein lassen?
> >
> > Würde ich gerne so machen, aber allein schon das ich oben in der
> > Liste scheintote Installationen stehen habe, macht es nötig da was
> > zu ändern.
>
> Grub läd vermutlich die /boot/grub/grub.cfg die nicht aktualisiert
> wurde.
>
> > > Und wenn damit dann wirklich ein Fehler ist, was ja sein kann,
> > > dann erstmal *verstehen*, wo der Fehler liegt, und *dann*
> > > handeln.
> >
> > Verstehen tu ich ja wo der Fehler ist, aber nicht wie ich ihn
> > behebe :-) Aber danke das du dir die Zeit genommen hast dafür!
>
> Selbst wenn du den UUID-Fehler händisch behebst, wird er beim
> nächsten update-grub wieder auftauchen, da du zwei
> /boot-Verzeichnisse hast.
>
> Ich empfehle eine Partition für /boot in die du die neuesten Files
> kopierst (nicht verschieben, vieleicht brauchst du sie noch).
OK
> Dann mountest du die neue Partition in /boot,
# mount /dev/sda1
mount: can't find /dev/sda1 in /etc/fstab or /etc/mtab
Habe mir nun eine UUID erstellt:
# blkid /dev/sda1
/dev/sda1: UUID="aa5df236-95fa-42fc-adf7-6ff3b5a94c1b" TYPE="ext2"
LABEL="boot"
aber trotzdem erhalte ich dann:
# mount /boot
mount: special device UUID="aa5df236-95fa-42fc-adf7-6ff3b5a94c1b does
not exist
> führst zur Sicherheit
> ein grub-mkdevicemap aus und dannach ein update-grub.
> Stell auch sicher, daß die neue Partition über die /etc/fstab nach
> /boot gemountet wird (in beiden root-FS).
>
Alles gemacht, hoffe ich kann wieder booten.
Wenn ja dann gebe ich Bescheid!
> Ob das zur Lösung führt kann ich dir allerdings nicht sagen, denn ich
> frage mich, wie Grub zu jedem Kernel die richtige /-Partition
> feststellt um diese im Eintrag zu setzen (vieleicht über
> /lib/modules ???).
Danke für die Tipps!
--
Einen Schönen Gruß,
Sigi
Reply to: