PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : XP-Rechner in VirtualBox hat Speicherproblem bei der DOS-Eingabeaufforderung



linux-learner
12.01.09, 10:38
Ich habe auf meinem SuSE 11.1-Rechner VirtualBox 2.1 (nicht OSE) installiert.

Da ich gerne meinen realen XP-Rechner einsparen möchte, habe ich in VirtualBox einen virtuellen Rechner mit Win XP (SP3) und 512 MB zugeteiltem Arbeitsspeicher installiert. Dieser funktioniert auch genauso gut wie mein realer XP-Rechner, hat aber ein entscheidendes Problem:

Ich starte des öfteren ein DOS-Programm (dBASE) im Windows-Fenster "Eingabeaufforderung" (cmd.exe). Beim realen XP-Rechner funktioniert das ohne Probleme. Beim virtuellen XP-Rechner erhalte ich die Meldung: "DOS/16M error: VCPI- oder DPMI-Anforderungen an Systemsoftware nicht erfüllt."

Der DOS-Befehl "mem" meldet in der Eingabeaufforderung des virtuellen Rechners die gleichen Werte wie beim realen XP-Rechner, nämlich:


655360 Bytes gesamter konventioneller Speicher
655360 Bytes für MS-DOS verfügbar
628608 Bytes maximale Größe für ausführbares Programm

1048526 Bytes gesamter fortlaufender Erweiterungsspeicher
0 Bytes fortlaufender Erweiterungsspeicher verfügbar
983040 Bytes XMS-Speicher verfügbar
MS-DOS ist resident im oberen Speicherbereich (HMA).

Das sind Werte, mit denen dBASE (für DOS) normalerweise problemlos startet. Was läuft da jetzt beim VirtualBox XP-Rechner anders als beim realen XP-Rechner?
Ich bin für jeden Tipp dankbar, der mein dBase auch auf dem VirtualBox-Rechner zum Laufen bringt.

stefan.becker
12.01.09, 18:43
Hast du es schon mal mit dosbox statt VirtualBox versucht? Das ist doch für DOS Programme viel schmerzfreier.

linux-learner
12.01.09, 18:43
Nach einigem Suchen habe ich den Fehler gefunden:
Der Speichermanager für die Eingabeaufforderung, die Datei dosx.exe im Verzeichnis \Windows\system32 der virtuellen Maschine war beschädigt.

Vermutliche Ursache: Vor einer Woche habe ich die Festplatte des virtuellen Windows-Rechners mit dem Befehl "VBoxManage clonevdi..." geklont, da ich sie nicht direkt im Linux home-Verzeichnis haben wollte.

Dabei sind offenbar einige Dateien des virtuellen Rechners beschädigt worden, obwohl beim Klonen keine Fehlermeldung kam. Der virtuelle Rechner bootete von der neu erzeugten Festplatten-Datei ohne Probleme, aber zwei Windows-Programme starteten nicht mehr, da einige dll-Dateien beschädigt waren. Zum Glück waren diese Programme aber "auskunftsfreudig" und haben gemeldet, welche Dateien beschädigt sind. Die beschädigte Datei dosx.exe war da wesentlich tückischer.

Habt ihr schon mal gehört, dass der Inhalt einer geklonten *.vdi-Datei teilweise beschädigt sein kann?

linux-learner
12.01.09, 18:55
@Stefan.Becker: Ja, ich habe es in meiner Verzweiflung auch mit DOSBox versucht (allerdings die Windows-Version auf der Virtuellen Maschine - also eine Emulation in der Emulation). Mein dBASE-Programm lief dabei sofort ohne Probleme, aber das Ansteuern eines USB-Druckers, der mit net use auf die parallele Schnittstelle LPT1 umgeleitet wird, habe ich mit DOSBox nicht hinbekommen.

Meine Erkenntnis dabei: DOSBox hat seinen Schwerpunkt eindeutig bei der Emulation von Spielen. Fast jede erdenkliche Grafik- und Soundkarte kann emuliert werden, aber beim Drucken sind die Fähigkeiten von DOSBox äußerst beschränkt. Am besten ist dafür die DOSBox Version Megabuild 4.1 in Kombination mit dem Porttalk-Treiber geeignet. Aber, wenn die LPT1-Schnittstelle emuliert ist, kann man wohl auch damit nicht zum Drucken.

Dodobo
12.01.09, 21:39
1. Virtualbox kann kein LPT. Google hat da zwar was alpha-mäßig heißes gefunden, allerdings auch nur für Linux als Host, was bei dir ja zutrifft. Ich hab deswegen nochmal VMware (Player oder Server, egal) installiert...da kann ich meinen Scanner über Win95 in einer VM ansprechen........ich kann halt nix wegschmeißen oder gar neukaufen... ;)

2. Ja, eine VM kackt öfters mal ab, wenn sie unsauber beendet wird oder abstürzt. Das kann die ganze Image-Datei zerreißen. Filesystemcheck kann das ganze auch verschlimmbessern.

Daher immer eine aktuelle Kopie des Images machen...und eine etwas ältere, die definitiv noch fehlerfrei ist (wenn auch nicht mehr so aktuell). ;)

stefan.becker
12.01.09, 23:00
lpt1 braucht man nicht in VBOX:

net use lpt1 \\meier\kurt

linux-learner
12.01.09, 23:18
net use lpt1 \\meier\kurt
Genauso hatte ich es gemacht.

Daraufhin zeigt der Windows Geräte-Manager der Virtual-Machine einen "normalen" Druckeranschluss LPT1 an.
Dieser kann dann auch von DOS-Programmen in der Eingabeaufforderung (CMD.exe bzw. Command.com) genutzt werden - nicht jedoch von DOS-Programmen in der DOSBox.

stefan.becker
12.01.09, 23:39
http://dosprn.com/readme.htm

stefan.becker
12.01.09, 23:55
http://www.antonis.de/faq/qbmonfaq-dateien/1612808071.html

Such mal im Text nach "pool". Findest du unter dem Reiter "Anschluss" bei den Druckereigenschaften.

linux-learner
13.01.09, 15:55
@Stefan: Danke für deine beiden Links.
Im zweiten Link (Antonis.de) wird das Thema "Drucken mit DOS-Programmen unter Windows" gut und verständlich dargestellt.

Ich hatte als Quelle für meine Bemühungen diese (ebenfalls empfehlenswerte) Seite gefunden: http://www.ulfneubert.de/dbase/tipsundtricks/usbdrucker/index.html.

Dort wird ebenfalls die Variante mit "Druckerpool aktivieren" erläutert. Hat aber leider bei meiner XP-Virtual-Machine in Kombination mit DOSBox nicht funktioniert. Das DOS-Programm hat den USB-Drucker an LPT1 nicht erkannt.

stefan.becker
13.01.09, 18:05
Und das andere (dosprn) geht?

linux-learner
14.01.09, 22:07
Wie ich bereits schilderte, funktioniert mein DOS-Programm nach dem Ersetzen des defekten Treibers (dosx.exe) einwandfrei in der Eingabeaufforderung (CMD.exe) des virtuellen XP-Rechners. Der USB-Drucker kann dabei, wie oben beschrieben, ohne weitere Tools als LPT1 angesteuert werden. Daher habe ich dosprn nicht ausprobiert.