![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Moin moin! Vorab ersteinmal: Ich habe schon etliche Zeit damit verbracht im Internet Informationen zum Thema "Booten eines ISO-Images von Festplatte" zu finden. Ich bin dabei immer auf Äußerungen gestoßen wie "Wozu brauchst du das? Warum lädst du nicht eine LIVE-CD runter, brennst sie und bootest von der CD?" etc. Bitte verschont mich mit diesem Müll! Was ich will ist ein Bootloader - egal welcher Art, hauptsache es funktioniert - der ISO-Images von einer Festplatte booten kann. Hintergrund ist der: Ich möchte eine Festplatte erstellen, auf der ich einfach nur die Images in ein Verzeichnis kopiere und der Bootloader diese dann startet, als hätte ich eine CD ins Laufwerk gelegt. Das ist erstmal die Grundvoraussetzung. Wenn es dann noch funktioniert, wäre ein Boot-Menü noch super, über das man auswählen kann, welches Image man starten will. Wenn nur das Erste klappt wäre ich aber auch schon zufrieden. Für den Fall, dass jemanden interessiert, was ich wirklich damit will: Ich fände es einfach praktisch, eine Festplatte zu haben (verpackt in ein USB-Gehäuse), über die ich verschiedene Tools starten kann. Z.B. bieten fast alle Festplattenhersteller ISO-Images für Festplatten-Diagnose-Tools, Image-Programme (z.B. Norton Ghost) kann auch von CD gebootet werden, Backup-Images sind meist bootfähige CDs, Installations-CDs für Windows sind es sowieso... Es gibt tausend gute Anwendungsbeispiele, wenn es nur möglich wäre ein ISO-Image von Festplatte zu starten - mal abgesehen vom besten Argument meiner Meinung nach: Kein CD-Verschleiß! Endlich Images nutzen, ohne einen Rohling parat haben zu müssen!!! Also: Wenn jemand eine Idee hat, wie das funktionieren kann, irgendwo einen Link hat zu einem Blog / Forum / Chatlog, in dem ein findiger Mensch meinetwegen einen Mod veröffentlicht hat, über den das möglich ist, bitte teilt euer Wissen mit mir! Ich möchte mich nicht mit dem blödsinnigen Argument abspeisen lassen "Das geht nicht, CDs sind keine Festplatten" - Deswegen ja auch der Bootloader, der das emulieren soll. Möglich ist das auf alle Fälle, sonst könnte man ja auch keine Diskettenlaufwerke oder Festplatten emulieren... Es ist nur die Frage, ob jemand eine Software kennt, die als Bootloader ein CD-Laufwerk emuliert... Danke schonmal fürs Lesen! EDIT: Ich habe nach einiger Recherche nun einen eventuell möglichen Workaround gefunden, der für mich als nahezu Linux-Laie jedoch eher kryptisch ist - so es denn trotzdem funktioniert. Undzwar habe ich gerade über zig Links die Info gefunden, dass es möglich sein soll über VMWare (oder vergleichbar) ISO-Images zu booten. VMWare gibt es ja auch für Linux und da ich Windows im Bezug auf Hardwareunabhängigkeit im Gegenzu zu z.B. Knoppix mal ganz und gar nicht vertraue, bleibt eigentlich nur ein protables Linux auf der Festplatte mit VMWare zu installieren. Hier wäre dann ein Auswahlmenü in der Konsole (das geht ja über Shell-Scripte) cool, über das ich auswählen kann, welches Image ich laden will und dann startet der das über VMWare - ohne komplizierte Eingabe von Startbefehlen in der Konsole (das macht dann das Auswahlmenü für mich). Dummerweise weiß ich halt nicht, ob es aus der Konsole heraus möglich ist VMWare zu starten und ob es möglich ist, die Konfiguration gleich so zu übergeben, dass die gebootete VM direkten Zugriff auf die Hardware hat, als wäre es eine CD im Laufwerk. Mir geht es dabei vornehmlich um die Laufwerke bzw. die Partitionen auf der eingebauten Festplatte. Schließlich will ich ja mit den Diagnose-Tools darauf zugreifen. Das wirft im Übrigen die nächste Frage auf: Haben VMs die nötigen Rechte für derartige Tools oder blockiert VMWare den Zugriff? Vielleicht hat hier ja jemand Erfahrung damit!? Geändert von MrNiceGuy (12.03.2009 um 05:49 Uhr) |
| | |
| | Nach oben #2 |
| Registriert seit: 10.11.2005 Ort: Schweiz -> Basel
Beiträge: 227
|
Also mit unetbootin kannst du Images auf ne Festplatte übertragen, die dann Bootbar sind. Ob sich das ganze auf die Auswahl im unetbootin-Menü beschränkt, müsstest du probieren. Ansonsten mal syslinux anschauen.
|
| | |
| | Nach oben #3 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 3.198
|
im Prinzip sowas? http://neumayr.be/blog/?p=21 und das dann als Befehl in die Autostart-Geschichte mit runlevel verknüpfen...
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #4 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Mounten ist ja nicht gleich Booten... Ich will ja nicht nur auf die Daten des Images zugreifen, es soll schon das gebootet werden, was auf dem CD-Image drauf ist (z.B. Windows XP Setup). syslinux habe ich schonmal geschaut, aber irgendwie bot es mir nicht das, was ich suche - oder ich habe falsch geschaut!? Ansonsten möchte ich eigentlich nicht für jedes Image, das ich bootbar machen möchte eine eigene Partition anlegen, mal abgesehen davon, dass ich nicht glaube, dass es Bootmanager gibt, die mit mehr als 10 Einträgen klarkommen!? *kratzamkopf* |
| | |
| | Nach oben #5 |
| Registriert seit: 10.11.2005 Ort: Schweiz -> Basel
Beiträge: 227
|
Syslinux bietet dir nur einen Teil der Lösung. Nämlich einen Bootloader den du auf FAT verwenden kannst. Jetzt muss man nur noch eine Lösung finden, wie man die ISOs so zurechtbiegt, dass sie im Zusammenspiel passen. Dazu wüsste ich auch keine Lösung. Aber es gibt bestimmt Scripte die dir das ermöglichen. Zumindest hat Ubuntu EEE anfangs auf so eine Lösung gesetzt. Ein Bootloader kann (fast) unbegrenzt Einträge haben. Ich denke Syslinux wird es mittlerweile auch geschafft haben, Kernel mit mher als einem halben MB zu booten. |
| | |
| | Nach oben #6 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 626
|
Öööööhmm..... ich habe sowas zwar noch nie gemacht, aber: was passiert denn wenn man in der devicemap von grub einfach ein iso-file eingibt? Wenn ich Lust habe probiere ich das ganze nachher mal aus. Und weil ich einfach nicht anders kann: Wozu brauchst du das? Warum lädst du nicht eine LIVE-CD runter, brennst sie und bootest von der CD? |
| | |
| | Nach oben #7 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Häte ich gerade einen Linux-Rechner zur Verfügung, würde ich es auch testen - so ich denn wüsste, wie das geht *gg*. Im Grunde muss sowas doch irgendwie funktionieren, nur leider habe ich bisher keine wirkliche Lösung im Internet gefunden (97% aller Beiträge bezogen sich lediglich auf eine Live-CD/DVD und waren schnell abgetan und ca. 3% endeten im Nichts zwischen Grub, Syslinux und anderen Dingen, die aber nicht das boten, was ich geboten bekommen möchte). |
| | |
| | Nach oben #8 |
| Jonas Registriert seit: 03.06.2006
Beiträge: 331
|
Hmm, das hier könnte was für dich sein: https://gna.org/projects/grub4dos/ http://grub4dos.sourceforge.net/wiki....php/Main_Page Wenn ich Zeit habe, probier ich das auch mal aus.
__________________ Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
| | |
| | Nach oben #9 | |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Das scheint genau das zu sein, was ich suche: http://grub4dos.sourceforge.net/wiki/index.php/Features Zitat:
| |
| | |
| | Nach oben #10 |
| Jonas Registriert seit: 03.06.2006
Beiträge: 331
|
So, hab es mal mit meinem USB-Stick und zwei ISO-Images ausprobiert und es hat geklappt. Ich werde das ganze mal als kleines Tutorial schreiben und dann nachher hier rein posten. EDIT: Hier also meine Anleitung: Wichtig ist noch zu sagen, dass ich das ganze unter Linux installiert habe, also eine Installation unter Windows möglicherweise etwas anders verläuft (habe das entsprechend markiert). 1. Download Grub4Dos http://download.gna.org/grub4dos/?M=D Die aktuellste Version ist die oberste. Das ganze dann natürlich noch entpacken. 2. Datenträger vorbereiten 2.1 Unter Linux (getestet) Zuerst habe ich alles vom Stick gelöscht und dann zwei neue primäre FAT32-Partitionen erstellt. Die erste mit der minimalen Größe (~32MB) und die zweite mit dem Rest. Warum ich das gemacht habe erkläre ich später. Dann auf der Konsole in den entpackten Ordner gehen und folgendes ausführen: Code: sudo ./bootlace.com /dev/sdb Danach müsst ihr noch die Datei grldr auf die erste Partition kopieren und dort ebenfalls eine neue Datei menu.lst erstellen. Da wir zwei Partitionen haben benötigen wir noch eine Datei, deren Namen nur auf der Hauptebene des USB-Sticks zu finden ist und nicht auf der Hauptebene andere Festplatten/CDs, die beim Bootvorgang ansprechbar sind. Nur so ist es Grub4Dos möglich die richtige Partition mit den Isos zu finden. Ich habe bei mir einfach eine leere Datei mit einem zufälligen Namen (beispielsweise ein md5-Hash einer zufälligen Zeichenkette) erstellt. Diese Datei kopieren wir dann auf die zweite Partition, auf die später auch die Iso-Dateien kommen. 2.2 Unter Windows (ungetestet) Hier denke ich, dass es reicht eine Partition zu erstellen. Um den Bootsektor zu installieren sollte man hier gucken: http://grub4dos.sourceforge.net/wiki...ot_code_to_MBR Danach müsst ihr noch die Datei grldr auf die erste Partition kopieren und dort ebenfalls eine neue Datei menu.lst erstellen 3. Iso-Dateien kopieren Jetzt werden die Iso-Dateien auf die jeweilige Partition kopiert (Windows: einfach drauf, Linux: zweite Partition). Unter Linux sollte man die Dateien nacheinander kopieren, da sonst möglicherweise die Fehler auftreten, die man mit den zwei Partition umgeht. (Ungetestet, was bei gleichzeitigem Kopieren passiert.) 4. menu.lst bearbeiten Für allgemeine Einträge, wie die Farben im Boot-Menü kann man sich folgende Seite angucken: http://diddy.boot-land.net/grub4dos/files/menu.htm Dann erstellt man für jedes Image folgenden Eintrag: Linux: Code: title Name, welcher im Bootmenü erscheinen soll find --set-root /name-der-zufälligen-datei-zur-identifizierung map /name-der-iso-datei.iso (hd32) map --hook root (hd32) chainloader (hd32) Code: title Name, welcher im Bootmenü erscheinen soll map /name-der-iso-datei.iso (hd32) map --hook root (hd32) chainloader (hd32) Wie hier im ersten Absatz zu lesen ist, gibt es Probleme, wenn die Iso-Dateien auf der Festplatte nicht zusammenhängend (also fragmentiert) gespeichert ist. Wenn es beim Versuch eine Iso-Datei zu booten zum "Error 60: File for drive emulation must be in one contiguous disk area" kommt ist die Datei fragmentiert. Unter Windows müsste man das ganze mit einem einfachden Defragmentieren lösen können. Da es unter Linux keine Defragmentierungs-Programme gibt (weil die Linux-Dateisysteme (fast) keine Defragmentierung kennen) ist dies unter Linux natürlich nicht möglich. Aus diesem Grund habe ich zwei Partitionen erstellt. Auf der einen kann man die menu.lst schön editieren, ohne die Iso-Dateien zu stören. Möchte man jetzt ein neues Iso-Image hinzufügen kann man das einfach hinzufügen (ungetestet). Will man jedoch ein Image ersetzen steht man vor dem Problem, dass ein Löschen und neu Hinzufügen einer neuen Version diese neue Version fragmentiert. Also bleibt einem unter Linux keine andere Wahl als die Isos temporär anderswo zu speichern, die Partition zu formatieren und die Isos neu draufzukopieren. Folgende Sachen könn(t)en das umgehen:
__________________ Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL Geändert von Artemis (14.03.2009 um 13:31 Uhr) |
| | |
| | Nach oben #11 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Vielen Dank schonmal für deine Mühe! Ich werde das ebenfalls testen, sobald ich Zeit dazu habe - allerdings bin ich ab morgen mal wieder für 3 Wochen unterwegs, keine Ahnung, ob ich da dann die Zeit dazu finde... Wird sich zeigen. Klingt aber auf jeden Fall schonmal super, was du da geschrieben hast und ich glaube, dass es die bisher erste Anleitung für eben genau dieses Thema ist :) *freu*
|
| | |
| | Nach oben #12 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
@Artemis: Vielen Dank nochmal für deine Mühen. Ich habe nun endlich die Zeit gefunden, mich mal näher mit dieser Materie zu befassen und habe dabei feststellen müssen, dass es doch wohl nicht ganz so einfach zu sein scheint, wie es erst aussieht!? Ich habe eine 20GB-Festplatte an USB hängen, diese mittels Datenträgerverwaltung in eine 64MB-Partition und eine mit dem Rest des Speichers aufgeteilt. Beide sind primäre Partitionen. Danach habe ich mit dem GUI-Tool von grubinst die Festplatte und danach die 64MB-Partition ausgewählt. grldr auf die 64MB-Partition kopiert, die menu.lst kopiert und editiert. Ich habe sogar die Partition als aktiv markiert, was eigentlich auch noch eine Rolle spielen sollte, sofern mein Gedächtnis mich nicht täuscht!? Doch egal, was ich mache, er meldet mir beim Versuch von der USB-Platte zu booten immer nur "Datenträger wechseln und Taste drücken". Für mich ein Anzeichen dafür, dass der Boot-Sektor scheinbar nicht (richtig) geschrieben wurde!? Oder hast du eine Idee, woran das liegen kann? Könnte auch eine falsche Konfiguration in der menu.lst der Auslöser sein? Ich habe die menu.lst aus der ZIP-Datei genommen, einen Eintrag hinzugefügt und die restlichen mit "#" auskommentiert. Die Standard-Einstellungen ganz oben habe ich so gelassen. Außerdem habe ich noch 2 kleine Fragen: Warum hast du in der ungetesteten Version den "find"-Parameter entfernt? Wird das nicht unterstützt? Und warum steht in Klammern dahinter immer "(hd32)"? In den Beispielen ist dort sonst immer "(0xff)" zu finden!? |
| | |
| | Nach oben #13 |
| Neuer Benutzer Registriert seit: 22.04.2009
Beiträge: 1
|
Hallo! Ich stand durch kaputtflashen meines Brenners vor dem hier angesprochenen Problem und muss erstmal sagen, dass mir dieser Thread und insbesondere die Anleitung von Artemis sehr geholfen haben. Bei mir hat es nach anfänglichen Schwierigkeiten gut mit grub4dos funktioniert, ein freedos-iso-image direkt von einer externen festplatte zu booten. Im Prinzip bin ich dabei nach der o.g. Anleitung vorgegangen.
Der Befehl "find --set-root" scheint mir schon wichtig zu sein, da er dafür verantwortlich ist, dass die Partition, auf der sich die/das im Parameter angegebene Datei/Verzeichnis befindet (auf's Beispiel bezogen also "das_image.iso"), zur root-Partition für grub wird, wodurch das bei map angegebene Image auf dieser Partition gesucht wird. Weiterhin ist es nicht unbedingt nötig, die Datei zur Identifizierung zu erstellen, man kann auch das Image angeben. Man hat nur eine Zeile weniger zu ändern, wenn man copy&paste nutzt, um mehrere Einträge zu erstellen. Die map-Zeile habe ich im Prinzip aus der Standard-menu.lst übernommen, genauer wird das mapping auch noch im wiki-Eintrag, den Artemis gepostet hatte, erklärt. Die Angaben in Klammern, z.B. (hd32) oder (0xff) geben an, wo das virtuelle Laufwerk, welches erstellt wird, "eingehangen" wird. Das macht das Laufwerk dann für weitere Befehle, wie chainloader, zugreifbar. Hierbei wurde wohl (hd32) oder (0xff) gewählt, da die Nummerierung aufsteigend ist [(hd0) gleichbedeutend mit (0x00), (hd1)||(0x01), ...] und es unwahrscheinlich ist, dass diese Bezeichnung schon vergeben ist (wer hat schon 33 oder gar 256 Platten im PC). Ich hoffe mal, ich konnte helfen, sodass es auch bei MrNiceGuy zum laufen kommt. |
| | |
| | Nach oben #14 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Vielen, vielen Dank! Es hat in der Tat funktioniert und lag einfach nur daran, dass ich den Bootsektor vorher nur auf die Partition geshcoben habe, statt in den MBR. Nun stellt sich mir die Frage: Musste ich es in Beides kopieren? Oder nur in den MBR? Im Endeffekt war es mit de MBR aber auch logisch, da mir wieder eingefallen ist, dass man das mit fdisk auch so machen musste. Allerdings frage ich mich widerum jetzt, wozu man in einzelne Partitionen ebenfalls Boot-Sektoren laden kann, wenn diese keinen Effekt auf das Boote haben!? Denn das hat bei mir ja leider nicht funktioniert!? Vielleicht weiß da noch jemand, warum das so ist? Falls nicht: Auch nicht schlimm, ich nehme es so hin und freue mich, dass es relativ reibungslos geklappt hat und die Platte jetzt Images direkt booten kann :) Vielen vielen Dank nochmal an alle! EDIT: Vielleicht sollte man das Tutorial (mit der Ergänzung des Boot-Sektors) als Tutorial in der entsprechenden Sektion aufnehmen!? Im Übrigen funktioniert die Vorgehensweise unter Windows analog zu der unter Linux - einzige Ausnahme: Man muss halt mit einem anderen Programm die Partitionierung machen, als unter Linux ;) |
| | |
| | Nach oben #15 | |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 3.198
| Zitat:
Aber dort kannst du das dann in Ruhe bearbeiten...
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! | |
| | |
| | Nach oben #17 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Eine Frage habe ich da allerdings doch noch: Es funktioniert bei mir jetzt soweit ganz gut, dass das Booten geht. Probleme bzgl Defragmentierung usw. hatte ich bisher nicht (sollte es aber auch nicht geben, wenn man nur eine Datei zur Zeit auf die Platte schiebt). Wie dem auch sei, die Windows XP-CD bootet ganz toll, lädt alle Treiber und dann... Tcha, genau das ist mein Problem. Beim Booten der CD wird ja erstmal alles an Treibern geladen, was auf der CD drauf ist. Danach beendet der Booter diesen Step und steigt um auf einen anderen (Boot-?)Bereich, in dem dann die Nutzungsbestimmungen angenommen werden müssen und angegeben wird, auf welches Laufwerk Windows installiert werden soll usw. Nun kommt er aber genau da nicht hin. Nach dem Verlassen des ersten Bereiches und vor dem Betreten des zweiteren Bereiches kommt ein Blue-Screen, der nicht wirklich weiterhilft. Ich vermute, dass es was mit der Emulation des CD-ROMs zu tun hat und dass das Setup-Programm dieses "Laufwerk" nachher nicht mehr wiederfindet. Kann da jemand näheres zu Sagen? Ich versuche noch die Zeit zu finden mich exzessiv mit der Doku auseinander zu setzen, aber vielleicht weiß ja jemand Anderes bereits mehr darüber und ich kann mir das sparen!? Ansonsten gehe ich eventuell den "Umweg" über ein bootbares DOS mit SMARTDRV und installiere es dann "von der Platte", das sollte dann ja eigentlich gehen!? |
| | |
| | Nach oben #18 | |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 626
| Zitat:
Mein Laptop macht den selben Fehler wenn ich von einer "normalen" XP-CD booten möchte. Da mag er das USB-CDRom nicht. Da steigt er an eben genau dieser Stelle aus. Höh? Smartdrv war damals der "Disc-Write-Cache" von Dos. Wie soll der dir helfen? | |
| | |
| | Nach oben #19 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Wenn du schonmal versucht hst, Windows XP von der Festplatte zu installieren (das i386-Verzeichnis auf einer Festplatte enthält dann eine setup.exe oder ähnliches), wirst du festgestellt haben, dass es ohne SMARTDRV gefühlte 4 Tage dauert, bis die Dateien kopiert uwrden. Deshalb wurde explizit am Anfang des Setups auf eben SMARTDRV hingewiesen, mit dem dieser "Fehler" dann nicht auftreten soll... Interessant, mit einem CD-ROM-Laufwrek an USB geht es also auch nicht? Dann scheint das Problem ja so garnicht lösbar zu sein!? |
| | |
| | Nach oben #20 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 626
|
Würde ich so nicht sagen. Funktioniert halt mit dem USB-CD-Rom nur mit einer entsprechenden OEM-CD. Ich denke mal da werden irgendwelche Treiber dafür da sein. Leider ist die Windows-Installation ja etwas undurchsichtig, aber ich denke, dass das ähnlich wie bei Linux ist. Das könnte dann also der Zeitpunkt sein indem das OS das Laufwerk "einhängt". Gruß Sparrow |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |