Christoph Schnauß: bootfähige Sammelsurium-CD

n'abends ;-)

Ich möchte mir gerne meine "alten" Installations-Sourcen (DOS 6.22, Win95, Win98, Win98SE) zusammen auf eine CD packen, also tatsächlich eine "Sicherheitskopie", damit ich den alten Krempel mal entsorgen kann und trotzdem die Software weiterhin zur Verfügung habe. Der ganze Kram  -  und noch einiges mehr  -  paßt auch prima auf eine CD. Was ich problemlos hinkriege, ist die autorun-Funktion, aber ich möchte gerne die ganze CD bootfähig haben.

Im Idealfall soll so etwas funktionieren: ich boote mit meiner CD und bekomme ein Menü angezeigt, das mich wählen läßt, was ich installieren möchte: DOS oder Win95 oder Win98 oder ob eins der bereits vorhandenen Systeme gestartet werden soll (der letzte Punkt dürfte der komplizierteste Teil sein).

Es gibt diverse Hinweise, wie ich eine Win2000-CD startbar machen kann, oder eine CD, auf der ich mein WinXP mit dem SP1 kombiniert habe. Die bootimages, die dafür angeboten werden, sind aber leider auf die entsprechenden Installationen zugeschnitten und lassen aich nicht für meinen Zweck umbauen (oder ich bin zu doof dafür).

Hat jemand nen sachdienlichen Hinweis?

Grüße aus Berlin

Christoph S.

  1. Moin,

    Hat jemand nen sachdienlichen Hinweis?

    Du nimmst dir eine der alten Windows-Versionen zur Hand und erstellt damit eine Startdiskette (das geht da irgendwo im Startmenü, kann mich leider nicht mehr genau erinnern wo). Dann suchst du dir DOS-CD-Treiber zusammen: a) Zu deinem CD-Laufwerk wurden welche mitgeliefert, dann nimm die oder b) boote von einer originalen Win98-CD, da sind nämlich auch welche drauf die du dir dann runterkopieren kann. Der CD-Treiber besteht mindestens aus einem Treiber (irgenwas.sys) der in der config.sys geladen wird und aus der mscdex.exe die in der autoexec.bat gestartet wird damit das Laufwerk später unter einem Buchstaben ansprechbar ist.

    Dann musst du dir noch ein Bootmenü basteln: Nimm entweder eine alte DOS-Version (die Hilfe wurde in den neueren zu Windows beliegenden DOS-Versionen leider extrem abgespeckt) und die dadrauf verfügbare Hilfe (help.com glaube ich) zum Thema config.sys dort wird dann alles zum bootmenü erklärt. Alternativ kannst du dir auch das Bootmenü der originalen Win98-CD nehmen, wenn du sie gebootet hast. Ist vielleicht gar nicht so schlecht, wenn du siehst was die CD macht um das Setup zu starten.

    Falls du keine DOS-Hilfe mehr finden kannst: Nicht verzagen, Google fragen: http://www.vfrazee.com/ms-dos/6.22/help/multi-config commands.htm.

    Das stellst du also alles auf einer bootfähigen Diskette zusammen (du solltest sie mehrfach ausprobieren) die du dann einfach als Bootimage auf die CD brennst. (Windows-Programme können in der Regel eine Diskette auslesen, ansonsten nimm dir Linux zur Hand, mach ein dd if=/dev/fd0 of=bootdisk.img und wähle dann diese Image zum Booten aus, mit mkisofs zum Beispiel unter dem Parameter -b.)

    --
    Henryk Plötz
    Grüße aus Berlin
    1. hi Henryk,

      Das stellst du also alles auf einer bootfähigen Diskette zusammen [...] die du dann einfach als Bootimage auf die CD brennst.

      Nee, das funktioniert leider nicht, hab ich durchgespielt. Die CD startet in diesem Fall so, als ob sie eine Diskette wäre, das heißt, von meinen ca 630 MB Software auf der CD sind 1,44 MB zugänglich, der gesamte Rest ist weg. Ich habe das sowohl mit mkisofs wie auch mit NERO unter Windows probiert.

      Grüße aus Berlin

      Christoph S.

      1. Hallo Christoph,

        Nee, das funktioniert leider nicht, hab ich durchgespielt. Die CD startet in diesem Fall so, als ob sie eine Diskette wäre, das heißt, von meinen ca 630 MB Software auf der CD sind 1,44 MB zugänglich, der gesamte Rest ist weg. Ich habe das sowohl mit mkisofs wie auch mit NERO unter Windows probiert.

        Ich habe irgendwo mal gelesen, dass El Torito CDs (also Bootfähige) mehrere Startdiskettenimages beinhalten können und diese dann über eine Liste ausgewählt werden können. Wo weiß ich leider nicht mehr, aber vielleicht hilft Dir dieser Hinweis ja...

        Christian

        --
        Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
      2. Moin,

        Nee, das funktioniert leider nicht, hab ich durchgespielt. Die CD startet in diesem Fall so, als ob sie eine Diskette wäre, das heißt, von meinen ca 630 MB Software auf der CD sind 1,44 MB zugänglich, der gesamte Rest ist weg.

        Richtige Beobachtung, falscher Schluß. Für bootfähige CDs nach ElTorito emuliert das BIOS in der Regel eine bootfähige Diskette die genau das auf der CD abgelegte Image (von 1.44 oder 2.88 MB) enthält. D.h. dein bisheriges Diskettenlaufwerk wird unsichtbar und du kannst auf den Rest der CD nur zugreifen, wenn du einen CD-Treiber geladen hast (ja, DOS hat von sich aus keinen Treiber).

        Ich habe das sowohl mit mkisofs wie auch mit NERO unter Windows probiert.

        Dito.

        --
        Henryk Plötz
        Grüße aus Berlin
        1. hallo Henryk,

          Für bootfähige CDs nach ElTorito emuliert das BIOS in der Regel eine bootfähige Diskette die genau das auf der CD abgelegte Image (von 1.44 oder 2.88 MB) enthält. D.h. dein bisheriges Diskettenlaufwerk wird unsichtbar und du kannst auf den Rest der CD nur zugreifen, wenn du einen CD-Treiber geladen hast

          Das krieg ich nicht ganz auf die Reihe. Mein BIOS wird abgefragt, _bevor_ in irgendwelchen Laufwerken nachgeschaut wird, ob da eventuell irgendein Medium drinliegt. Da wird nix emuliert.

          Die Startdisketten, mit denen ich das durchgespielt habe, waren DOS-Disketten (da hast du recht mit dem Hinweis auf fehlende CD-ROM-Treiber), aber auch Win98-Startdisketten, und die bringen bekanntlich CD-ROM-Treiber mit. Die CD erkennt sich durchaus selbst, und wenn ich in Laufwerk A: eine leere formatierte Diskette liegen habe (nicht bootfähig), "sieht" er die auch, und auch mit dem korrekten Laufwerksbuchstaben  -  Voraussetzung ist allerdings, daß ich die Bootsequenz im BIOS richtig eingestellt habe (CDROM, Diskette, Fesplatte, Netzwerkmedium).
          Das heißt, am eventuell fehlenden CDROM-Treiber kanns nicht liegen.

          Grüße aus Berlin

          Christoph S.

          1. Moin,

            Das krieg ich nicht ganz auf die Reihe. Mein BIOS wird abgefragt, _bevor_ in irgendwelchen Laufwerken nachgeschaut wird, ob da eventuell irgendein Medium drinliegt. Da wird nix emuliert.

            Preisfrage: Wer bootet die bootfähige CD? Richtig, das BIOS. Um zu booten schaut es entsprechend deiner Einstellung der Bootreihenfolge (bzw. bei mir kann ich während des Startens eine Taste drücken um ein Auswahlmenü zu bekommen) nach dem ersten bootfähigen Dingsda das es findet. Wenn das eine ElTorito-CD ist, emuliert es aus dem darauf abgelegten Image ein Diskettenlaufwerk und macht dann dieses Laufwerk zum Bootmedium. Anschließend findet sich auf Laufwerk A: (man kann IIRC auch nach dem Start in DOS an der Laufwerkszuordnung rumspielen, wenn man es kann) der Inhalt des Images und der Rest der CD bleibt zunächst verborgen. Für den muss man dann extra einen Treiber laden.

            Das heißt, am eventuell fehlenden CDROM-Treiber kanns nicht liegen.

            Kann was nicht liegen? Vorhin hast du geschrieben, dass du nach dem Booten die CD nicht mehr siehst, und eben hast du das Gegenteil ("die CD erkennt sich durchaus selbst") behauptet.

            --
            Henryk Plötz
            Grüße aus Berlin
            1. hi,

              Das heißt, am eventuell fehlenden CDROM-Treiber kanns nicht liegen.
              Kann was nicht liegen? Vorhin hast du geschrieben, dass du nach dem Booten die CD nicht mehr siehst, und eben hast du das Gegenteil ("die CD erkennt sich durchaus selbst") behauptet.

              'tschuldigung, dann war ich allenfalls zu kurz. Die CD erkennt sich auch im "vorhin" beschriebenen Fall selbst  -  und auch mit dem gewünschten Laufwerksbuchstaben. Nur "A:" ist, wenn kein Medium drinliegt, nicht vorhanden.

              Christoph S.

              1. Moin,

                'tschuldigung, dann war ich allenfalls zu kurz. Die CD erkennt sich auch im "vorhin" beschriebenen Fall selbst  -  und auch mit dem gewünschten Laufwerksbuchstaben. Nur "A:" ist, wenn kein Medium drinliegt, nicht vorhanden.

                Das ist ja merkwürdig, bei mir war A: dann bisher immer das emulierte Image. Evt. ist es auf einen anderen Laufwerksbuchstaben gerutscht, oder durch eine Option ganz verboten worden? mkisofs hat da durchaus einige Sachen die man für ElTorito einstellen kann. Wobei mir grade eine auffällt die dir besonders gefallen könnte: -hard-disk-boot, damit könnte man ein ganzes Festplattenimage zum Booten nehmen. (Falls dir der Platz ausgeht.)

                --
                Henryk Plötz
                Grüße aus Berlin
                1. Hallo Henryk,

                  Das ist ja merkwürdig, bei mir war A: dann bisher immer das emulierte Image.

                  Nur, damit Du nicht so alleine mit Deiner Aussage dastehst: bei mir auch. (das weiß ich ganz sicher, weil ich heute mein Win98 endlich mal neu installiert habe)

                  Christian

                  --
                  Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
              2. Hallo,

                'tschuldigung, dann war ich allenfalls zu kurz. Die CD erkennt sich auch im "vorhin" beschriebenen Fall selbst  -  und auch mit dem gewünschten Laufwerksbuchstaben. Nur "A:" ist, wenn kein Medium drinliegt, nicht vorhanden.

                Genau, und darum klappt es auch mit einer _normalen_ Startdiskette und CD-ROM-Treibern darauf _nicht_. Nach der Installation des CD-ROM-Treibers müsste da ja die CD _gleichzeitig_ A: und D:(E: ...) sein. Das hängt sich bei dem Versuch, den CD-ROM_Treiber zu installieren auf. Da muss irgendwie was in einer RAM-DISK passieren.

                Das "Starten mit CD-ROM Unterstützung" der Win98-System-CD lädt folgende Gerätetreiber:
                device=himem.sys /testmem:off
                device=oakcdrom.sys /D:oemcd001
                device=btdosm.sys
                device=flashpt.sys
                device=btcdrom.sys /D:oemcd001
                device=aspi2dos.sys
                device=aspi8dos.sys
                device=aspi4dos.sys
                device=aspi8u2.sys
                device=aspicd.sys /D:oemcd001

                Keine Ahnung, was dort wofür zuständig ist. Aber irgendwie schafft es diese Konfiguration, dass sowohl dir a:, als auch dir d:(e: ...) auf die CD zugreift. Damit läuft dann das System auf A: und man kann Daten von D:(E: ...) lesen.

                viele Grüße

                Axel

  2. Hallo,

    Eine bootfähige DOS-CD.

    Nimm eine Win98 SE CD.
    Boote von dieser CD
    Wähle aus dem Bootmenü: PC ... starten (mit CD-Unterstützung oder ohne ist egal.)
    Nun hast Du eine RAM-Disk A: mit dem bootfähigen CD-System.
    Kopiere diese RAM-Disk auf eine Diskette.
       A:>c:\windows\command\diskcopy a: b:
    Diese Diskette kannst Du nun in Deiner Brenn-Software als Quelle für das Boot-Image angeben. WinOnCD kann das jedenfalls.

    Ein Menü gibt es da schon, gesteuert durch config.sys und autoexec.bat. Das kannst Du ggf. erweitern.

    viele Grüße

    Axel

    1. hallo,

      Die Idee, die RAM-Disk zu kopieren, liest sich erstmal erfolgversprechend (habs jetzt noch nicht durchgespielt).

      Nun hast Du eine RAM-Disk A: mit dem bootfähigen CD-System.

      Nur der Vollständigkeit halber: die RAM-Disk heißt niemals "A:"

      Ein Menü gibt es da schon, gesteuert durch config.sys und autoexec.bat. Das kannst Du ggf. erweitern.

      Richtig ist, daß ich das Menü mit etwas Fuzzelei erweitern kann. Richtig ist (höchstwahrscheinlich) auch, daß ich dann das eventuell gewünschte Setup aus einem der "Verzeichnisse" meiner CD aufrufen kann. Problematisch wird aber  -  wie angeführt  -  ein Punkt "vorhandenes System starten". Etwas Vergleichbares gibts in YAST2 auf den SuSE LINUX 8.1 CD's, aber das läßt immer nur zu, ein vorhandenes SuSE LINUX zu starten, ein vorhandenes Windows zu starten, geht da auch nicht (oder ich habs noch nicht rausgefunden, wie).

      Das Problem scheint zu sein  -  wobei ich mich iren kann  -  daß die RAM-Disk de facto den MBR des Rechners umgeht. Ich bin da sehr unsicher, weil die Partitionstabelle, die schließlich auch im MBR liegt, korrekt ausgelesen wird, aber mein Bootmanager nicht angesprochen werden kann

      weitere Ideen?

      Grüße aus Berlin

      Christoph S.

      1. Moin,

        Die Idee, die RAM-Disk zu kopieren, liest sich erstmal erfolgversprechend (habs jetzt noch nicht durchgespielt).

        Das ist keine RAM-Disk sondern ein emuliertes Diskettenlaufwerk...

        Nur der Vollständigkeit halber: die RAM-Disk heißt niemals "A:"

        ...deswegen heisst es in der Regel A:. (Ja die Standard-Boot-CD legt IIRC zusätzlich eine RAM-Disk an, das ist davon aber unabhängig.)

        Problematisch wird aber  -  wie angeführt  -  ein Punkt "vorhandenes System starten".

        Das kann auch so nicht direkt gehen. Du müsstest dir dann ein kleines Programm schreiben, was direkt den Bootlader des jeweiligen Systems anspringt und vorher gegebenenfalls Modifikationen an der Konfiguration vornimmt (emuliertes Laufwerk entfernen und echtes Laufwerk wieder einbinden etwa). Das C-Buch deiner Wahl und Ralf Brown's Interrupt List dürften dich dabei unterstützen.

        Etwas Vergleichbares gibts in YAST2 auf den SuSE LINUX 8.1 CD's, aber das läßt immer nur zu, ein vorhandenes SuSE LINUX zu starten, ein vorhandenes Windows zu starten, geht da auch nicht (oder ich habs noch nicht rausgefunden, wie).

        Das liegt daran, dass bei YaST der Kernel geladen bleibt und YaST 'einfach' (naja, man muß da schon ein bisschen tricksen, mit pivot_root(2) zum Beispiel) nur die Dateisysteme ummountet und den init vom anderen System startet.

        Das Problem scheint zu sein  -  wobei ich mich iren kann  -  daß die RAM-Disk de facto den MBR des Rechners umgeht.

        Nein, das BIOS legt eine Emulation an und macht das emulierte Diskettenlaufwerk zum Startmedium.

        weitere Ideen?

        Installiere grub auf der Bootdiskette. Das kann a) fast beliebige Systeme starten und lässt b) das Editieren des Bootmenüs noch während des Bootens zu (wenn man weiss was man tut). Von dort aus könntest du auch den ebenfalls auf CD abgelegten DOS/Windows-Teil starten, auch wenn das evt. kompliziert wird. (Idee: Die Bootdiskette in ein 1.44MB-Image schreiben und dieses zusammen mit grub auf eine emulierte 2.88MB-Diskette packen.)

        --
        Henryk Plötz
        Grüße aus Berlin
      2. Hallo,

        Die Idee, die RAM-Disk zu kopieren, liest sich erstmal erfolgversprechend (habs jetzt noch nicht durchgespielt).

        Nun hast Du eine RAM-Disk A: mit dem bootfähigen CD-System.
        Nur der Vollständigkeit halber: die RAM-Disk heißt niemals "A:"

        Naja, sie wird jedenfalls als A: angezeigt und kann mit diskcopy a: b: auf eine Diskette kopiert werden. Probier's aus. Es geht wirklich. Ich habe mehrere solcher CDs.

        Ein Menü gibt es da schon, gesteuert durch config.sys und autoexec.bat. Das kannst Du ggf. erweitern.
        Richtig ist, daß ich das Menü mit etwas Fuzzelei erweitern kann. Richtig ist (höchstwahrscheinlich) auch, daß ich dann das eventuell gewünschte Setup aus einem der "Verzeichnisse" meiner CD aufrufen kann. Problematisch wird aber  -  wie angeführt  -  ein Punkt "vorhandenes System starten".

        Naja, durch neu booten und Auswahl aus dem Bootmanager der HD halt?

        Etwas Vergleichbares gibts in YAST2 auf den SuSE LINUX 8.1 CD's, aber das läßt immer nur zu, ein vorhandenes SuSE LINUX zu starten,

        Ohne neu zu booten?

        ein vorhandenes Windows zu starten, geht da auch nicht (oder ich habs noch nicht rausgefunden, wie).

        Das _kann_ auch nicht mit WinDOSen (Win9x) gehen. Mit NT und -Nachfolgern würde es schon gehen, wenn Du den NTLDR irgendwie in ein Boot-Image und auf die CD kriegst, und auf der CD dann eine boot.ini mit den entsprechenden Einträgen hast. Aber auch dabei wird im Prinzip neu gebootet.

        Das Problem scheint zu sein  -  wobei ich mich iren kann  -  daß die RAM-Disk de facto den MBR des Rechners umgeht. Ich bin da sehr unsicher, weil die Partitionstabelle, die schließlich auch im MBR liegt, korrekt ausgelesen wird, aber mein Bootmanager nicht angesprochen werden kann

        Klar, Fdisk kann die Partitionsabelle auslesen und sogar verändern. Das kann es ja nach dem Booten von einer Diskette auch. Gebootet ist aber nun mal gebootet <IMHO>.

        viele Grüße

        Axel