PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bootloader (z.B. GRUB) auf Diskette um von USB zu booten



Seiten : [1] 2

Mdk-10.2_User
07.06.06, 16:24
Hi,

ich hab vor kurzem erst SuSE 9.0 Special Edition auf einen USB-Stick installiert.
Eigentlich ist es egal, welche Distribution ich draufgemacht hätte (nehm' ich zumindest an), es geht mir nämlich darum, wie ich das Linux vom Stick aus booten kann,
OHNE DABEI ETWAS AUF DIE FESTPLATTE ZU SCHREIBEN.

Der MBR der HD soll also NICHT überschrieben werden, dort habe ich nämlich einen perfekt funktionierenden Bootloader mit SuSE 10.1 und Windows laufen.

Ich hab auch ein Diskettenlaufwerk in dem Computer, es wäre meiner Meinung nach also am besten, einen Bootloader, z.B. GRUB, auf einer Diskette zu installieren, um von USB zu booten, da mein BIOS irgendwie nicht von dem USB-Stick booten will.

Wie also kriege ich z.B. ein GRUB auf eine Diskette, so dass vom USB-Stick VON JEDEM PC AUS gebootet werden kann?
Es soll NUR und AUSSCHLIEßLICH vom Stick gebootet werden, z.B. wie bei Knoppix.

Ich hab echt schon alles Erdenkliche versucht, kenne mich aber auch nicht so gut damit aus, deswegen habe ich mich jetzt mal entschieden, hier zu fragen.

reni
07.06.06, 16:29
grub-install /dev/fd0
Aus dem System heraus, welches auf dem Stick ist ... evt. :rolleyes:

Mdk-10.2_User
07.06.06, 16:30
Nee, das geht net...

Das System ist übrigens drauf: Ich kann, wenn ich von CD SuSE-install boote und dann "Installiertes System starten" auswähle, vom USB-Stick mein SuSE booten, einloggen usw. geht alles.

reni
07.06.06, 16:33
Na ja, wenn du in der SuSE vom Stick bist, könntest du doch sogar via YaST Grub auf Diskette schreiben lassen.
Btw. was geht denn da nicht ?

Mdk-10.2_User
07.06.06, 17:11
Wenn ich dann boote, kommt nur
GRUB Hard Disk Error

Und das versteh ich dann net.

reni
07.06.06, 17:18
Aber die Diskette bootet ?
Also das Grub-Menü erscheint ?
Dann haste einen Fehler in der menu.lst ... IMHO

caspartroy
07.06.06, 17:29
die schwierigkeit ist, dass nicht klar ist, welche disk die usb-disk beim booten ist.
vorausgesetzt, dein mainboard unterstützt das booten von usb-hdd mache folgendes:
merke dir eine (originelle) datei auf dem stick, hier oroginell.dat
gebe grub auf der konsole ein
dann in der grub konsole:
find (hdx,y)/original.d
und dann tab taste drücken.
sollte sich der dateiname vervollständigen, ist hdx,1 dein usbstick (wenn die datei wirklich originell ist ;-) )

rest funktioniert wie auf jeder anderen festplatte auch, siehe grub dokumentation.

noch problematisch:
zum zeitpunkt des bootens ist die plattenreihenfolge wahrscheinlich wieder anders, je nach bios, bios-einstellungen und pc, daher wird dein stick noch nicht booten, bzw nur mit viel grück. aber wenn bios richtig eingestellt ist, bekommt man die grub konsole und wiederholt den trick mit
find (hdx,y)/orig <tab>
dann die die einträge aus der grub menu.lst entsprechend geändert eingeben und abschliessend "boot", dann gehts.
ist aber kompliziert und fehleranfällig, vielleicht nicht so geeignet für unerfahrene ;-)
die prozedur dürfte auf jedem rechner anders ablaufen, und das liegt nicht an grub oder linux, sondern an der (nicht)implementierung des bootens von usb.

auch wenn du von boot diskette bootest, müsstest du für jeden rechner einen anderen eintrag in menu.lst machen

Mdk-10.2_User
07.06.06, 17:46
Hm, also ich hab schon (hd1,0) [weil hd0 ist ja meine interne HD] bis (hd10,0) probiert, also hd2,0 hd3,0 usw. (weil der USB-Stick hat ja nur eine Partition)

Keine ging.

Wird es also mit der originellen Datei funktionieren?

caspartroy
07.06.06, 18:39
was heisst probiert? und welche partition hat dein usbstick? es gibt usbsticks mit (hdx) also ohne partitionstabelle, dann hdx,0 und hdx,3 sind noch verbreitet.
wenn dein stick sda4 heisst, wäre es (hdx,3), sda1 ~ (hdx,1) und nur sda wäre (hdx)
schau mal in deine menu.lst, da ist ein gültiger eintrag der form (hdx,y)
find (hdx,y)/boot/vmli <tab> muss in jedem fall funktionieren.

mit einer devicemap kommt man im zweifelsfall weiter, habe aber grad keine zeit, steht auch in der grub doku, melde mich später evtl nochmal

ob hd0 deine interne hd ist, ist nicht sicher, theoretisch kann man die auch hd8 nennen

kreol
07.06.06, 18:50
Ist es nicht so, daß SCSI/SATA Geräte vor IDE-Geräten durchnummeriert werden? Dann würde sich die Bezeichnung der internen Platte ändern, je nachdem ob der Stick angeschlossen ist oder nicht, der Stick wiederum wäre (hd0), die einzige Partition dann (hd0,0).

Und wenn der Stick sda4 wäre, könnte mann allenfalls ein (hd3,0) für dessen einzige Partition ableiten. Erst die Platte, dann die Partiton afaik...

Vllt. probierst Du es wirklich mal mit der Tab-completition aus, das hört sich praktikabel an.


Kreol

Mdk-10.2_User
07.06.06, 19:10
Hm, wenn ich (hd0,x) eingebe, sagt er nur "Cannot mount selected partition" bzw. bei der Linux-root Partition geht es.
Aber ab (hd1,x) (hd2,x) (hd...,x) gibt es nur noch ein "Selected disk does not exist".

Hilfe, was soll ich machen?

In der "menu.lst" steht übrigens:
kernel (hd1,0)/boot/vmlinuz root=/dev/sda1 vga=0x31a splash=silent desktop hdc=ide-scsi hdclun=0 hdc=ide-scsi hdclun =0
initrd (hd1,0)/boot/initrd

Kann damit vielleicht jemand was anfangen?

caspartroy
07.06.06, 19:31
ist dir klar, dass du x ersetzen musst? und kannst du den stick mounten?

Mdk-10.2_User
07.06.06, 19:39
Jaja, klar x ersetze ich schon durch Zahlen...

Und GRUB sagt nichts anderes als "Selected disk does not exist"

also:
root (hd1,0)
kernel /boot/vmlinuz root=/dev/sda1
boot

Aber schon bei root (hd1,0) sagt er halt "Selected disk does not exist".

caspartroy
07.06.06, 21:32
wann? beim start oder bei laufendem linux?
unterstützt deine hardware booten von usb und ist das im bios ausdrücklich aktiviert?

Mdk-10.2_User
07.06.06, 21:35
GRUB sagt das beim Systemstart.
Ich lege die Diskette ein, gebe root (hd1,0) ein und dann kommt diese Meldung.

Meine Hardware unterstützt das; der PC ist gerade mal 2,5 Jahre alt und das BIOS-Update einen Monat.
Sowohl kann ich im BIOS auch Boot von USB-FDD, USB-HDD und USB-CD aktivieren. SCSI übrigens auch.

Es muss also gehen...

caspartroy
07.06.06, 21:43
ok, du sollst aber erst mal bei laufendem linux testen

scsi und ide festplatten werden so nummeriert wie es im bios eingestellt ist

und finde heraus, welche nummer die partition hat, das spart tipparbeit, sda4 heisst (hdx,3) egal obs die einzige partition ist oder nicht

falls ein fat dateisystem drauf ist, muss die datei /usbstick/boot/grub/fat_stage1_5 existieren bevor! du den bootloader einrichtest.
ausserdem ist reiserfs_stage1_5 und e2fs_stage1_5 wahrscheinlich nötig, aber das steht eigentlich alles in der grub doku

Mdk-10.2_User
07.06.06, 21:51
Also, bei laufendem Linux ist der Stick sda1 (im GRUB-Menü, sonst ist es ja / ), also hd1,0.
Geht damit ja aber net.

Außerdem hab ich das GRUB per grub-install /dev/fd0 auf eine Diskette mit dem ext2 Dateisystem geschrieben.
Muss ich dann auch diese stage dateien drauf machen?

Wenn ja, WOHIN GENAU?
Direkt auf die Diskette?
Also kopier ich die direkt ohne Ordner auf die Diskette und führ dann grub-install aus?

Und dann sollte es gehen?
Oder was soll ich machen?
Ich hab wirklich kA, sry...

Übrigens:
Wenn ich unter laufenedem Linux auf USB-Stick grub ausführe, dann
root (hd1,0)
kernel /boot/vmlinuz root=/dev/sda1
bootgeht alles ohne Probleme und ich bin sofort wieder in Linux drin.

caspartroy
07.06.06, 22:23
wie man grub installiert steht in der grub dokumentation, die les ich jetzt nicht vor
yast wird nicht reichen für deinen fall

disk error kann auch ein zeit problem sein, passiert mir manchmal, ein neustart mit strg alt + entf und es geht.. oder vorher ins bios schauen (nur um zeit zu schinden)

kreol
07.06.06, 22:49
Die benötigten Dateien liegen bei SuSE 9 afaik in /usr/lib/grub. Schau mal nach, da sollten Dateien liegen wie stage1, stage2, e2fs_stage1_5, fat_stage1_5, ...etc.

Wenn Du eine funktionierende menu.lst hast, z.B.
root (hd1,0)
kernel /boot/vmlinuz root=/dev/sda1
bootdann kannst Du eine Bootdiskette mit
su
mke2fs /dev/fd0
mkdir /floppy
mount -t ext2 /dev/fd0 /floppy
mkdir /floppy/boot
cp -a /usr/lib/grub/ /floppy/boot/
cp /die/funktionierende/menu.lst /floppy/boot/grub/menu.lsterstellen. Anschließend als root "grub" aufrufen und
root (fd0)
setup (fd0)
quitausführen. Dann solltest Du eine bootdisk mit grub und der von Dir erstellten menu.lst haben.



Kreol

Mdk-10.2_User
08.06.06, 16:13
Wenn ich jetzt setup (fd0) ausführe, kommt

...
Running "embed /boot/grub/e2fs_stage1_5 (fd0)" failed (this is not fatal)
...

Wenn ich dann mit der Diskette boote, kommt nur die ganz normale GRUB-Shell.
Und wenn ich dann wieder versuche, root (hd1,0) auszuführen, kommt wieder nur "Error 21: Selected disk does not exist".

caspartroy
08.06.06, 16:17
dann musst du wohl direkt vom stick booten, ohne diskette. wenn du sicher bist, dass der stick nicht anders heisst, wird er anscheinend nur aktiviert, wenn er bootdevice ist. andere möglichkeit wäre, den kernel von diskette zu booten (wichtig, usb-storage per initrd zu laden) und den stick als root zu mounten, direkt vom stick wäre aber schöner.
einziger nachteil sind die verschiedenen devicenummern auf verschiedenen rechnern, aber man kann sich ja für jeden rechner einen eintrag in die menu.lst machen

kreol
08.06.06, 16:22
Wenn ich jetzt setup (fd0) ausführe, kommt

...
Running "embed /boot/grub/e2fs_stage1_5 (fd0)" failed (this is not fatal)
...Mmh, vertrau mal auf das "this is not fatal" :cool:
Wenn ich dann mit der Diskette boote, kommt nur die ganz normale GRUB-Shell.Du bootest wirklich von Diskette? Ist das im BIOS so eingestellt?
Und wenn ich dann wieder versuche, root (hd1,0) auszuführen, kommt wieder nur "Error 21: Selected disk does not exist".Die Partition in der menu.lst auf der Diskette muß richtig angegeben sein, d.h., Du solltest a) sicher sein, daß der Stick tatsächlich als (hd1,0) erkannt wird und b) auch so in der menu.lst auf der bootdiskette eingetragen ist.


Kreol

caspartroy
08.06.06, 16:23
nachtrag: wenn die diskette ein ext2 fs enthält, bedeutet die fehlermeldung, dass grub die diskette nicht wird lesen können.
daher nur die shell
die menu.lst interessiert nicht für den befehl root
sie ersetzt ihn, aber zum probieren ist es einfacher den befehl von hand zu machen
um ein ext2 root zu erkennen braucht man e2fs_stage1_5 , für fat entsprechend fat_stage1_5

caspartroy
08.06.06, 16:28
ne andere frage, wie ist denn suse auf dem stick?
ist der mit nem linux filesystem formatiert? oder ist eine einzige filesystem datei drauf?

Mdk-10.2_User
08.06.06, 16:34
Ja, der Stick hat das ReiserFS, er ist dir Root (/) Partition.

Ich boote echt von Diskette, von USB will er aber irgendwie nicht mehr, auch wenn ich "USB-HDD" boot im BIOS einstelle, daher müsste dann Diskette herhalten.

Leider hab ich absolut keine Ahnung davon, wie ich den kernel EINFACH von Diskette booten kann.
Bitte genaue Anleitung...:rolleyes:

caspartroy
08.06.06, 16:44
was heisst, will nicht mehr? kommt operating system not found oder grub fehler oder grub shell oder bootet n anderes device?
anleitung gibts im internet ;-) einfach ne linux startdiskette erstellen

Mdk-10.2_User
08.06.06, 17:17
Er bootet generell nicht mehr vom USB-Stick... :(

Schick ich den einmal bei Medion ein, und danach das!!

Er bootet dann halt von einem anderen Gerät, je nachdem, wie ich es einstelle :)

Es gibt nicht mal mehr eine Meldung von USB, er bootet dann einfach die HD.

Mit 'ner GRUB-Bootdiskette geht es ja auch nicht, bis auf die eingebaute HD sagt er ja, existieren keine weiteren Laufwerke.

caspartroy
13.06.06, 10:09
falls es noch jemand interessiert: hier (http://www.mareichelt.de/pub/texts.boot-off-usb.php?alt_styles=) ist eine anleitung, die auf das problem eingeht, dass ein usbstick zeit braucht... ich habe die anleitung nicht getestet und bei mir gings ohne patch, es war nur ab und an eine startverzögerung nötig, und ich denke, ein schneller usb-stick macht auch was aus.

Stephanw
13.06.06, 17:40
Wenn ich per BIOS von USB starte, kümmert sich imho das BIOS um die Emulation. In diesem Falle denkt der grub auf dem Stick, es würde sich um eine ganz normale Festplatte handeln.

Bei der Variante, die ihr vorhabt, müsste grub an sich USB- sowie USB-Storage-Treiber mitbringen. Ich wüsste nicht, dass das so ist. Sollte ich recht haben, kann man das Unterfangen auf diese Weise sowieso vergessen.

Wieso erstellst du nicht eine Linux-Startdiskette mit dem Kernel auf der Disk. Dazu eine initrd mit ein wenig intelligenz die erkennt, unter welcher Device-Node der Stick erreichbar ist und das Mounten des richtigen Rootdateisystems veranlasst.

Gruß Stephan

caspartroy
14.06.06, 08:29
ist schon klar, dass das bios sich drum kümmert, aber es ist zu langsam, sodass es einmal nicht funktioniert (grub error) und ohne änderung des sticks nach einem warm restart funktioniert es, wenn ich vorher ins bios menue gehe funktioniert es auch immer!