Grub: Error no such partition / Debian - FreeBSD

northernstar

Well-Known Member
Hallo an alle,

ich bin neu, bitte entschuldigt, wenn ich etwas falsch mache.

FreeBSD 9.1 wurde erfolgreich auf einem Rechner mit 3 Festplatten installiert. Auf der einen Festplatte (sda) ist Debian Linux. Auf sdc ist mein Rettungs-Debian und dort ist auch im MBR der Grub Bootloader installiert.

Auf der großen sdb Festplatte wurde FreeBSD installiert und zwar mit der "/" Partition und einer nachfolgenden "swap".

Nun habe ich mich am folgenden Artikel orientiert, der ist gut, mit meinem Laptop konnte ich das Problem lösen, aber jetzt komme ich nicht weiter:

https://forums.freebsd.org/showthread.php?t=23101

-------------------------------------------------------------------------------------------------

PROBLEMBESCHREIBUNG

Datei 40_custom wurde wie folgt editiert:

menuentry "FreeBSD" {
set root=(hd0,1)
chainloader +1
}

Danach wurde nur " # update-grub " ausgeführt und dann neu gebootet.

Rational fände ich jetzt, dass der in der Tat auftauchende Booteintrag FreeBSD auch das FreeBSD booten würde. Ergebnis ist leider:

"Error no such partition... press any key to continue" beim Bootversuch.

Wo liegt wohl mein Fehler? Der chainloader ist mir ehrlich gesagt auch ein Rätsel, ich weiss nicht, ob es "+2" oder so heißen müßte.

Eine Entschuldigung vorab, dass ich hier Linux-Festplattenbezeichnungen benutzt habe, hoffentlich geht das ok.

Im voraus sehr herzlichen Dank für jegliche Hilfe und alle Mühe.

LG
 
Hallo und Willkommen :)

Ich bin zwar kein Grub-Experte, es ist Jahre her, dass ich das Ding benutzt habe, aber:
- set root=(hd0,1) Wenn FreeBSD in einen Slice (eine DOS-Partition) + BSDLabel installiert ist, muss da noch die Partition innerhalb des Label zu. root=(hd0,1,a) oder so, das Gedächtnis ist schon ein wenig neblig geworden. Wie es bei GPT-Partitionen aussieht, weiß ich leider nicht.
- Der Chainloader ist eine Krücke, die nur bei DOS-Partionen funktioniert. Sie ruft den normalen FreeBSD-Bootcode auf. Eleganter und damals zuverlässiger war es, Grub FreeBSDs /boot/loader als Kernel anzugeben. Dann startet Grub direkt den Loader, ohne die Bootchain vorweg. Der wiederum lädt den Kernel. Anders als Linux ist FreeBSD nicht selbstboot-fähig, d.h. man kann den Kernel nicht direkt starten. Es ging mal mit FreeBSD/i386 aber mal davon abgesehen, dass man das eigentlich nicht mehr nutzen will, mag die Funktion gar nicht mehr vorhanden sein... Wie dem auch sei, um /boot/loader direkt zu starten, brauchst du für Grub das UFS oder ZFS-Modul. Je nach verwendetem Dateisystem. Keine Ahnung, ob Debian die mitliefert.
 
Vielen Dank Yamagi, ist echt sehr freundlich! leider bin ich nicht weitergekommen, obwohl ich den Computer auf den Kopf gestellt habe.

Weiss denn niemand wie der Eintrag fuer den Grub lauten koennte? Mittlerweile habe ich das FreeBSD auf der anderen Festplatte installiert.

update-grub unter linux sagt dass das System unter sdc2 ist... also muss der Eintrag doch heissen:

(hd2,2) schlimmstenfalls (hd2,2,a) oder?

Ich verstehe die Welt nicht mehr denn ich habe schon alle Kombinationen versucht...

Vielen Dank :-)
 
Bei meiner letzten Linux/FreeBSD-Parallelinstallation ging es so (vorausgesetzt, FreeBSD ist auf der zweiten Platte, also /dev/sdb)

Code:
menuentry "FreeBSD" {
  set root=(hd1)
  chainloader +1
}

Ist nicht schön, funktioniert aber. "freebsd /path/to/kernel" kannte grub1 noch, grub2 aber iirc nicht mehr.
 
Vielen, herzlichen Dank auch Dir, Thorwin!

Es hat insofern geholfen, dass nun die Fehlermeldung eine andre ist. Nun ist es:

GRUB loading
Welcome to GRUB!

Error: file not found
Entering rescu mode
grub rescue>


Hat jemand noch eine Idee? Eine solche Meldung hatte ich, ich meine, bei meinem Laptop mit der Veränderung der Chainloader zahl ausgebessert... hier funzte das aber auch nicht....

Ich antworte immer so spät, weil ich ja alles mögliche versuche, hatte auch an einen anderen Bootloader gedacht, GRUB ist aber echt DER Platzhirsch anscheinend...

Jegliche Hilfe wäre absolut toll!

LG!
 
Deine grub-Installation ist aber so sauber, dass du dein Debian und dein Rescue-Debian booten kannst, oder hakt es da schon?
 
Danke der Nachfrage, ne, ne...

also ich kann ein Debian mit X-Windows und Gnome booten und zusätzlich mein Ersatz-Debian, was nur Consolen hat... null Problemo damit
 
Der Fall ist gelöst!

Vorab, es sieht wirlich so aus, als sei ich ein Idiot, aber ich glaube die Festplatten sind an den falschen Steckplätzen... nur so kann ich das erklären...

Lösung:

menuentry "FreeBSD" {
set root=(hd2)
chainloader +1
}

... danach upgrade-grub, danach grub-install /dev/sdc

Vielen Herzlichen Dank an alle!

P.S. Wie editiere ich den Thread als "gelöst" bitte? Habe ich nicht gefunden
 
Zuletzt bearbeitet:
Ich hatte mal DesktopBSD Live USB-Sticks für Messen gemacht, bei denen sich mit GRUB wahlweise die 32-Bit Version, oder die 64-Bit Version auswählen ließ. Die alten Intel Atom CPUs in Netbooks können nur 32-Bit, daher sah ich damals den Bedarf.
Hier nun die alte /boot/grub/menu.lst von so einem DesktopBSD Live USB-Stick:
Code:
splashimage	(hd0,0,d)/boot/grub/splash.xpm.gz

title	DesktopBSD 32-Bit
 root	(hd0,0,d)
 kernel	/boot/loader

title	DesktopBSD 64-Bit
 root	(hd0,0,e)
 kernel	/boot/loader

title	Reboot Computer
  reboot

title	Halt, shutdown Computer, using APM if possible
  halt
Das ist jedoch noch kein GRUB2! Das war mit dem sysutils/grub Port gemacht (GRUB 0.97). Der für FreeBSD portierte GRUB kann auch das UFS2 Dateisystem lesen. Der Stick hatte eine MBR. Das 32-Bit System und das 64-Bit System sind auf zwei unterschiedlichen Partitionen.
So sah die Aufteilung aus:
Code:
=>     63  8212417  da4  MBR  (3.9G)
       63  7775397    1  freebsd  [active]  (3.7G)
  7775460   437020       - free -  (213M)

=>      0  7775397  da4s1  BSD  (3.7G)
        0  3883008      4  freebsd-ufs  (1.9G)
  3883008  3891200      5  freebsd-ufs  (1.9G)
  7774208     1189         - free -  (594k)
 
Vielen Dank auch Dir Fusselbär!

Wenn jemand mir noch sagen kann, wie ich den Beitrag als gelöst markieren kann, wäre das genial, denn sonst nervt es ja wahrscheinlich andere...

Danke sehr für ale Hilfe! :)
 
Eleganter und damals zuverlässiger war es, Grub FreeBSDs /boot/loader als Kernel anzugeben. Dann startet Grub direkt den Loader, ohne die Bootchain vorweg. Der wiederum lädt den Kernel. Anders als Linux ist FreeBSD nicht selbstboot-fähig, d.h. man kann den Kernel nicht direkt starten. Es ging mal mit FreeBSD/i386 aber mal davon abgesehen, dass man das eigentlich nicht mehr nutzen will, mag die Funktion gar nicht mehr vorhanden sein...
Wie ich letztes Jahr beschrieben habe, ging das mit FreeBSD 9.0 sehr gut und gestattet natürlich eine enorme Flexibilität im Vergleich zum Chainloading. (Lust, mal ein FreeBSD aus einem Image zu booten?)
In der 9.1-Release haben sich irgendwelche Bootadressen geändert, so daß nur noch Chainloading möglich ist.
IIRC geht auch der Kunstgriff mit /boot/loader nicht mehr.

Mensch, gerade sehe ich, daß vor rund zwei Wochen ein neuer GRUB2-Port herausgekommen ist, der angeblich wieder alles kann. Da wird es zum Monatsende mal ein Update im Wiki geben müssen <notier>.
 
Zurück
Oben