Dienstag, 17. März 2009

QEmuManager verwendet auch physikalische Festplatten

Beim herumexperimentieren mit QEmuManager ist mir eine Funktion aufgefallen, die Q nicht bietet. Es ist möglich physikalische Festplatten anstatt eines Festplatten-Images zu verwenden. Wenn dass möglich ist, kann man dann ein OS/2 unter QEmuManager auf einer Festplatte installieren und diese dann in einen reellen PC einbauen, der dann das installierte System bootet?

Als ersten Versuch habe ich darum eine IDE-Festplatte über ein externes USB 2.0 IDE- Festplattengehäuse mit dem PC verbunden, unter QEmuManager einen virtuellen PC mit physikalischer Festplatte erzeugt und DOS installiert. Die physikalische USB Festplatte lässt sich im entsprechenden Auswahlmenü auswählen, sobald sie mit dem PC verbunden wurde. DOS wurde nun von einem Disketten-Image gebootet und ich konnte mit FDISK eine Partition auf der Festplatte anlegen. Nach dem notwendigen reboot von DOS kann man dann diese Festplatte mit FORMAT C:/S formatieren und bootfähig machen. Ein Booten von dieser Festplatte ist dann anschließend unter QEmuManager ohne Probleme möglich. Anschließend habe ich die IDE-Festplatte aus dem externen USB-Gehäuse entnommen und über den IDE-Anschluss an meinen alten Pentium 200 PC angeschlossen. Dieser erkannte die Festplatte sofort, wollte das installierte DOS aber nicht booten. Was war falsch gelaufen?

Das Problem ist, dass unterschiedliche IDE-Controller die Festplatte mit unterschiedlicher Geometrie ansprechen. Moderne Betriebssystem arbeiten bei Festplatten mit LBA der Large Block Allocation. Hierbei bekommt jeder 512KB-Block der Festplatte eine eindeutige Nummer zugewiesen. Die Geometrie der Festplatte spielt bei älteren Betriebssystem (wie DOS und OS/2) eine wichtige Rolle. Hier wird ein Datenblock auf der Festplatte durch Cylinder, Head und Sector (CHS) adressiert. Die Anzahl der Zylinder, Köpfen und Sektoren legt aber der IDE-Controller beim erkennen der Festplatte fest. Solange der IDE-Controller nicht gewechselt wird, ist dies nicht weiter tragisch. Schließt man aber die Festplatte an einen anderen IDE-Controller an der der eine andere CHS Geometrie verwendet, kann das Betriebssystem von dieser Platte nicht mehr richtig booten.

Die Lösung zu diesem Problem ist, die Festplatte auf dem Ziel-System zu partitionieren und zu formatieren. Schließt man die Festplatte nun über einen USB-IDE-Controller an einen PC an, erkennt der Controller bzw. das Host-Betriebsystem (Windows XP, Linux, MacOS X), dass sich schon eine gültige Partitionstabelle auf der Festplatte befindet und verwendet die dort angegebene Geometrie. Das gleiche Problem hat man übrigens auch bei der Verwendung von Compact-Flash Karten als Festplattenersatz. Auch hier sollte man die CF-Karte auf dem Zielsystem partitionieren.

Keine Kommentare: