PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : grub: neuen eintrag hinzufügen?!



RoCMe
27.03.08, 20:01
Hi!
Ich bin eigentlich ganz zufrieden mit ubuntu, aber es schadet ja nicht, immer etwas über den tellerrand zu schauen. Und da der liebe Gott ja sowas wie Semesterferien erfunden hat, hab ich auch gerade die nötige Zeit, mich ein wenig näher mit gentoo zu befassen.

Eingerichtet ist alles soweit, jetzt muss ich nur noch grub (von ubuntu aus) beibringen, dass es da ein neues Linux gibt...

Alles ganz einfach, dachte ich: ubuntu nennt das neue gentoo-root /dev/sda8, also habe ich einen neuen Eintrag gentoo in meiner menu.lst vorgenommen:
http://rocme.wgchaos.info/menu.lst.txt
Beim neubooten bekam ich einen Eintrag gentoo, aber wenn ich den auswähle bekomme ich statt eines Bootvrgangs nur


Bad File or Directory Type

Die verwendete UUID stimmt, und das Kernel image liegt auch an entsprechender Stelle.

Was mache ich falsch?

marce
27.03.08, 20:09
poste bitte mal die Ausgabe von fdisk -l

RoCMe
27.03.08, 20:25
Device Boot Start End Blocks Id System
/dev/sda1 4 27787 7168000 1c Hidden W95 FAT32 (LBA)
/dev/sda2 * 27787 152784 32249023+ 7 HPFS/NTFS
/dev/sda3 152785 311542 40959564 83 Linux
/dev/sda4 311543 605771 75911082 f W95 Ext'd (LBA)
/dev/sda5 365351 524109 40959822 b W95 FAT32
/dev/sda6 524110 563799 10240018 83 Linux
/dev/sda7 563800 605771 10828774 83 Linux
/dev/sda8 311543 365350 13882460 83 Linux


dabei fällt mir auf: sda8 liegt "physikalisch" vor allen anderen?!....

P17
27.03.08, 21:40
kernel /boot/linux-2.6.24-gentoo-r3 root=UUID=352a20c5-0940-4b84-b282-8c6e7b189426 ro quiet splash

Ich kenne Gentoo jetzt nicht so. Aber bist du sicher, dass das Kernelimage linux-2.6.24-gentoo-r3 heisst?
Was steht denn so unter /boot auf deiner Gentoo-Partition?

RoCMe
27.03.08, 22:01
Ja, der heißt so, weil ich den so genannt habe (hat das etwa was zu sagen?):



rocme@spartacus:/mnt/gentoo/boot$ ls
boot linux-2.6.24-gentoo-r3

P17
27.03.08, 22:19
(hat das etwa was zu sagen?):
Nein, schon ok.
Ich dachte nur, weil Kernelimages i.d.R. "vmlinuz" im Namen haben.
Sah so aus, als wenn du aus Versehen auf die Kernelsourcen,oder so verlinkt hättest.

tooly
28.03.08, 07:04
Hallo,

hast Du in /dev/sda8 auch nochmal grub installiert?



title Gentoo
root (hd0,7)
kernel /boot/linux-2.6.24-gentoo-r3 root=UUID=352a20c5-0940-4b84-b282-8c6e7b189426 ro quiet splash


Bin mir nicht ganz sicher, aber gibt das root(hd0,7) nicht an wo grub seine stage2 Datei suchen soll?

Probier es mal damit:



title Gentoo
root (hd0,2)
kernel (hd0,7)/boot/linux-2.6.24-gentoo-r3 root=UUID=352a20c5-0940-4b84-b282-8c6e7b189426 ro quiet splash


mfg
tooly

RoCMe
28.03.08, 10:16
Habs ausprobiert, mit dem gleichen Ergebnis.
Dagegen spricht meiner Meinung nach auch dieser (gültige) Eintrag:


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Windows Vista/Longhorn (loader)
root (hd0,0)
savedefault
makeactive
chainloader +1


Noch mal zurück zur Ausgabe von ls -l (siehe oben): sda8 liegt ja blockmäßig vor den anderen logischen Partitionen - hat das eventuell Einfluss auf die Benennung durch grub?
Wie kann ich denn rausfinden, ob hd0,7 die richtige ist?

tooly
28.03.08, 10:33
Hallo,

am einfachsten gehst Du über die grub konsole, mittels TAB schlägt zeigt sie ja an welche dateien vorhanden sind.
Evtl. hilft auch /boot/grub/device.map weiter.

mfg
tooly

RoCMe
28.03.08, 11:15
Ich hab unter ubuntu einfach mal "grub" ausgeführt:


grub> root (hd0,7)

grub> kernel / //TAB gedrückt
Error 2: Bad file or directory type

grub> kernel /boot/ //TAB gedrückt
Error 2: Bad file or directory type

grub> kernel /boot/


das half mir irgendwie nicht... oder meintest du das anderes?

In der device.map steht nur eine Zeile:


(hd0) /dev/sda


Ich hab irgendwie das Gefühl, dass ich hier einen ganz gewaltigen Anfängerfehler mache :/

HirschHeisseIch
28.03.08, 12:49
Mal ne ganz dumme Idee:
Hast Du eine /boot eingerichtet, wo vielleicht der Kernel drauf liegt und eben nicht auf der /-Partition unter /boot?

borsten
28.03.08, 13:07
ich hatte zwar schon lange keine grub-fehler gehabt, aber im moment würde ich sagen das du vermutlich dich bei der bezeichnung vom namen vertippt hast, entweder beim umbenenen vom kernel oder vom grub-eintrag. geh nochmal auf nummersicher und kontrollier das vielleicht. ansosten könnte sein das gentoo /dev/sda von ubuntu als /dev/sdb bezeichnet wenn du mehrere platten drin hast, hat er bei mir auch manchmal, je nach einstellung vom booten im bios oder der device.map
ersetz vielleicht einfach sicherheitshalber auch deine UUID durch /dev/sda8,damit wär die fehlerquelle auch umgangen..
ansonsten würde ich auch auf die idee von HirschHeisseIch tippen
vielleicht hilft dir ja auch mein grub-eintrag weiter:

# booting GNU/Linux
title Gentoo Linux 2.6.24-r3
root (hd0,1)
kernel /bzImage root=/dev/sda6
ansonsten hätte ich noch ne andere quick& dirty-variante: du schnappst dir ne live-cd, verschiebst dein ubuntu von der momentanen root in nen subordner "backup" oder so und schiebst da dann stattdessen das gentoo drauf.

RoCMe
28.03.08, 16:32
Nein, eine boot Partition hab ich definitiv nicht!



# booting GNU/Linux
title Gentoo Linux 2.6.24-r3
root (hd0,1)
kernel /bzImage root=/dev/sda6

Was sagt mir dass denn jetzt? Deine Boot-Partition ist (hd0,1), und die root Partition (/dev/sda6) enthält im rootVerzeichnis das kernelimage bzImage?

Jedenfalls werde ich jetzt noch mal folgende Einstellung probieren:


# booting GNU/Linux
title Gentoo Linux 2.6.24-r3
root (hd0,7)
kernel /boot/linux-2.6.24-gentoo-r3 root=/dev/sda8

RoCMe
28.03.08, 16:58
Gut, das tut nicht :(

Ich hab mir noch mal die grub Konsole vorgenommen: Mit einem


root (hd0,i) // 0<i<7

wird das betreffende Dateisystem "gemountet" (ausgenommen die Windows NTFS Partition) und ich die "Tab-Autovervollständigung" funktioniert.

Nicht so bei (hd0,7): Das mounten klappt auch da, aber danach bekomme ich mit der TAB-Taste nix angezeigt, nur:

Bad file or directory type :(
Gefunden wird die Partition aber anscheinend, wenn ich root(hd0,8) versuche werde ich darauf hingewiesen, dass es diese Partition nicht gibt...

Ich raff das nicht :(

kreol
28.03.08, 19:21
Die Ausgabe Deines ls auf /boot ist entweder sehr dürftig oder unvollständig. Poste sie dochmal komplett, am besten zusammen mit einem als root ausgeführten
file -s /dev/sda8
file /mnt/gentoo/boot/linux-2.6.24-gentoo-r3Kommen auffällige Meldungen wenn Du sda7 unter dem Ubuntu händisch mountest?

Irgendwie vermisse ich eine initrd. Ich kenne Gentoo zwar nicht, aber afaik sollte es auch dort eine geben, insbesondere wenn nicht alle Dateisysteme fest in den Kernel eingebaut sind.

Daß sda8 physikalisch vor den anderen logischen Partitionen liegt ist unschädlich. Grub bezeichnet die sda8 trotzdem als (hd0,7).

Der root-Eintrag in der menu.lst sollte aber auf die Partition zeigen, in der /boot liegt. Ausgehend von da rufst Du dann den Kernel auf. Wenn auf Deiner sda8 also ein eigenes /boot liegt (unterhalb von /) dann nimm root (hd0,7), dann muss das Kernelimage (und ggf. die initrd) aber auch in /boot der sda8 liegen und nicht in einem /boot Deiner Ubuntuinstallation.

Der Windowseintrag (hd0,0) für sda1 ist also logisch, da die Startdateien des Windows ja wohl auf sda1 liegen.

Immer wieder gerne empfohlen: Grub-manual (http://www.gnu.org/software/grub/manual/grub.html).

Btw, wg. des "werde ich darauf hingewiesen dass...": Bitte poste Systemmeldungen (und Deine Eingaben) ausschliesslich im Wortlaut. Das ist das einzige, was hier wirklich etwas bringt. Bitte verwende dabei code-Tags, wie aus meiner Sig ersichtlich (nicht quote).


Kreol

P17
28.03.08, 19:26
wenn ich root(hd0,8) versuche werde ich darauf hingewiesen, dass es diese Partition nicht gibt...
Die hast du laut fdisk ja auch nicht. Die Partition passt schon. Verwirrend ist die Meldung:

Bad file or directory type
vll solltest du -ein Backup vorrausgesetzt- das Kernelimage nochmal kopieren:

cp /usr/src/linux-$(uname -r)/arch/i386/boot/bzimage /boot/dein-kernel-image
so, als Verzweiflungsakt.

HirschHeisseIch
28.03.08, 19:29
Es könnte auch zu Problemen kommen, wenn die Partition hinter der magischen 128 GiB-Grenze liegt...
Workaround wäre hier eine /boot-Partition, oder den Kernel (und ggf. die initrd) vom Gentoo mit in die Ubuntu-Partition zu kopieren, und von da zu booten.
Dank einem passenden root=-Einntrag wird auch dann das Gentoo gebootet.

RoCMe
28.03.08, 19:37
Zunächst einmal: sda8 lässt sich wunderbar unter ubuntu mounten:


rocme@spartacus:~$ sudo mount -t ext3 /dev/sda8 /mnt/gentoo
rocme@spartacus:~$


Außerdem wie gewünscht:

rocme@spartacus:~$ sudo file -s /dev/sda8
/dev/sda8: Linux rev 1.0 ext3 filesystem data (needs journal recovery) (large files)
rocme@spartacus:~$

Klar - mein Kernel-Image liegt auf sda8 in /boot, also der Gentoo-Partition:
(ausgeführt, nachdem sda8 gemountet wurde (s.o.)


rocme@spartacus:~$ sudo ls -l /mnt/gentoo/boot/
insgesamt 1408
lrwxrwxrwx 1 root root 1 2008-03-24 15:53 boot -> .
-rw-r--r-- 1 root root 1436600 2008-03-26 13:25 linux-2.6.24-gentoo-r3
rocme@spartacus:~$


@kreol: Du hast recht, der genaue Wortlaut fehlt...

//EDIT
Hab die 2 Posts über mir gar nicht gesehen, sry:
@ P17: habs noch mal kopiert, dass brachte gar nichts.
@ HirschHeisseIch: Ich poste hier mal die Ausgabe von parted : print; da ich aber nicht rausfinden konnte, wie man die einzelnen angegebenen Platten identifizieren kann, unten drunter noch ein df -h:



(parted) print

Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Anzahl Beginn End Size Type File system Flags
1 1049kB 7341MB 7340MB primär fat32 versteckt, lba
2 7341MB 40,4GB 33,0GB primär ntfs boot
3 40,4GB 82,3GB 41,9GB primär ext3
4 82,3GB 160GB 77,7GB erweitert lba
8 82,3GB 96,5GB 14,2GB logisch ext3
5 96,5GB 138GB 41,9GB logisch fat32
6 138GB 149GB 10,5GB logisch ext3
7 149GB 160GB 11,1GB logisch ext3

(parted) quit
Information: Vergessen Sie nicht, gegebenenfalls /etc/fstab zu ändern.

rocme@spartacus:~$ df -h
Dateisystem Größe Benut Verf Ben% Eingehängt auf
/dev/sda3 39G 12G 26G 32% /
varrun 1014M 200K 1014M 1% /var/run
varlock 1014M 0 1014M 0% /var/lock
udev 1014M 104K 1014M 1% /dev
devshm 1014M 0 1014M 0% /dev/shm
lrm 1014M 24M 991M 3% /lib/modules/2.6.22-14-generic/volat ile
/dev/sda5 40G 15G 25G 38% /mnt/media
/dev/sda6 9,7G 2,9G 6,3G 31% /home
/dev/sda7 11G 279M 9,4G 3% /home/rocme/dokumente
/dev/sda8 14G 1,7G 11G 14% /mnt/gentoo
rocme@spartacus:~$



Sehe ich doch richtig, dass die sda8 vor der oben erwähnten Grenze liegt?

Gruß,

RoCMe

kreol
28.03.08, 19:43
Kopier versuchsweise mal das Verzeichnis /grub aus dem /boot des Ubuntu in das /boot des Gentoo. Ich denke aber eher, dass es an der fehlenden initrd liegt...

Offenbar hast Du meinen Nachtrag oben nicht mehr gesehen. Was sagt denn ein
file /mnt/gentoo/boot/linux-2.6.24-gentoo-r3


Kreol

HirschHeisseIch
28.03.08, 19:50
Um nochmal kurz auf Kreols Ansatz mit der initrd einzugehen:

Bei ner normalen Gentoo-Installation wird der Kernel selbst konfiguriert, kompiliert und nach /boot kopiert.
Eine initrd ist also nicht (zwingend) notwendig. Beispielsweise hatte meine Gentoo-Installation (1.4 rc1 oder so... Paar Jährchen her) keine initrd. Ext 2, Ext 3 und natürlich die (damals noch) IDE-Treiber fest einkompiliert, und man ist die initrd los. Wenn man den genkernel (eine Art Distri-Kernel für Gentoo... Also eigentlich nur eine passende .config) benutzt, braucht man AFAIK eine initrd. Bei mir gabs aber noch keinen genkernel. ;)

Ist aber auch relativ egal, da das Problem ja nicht vom Kernel kommt (keine Kernel-Panic), sondern schon beim Versuch, den Kernel überhaupt per Grub zu laden.

RoCMe
28.03.08, 20:02
So, wenn der gentoo Kernel auf der Ubuntu Platte unter "/boot/" liegt, dann kann ich ihn auch booten!
Bleibt die Frage, warum das auf der gentoo Platte nicht klappt :(

//EDIT
Ach ja:


rocme@spartacus:~$ sudo file /mnt/gentoo/boot/linux-2.6.24-gentoo-r3
/mnt/gentoo/boot/linux-2.6.24-gentoo-r3: Linux kernel x86 boot executable RO-rootFS, root_dev 0x808, swap_dev 0x1, Normal VGA
rocme@spartacus:~$

HirschHeisseIch
28.03.08, 20:08
Wahrscheinlich an der von mir schon erwähnten 128 GiB-Grenze...
Das ist der Grund, weshalb ich prinzipiell _immer_ eine /boot einrichte...