1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

DOS - Boot-CD für 2 Laufwerke

Discussion in 'Programmieren' started by athlon2001, Aug 25, 2005.

Thread Status:
Not open for further replies.
  1. athlon2001

    athlon2001 Kbyte

    Hallo,

    ich arbeite desöfteren mit Norton Ghost, welches ich von meiner Boot-CD (basierend auf der Win98 Startdiskette) starte.
    Da ich (wie mittlerweile wohl die meisten) 2 DVD-Laufwerke bzw. Brenner habe, möchte ich erreichen, dass die Boot-CD läuft, egal in welches Laufwerk ich die CD eingelegt habe.
    Nach meinen bescheidenen DOS-Kenntnissen wird der CD-ROM-Treiber ja in der autoexec.bat aufgerufen und man muss einen Laufwerksbuchstaben festlegen (lh MSCDEX.EXE /D:mscd001 /L:Y). Ich habe Y: genommen, sodass die beiden Laufwerke dann Y: und Z: sind.
    Ich habe schon versucht mit If...Exist zu arbeiten, allerdings bleibt "er" hängen, wenn die erste Bedinung nicht erfüllt ist. Als ich es vorher unter "Windows-DOS" ausprobiert habe, ging es aber.

    Nun ja, wie könnte ich das hinkriegen, dass Ghost gestartet wird, egal ob die CD in Y: oder Z: ist ???
     
  2. ghost60

    ghost60 Halbes Gigabyte

    Du brauchst eigentlich keinen Laufwerksbuchstaben angeben ,das macht der Treiber ,er vergibt die nächst möglichen .Macht er bei mir auch.
     
  3. athlon2001

    athlon2001 Kbyte

    Aber wenn ich dann Ghost starten will - per Batch - muss ich einen Laufwerksbuchstaben angeben. In meinem Fall entweder Z:\ghost.exe oder Y:\ghost.exe.
     
  4. franzkat

    franzkat CD-R 80

    Das spielt doch keine Rolle. Das Laufwerk, von dem du bootest bekommt den zugewiesenen Laufwerksbuchstaben.
     
  5. ghost60

    ghost60 Halbes Gigabyte

    Wieviel Laufwerke hast du den ,die von DOS-Startdiskette erkannt werden .Da zeigt der Treiber an welche Laufwerksbuchstaben den CD Laufwerken zugeteilt wurden ,nur diese kannst du auch auswählen .
     
  6. athlon2001

    athlon2001 Kbyte

    Ja, aber ich möchte per Batch das Programm Ghost aufrufen. Und das geht nur, wenn ich den Laufwerksbuchstaben weiss, oder ?!
    Bisher lautet mein Aufruf: Y:\ghost.exe
    Wenn ich aber die CD in das andere Laufwerk (Slave) lege, müsste es Z:\ghost.exe lauten.

    Ich möchte erreichen, dass es funktioniert, egal in welchem Laufwerk die CD ist.

    Meine Idee: if exist Y:\ghost.exe (Y:\ghost.exe) else Z:\ghost.exe funktionierte als Test in der Windows-Eingabeaufforderung, aber im "echten" DOS bleibt er stehen, wenn die 1. Bedingung (also CD in Y) nicht erfüllt ist.
     
  7. ghost60

    ghost60 Halbes Gigabyte

    Wenn der Treiber dem CD Laufwerk Bsp.weise F: zuordnet stimmt das aber nicht .Deshalb PC mit der Startdiskette booten um zu sehen welche Buchstaben den CD Laufwerken zugeordnet werden und danach die Datei erstellen .
     
  8. athlon2001

    athlon2001 Kbyte

    So kommen wir nicht weiter.

    Trotzdem danke für die Mühe...
     
  9. [Zeus]

    [Zeus] ROM

    Ich glaube der Treiber gibt den Laufwerken einen namen z.b.: d und e. und du y und z.In win funktioniert das vielleicht aber in dos nicht. versuch mal die namen vom treiber zu nehmen
     
  10. TheD0CT0R

    TheD0CT0R Dr. h.c. Mod

    Warum nicht einfach ghost :confused:

    Die ghost.exe liegt doch im Stammverzeichnis, oder seh ich das falsch?
     
  11. athlon2001

    athlon2001 Kbyte

    Okay, ich versuche es nochmal anders zu formulieren:

    Ich möchte eine bootfähige CD erstellen, die nach dem Booten automatisch die Datei ghost.exe startet. Dabei soll es egal sein, in welchem Laufwerk diese CD liegt. Ich z. B. habe 2 DVD-Laufwerke (ROM und Brenner).
    Im DOS kann man aber eine Anwendung nur aufrufen, wenn man den Pfad angibt. Dieser Pfad beginnt immer mit dem Laufwerksbuchstaben. Logischerweise ist Laufwerksbuchstabe beim DVD-ROM ein anderer als beim Brenner.

    Wenn man z. B. Windows XP installiert funktioniert das ja auch, egal in welchem Laufwerk die DVD liegt.
     
  12. TheD0CT0R

    TheD0CT0R Dr. h.c. Mod

    Poste doch mal den Inhalt der autoexec.bat. Da steht ja der Aufruf der ghost.exe drin, oder?


    Es ist so, du musst den Pfad nicht angeben wenn du dich bereits im passenden Verzeichnis befindest. Und wenn die ghost.exe im Stammverzeichnis der CD liegt dann sollte der Aufruf über ghost.exe funktionieren.
     
  13. franzkat

    franzkat CD-R 80

    Ich habe das bei meinen DOS Boot-CDs so gelöst, dass eine RAM-Disk angelegt wird, die Programmdateien werden beim Booten in diese kopiert und dann immer unter dem gleichen RAM-Disk-Laufwerkbuchstaben angesprochen.Dann ist es egal, von welchem CD/DVD-ROM-Laufwerk aus die Boot-CD gestartet wurde.
     
  14. franzkat

    franzkat CD-R 80

    Bart Lagerweij hat das Problem so gelöst :

    Code:
    @echo off
    rem ----------------------------
    rem CDAUTRUN.BAT
    rem (c) 2002 Bart Lagerweij
    rem ----------------------------
    set cddrv=
    findcd -f\autorun.bat -e
    if errorlevel 254 goto _find1
    if errorlevel 0 set cddrv=A:
    if errorlevel 1 set cddrv=B:
    if errorlevel 2 set cddrv=C:
    if errorlevel 3 set cddrv=D:
    if errorlevel 4 set cddrv=E:
    if errorlevel 5 set cddrv=F:
    if errorlevel 6 set cddrv=G:
    if errorlevel 7 set cddrv=H:
    if errorlevel 8 set cddrv=I:
    if errorlevel 9 set cddrv=J:
    if errorlevel 10 set cddrv=K:
    if errorlevel 11 set cddrv=L:
    if errorlevel 12 set cddrv=M:
    if errorlevel 13 set cddrv=N:
    if errorlevel 14 set cddrv=O:
    if errorlevel 15 set cddrv=P:
    if errorlevel 16 set cddrv=Q:
    if errorlevel 17 set cddrv=R:
    if errorlevel 18 set cddrv=S:
    if errorlevel 19 set cddrv=T:
    if errorlevel 20 set cddrv=U:
    if errorlevel 21 set cddrv=V:
    if errorlevel 22 set cddrv=W:
    if errorlevel 23 set cddrv=X:
    if errorlevel 24 set cddrv=Y:
    if errorlevel 25 set cddrv=Z:
    echo CDAUTRUN: Autorun.bat found on drive %cddrv%
    %cddrv%
    cd \
    %cddrv%\autorun.bat
    rem If we get here, autorun.bat failed somehow...
    echo CDAUTRUN: Starting "%cddrv%\autorun.bat" has failed ?!?
    pause
    goto _end
    :_find1
    echo CDAUTRUN: Autorun.bat *not* found on any CD...
    findcd -e -r
    if errorlevel 254 goto _find2
    if errorlevel 0 set cddrv=A:
    if errorlevel 1 set cddrv=B:
    if errorlevel 2 set cddrv=C:
    if errorlevel 3 set cddrv=D:
    if errorlevel 4 set cddrv=E:
    if errorlevel 5 set cddrv=F:
    if errorlevel 6 set cddrv=G:
    if errorlevel 7 set cddrv=H:
    if errorlevel 8 set cddrv=I:
    if errorlevel 9 set cddrv=J:
    if errorlevel 10 set cddrv=K:
    if errorlevel 11 set cddrv=L:
    if errorlevel 12 set cddrv=M:
    if errorlevel 13 set cddrv=N:
    if errorlevel 14 set cddrv=O:
    if errorlevel 15 set cddrv=P:
    if errorlevel 16 set cddrv=Q:
    if errorlevel 17 set cddrv=R:
    if errorlevel 18 set cddrv=S:
    if errorlevel 19 set cddrv=T:
    if errorlevel 20 set cddrv=U:
    if errorlevel 21 set cddrv=V:
    if errorlevel 22 set cddrv=W:
    if errorlevel 23 set cddrv=X:
    if errorlevel 24 set cddrv=Y:
    if errorlevel 25 set cddrv=Z:
    echo CDAUTRUN: The first CD-Rom with media is drive %cddrv%
    %cddrv%
    cd \
    goto _end
    :_find2
    findcd -e -a
    if errorlevel 254 goto _end
    if errorlevel 0 set cddrv=A:
    if errorlevel 1 set cddrv=B:
    if errorlevel 2 set cddrv=C:
    if errorlevel 3 set cddrv=D:
    if errorlevel 4 set cddrv=E:
    if errorlevel 5 set cddrv=F:
    if errorlevel 6 set cddrv=G:
    if errorlevel 7 set cddrv=H:
    if errorlevel 8 set cddrv=I:
    if errorlevel 9 set cddrv=J:
    if errorlevel 10 set cddrv=K:
    if errorlevel 11 set cddrv=L:
    if errorlevel 12 set cddrv=M:
    if errorlevel 13 set cddrv=N:
    if errorlevel 14 set cddrv=O:
    if errorlevel 15 set cddrv=P:
    if errorlevel 16 set cddrv=Q:
    if errorlevel 17 set cddrv=R:
    if errorlevel 18 set cddrv=S:
    if errorlevel 19 set cddrv=T:
    if errorlevel 20 set cddrv=U:
    if errorlevel 21 set cddrv=V:
    if errorlevel 22 set cddrv=W:
    if errorlevel 23 set cddrv=X:
    if errorlevel 24 set cddrv=Y:
    if errorlevel 25 set cddrv=Z:
    echo CDAUTRUN: The first CD-Rom is drive %cddrv%
    :_end
    
    In der autorun.bat steht der Aufruf für die ghost.exe

    Die Batch und die com-Datei findcd gibt es hier zum Download (kannst aber auch gleich die ganze BootDisk als CD-Image nehmen und anpassen ) :

    http://www.nu2.nu/bootdisk/cdrom/
     
  15. @thedoctor:
    wenn du mit einer dos startdiskette im bootsektor der cd startest, befindest du dich prinzipiell im verzeichnis von dieser. im einfachstem fall ist das immer das emulierte laufwerk a.

    @den fragenden
    ich habe es mit folgendem eintrag in der autoexec.bat gelöst:
    >set CDROM=R
    >path=%CDROM%:\
     
  16. Taesi

    Taesi Kbyte

    Dann mach' doch das Boot-Laufwerk A: größer, dass dort alles reinpasst...
    MfG Taesi
     
  17. TheD0CT0R

    TheD0CT0R Dr. h.c. Mod

    Ja dann müsste das doch gehn, wenn die ghost.exe auch da liegt. Oder hab ich jetzt nicht verstanden was du mit "dieser" meinst?
     
  18. das soll heißen, dass wenn die autoexec.bat im virtuellem disketten laufwerk liegt, man erst auf das cd rom laufwerk kommen muss.
    das virtuelle disketten laufwerk ist meines wissens allerdings auf die maximale größe von 2.88 mb eingeschränkt. ich weiß leider nicht wie groß dein ghost ist, daher kann es sein, dass es passen würde.

    meiner meinung nach ist es allerdings elleganter es über die systemvariablen zu machen und nicht über statische device-buchstaben. so gibt es auch nicht das ekelhafte prob mit den virtuellen disketten laufwerken.
     
  19. Taesi

    Taesi Kbyte

    Nein, ist es nicht, bis zu ~23MB (oder waren es gar 46?) sollten möglich sein, allerdings muss man dann MKISOFS & Konsorten die Arbeit machen lassen.

    Das verstehe ich nicht ganz, das virtuelle Floppy-LW hat doch meist A:, das reale, soweit vorhanden B:, und beschreibbar ist Dein Bootimage außerdem, sofern ein Programm das bemängeln sollte.

    MfG Taesi
     
  20. franzkat

    franzkat CD-R 80

    Beschreibbar auf einer CD ?

    Wenn Programme aus irgendwelchen Gründen bei einem Boot-CD/Floppy-Image was schreiben wollen, muss man über RAM-Disk-Konstruktionen gehen.
     
Thread Status:
Not open for further replies.

Share This Page