2009-05-08 11 views
0

Ich richte ein Testbett ein, in dem ich eine Geräteverbindung über mehrere Windows-Betriebssysteme hinweg teste. Ich kann es nicht in einer VM (kann den Zugriff auf das Gerät nicht virtualisieren), so dass ich ein Multi-Boot-System habe. Ich habe ein Skript, um den Prozess zu automatisieren, aber ich möchte, dass es weiter geht und fertig ist, indem ich das nächste zu startende Betriebssystem auswähle und den Test ausführe.Programmatische Methode zur Auswahl des Boot-Betriebssystems?

Ein Problem ist, dass XP/2K3 boot.ini verwenden, während Vista und später BCDEdit verwenden. Ich könnte manuell zwei Skripte haben ... eines für jedes XP/2K3, um boot.ini zu bearbeiten. Und dann zu BCDEdit für Vista-Systeme. Ich würde es hassen, jeden einzelnen Code fest codieren zu müssen, vor allem wenn ich die Reihenfolge ändern und/oder abhängig von den Testbedingungen bestimmte Betriebssysteme ausschalten muss.

BCDEdit verwendet auch GUID für ihre Einträge, was bedeutet, dass die Einrichtung auf verschiedenen Rechnern bedeutet, herauszufinden, welche GUID zum nächsten gehen soll.

Irgendwelche Gedanken oder Hinweise? Gibt es irgendwelche Hilfsmittel, die helfen, dies zu automatisieren?

Antwort

1

Ich gehe davon aus, dass Ihre verschiedenen Aromen von Windows auf verschiedenen Partitionen untergebracht sind. Use an Ubuntu LiveCD to install GRUB und schreiben Sie mehrere Konfigurationsdateien, von denen jede ein Betriebssystem als Standard ausgewählt hat. Erstellen Sie eine HD-Partition für/boot, und speichern Sie die GRUB-Konfigurationen am selben Speicherort.

Jede Ihrer Windows-Partitionen muss die Ext2 IFS driver installieren und die EXT2-Partition mounten, die Sie zuvor als z: oder so gemacht haben. Dann können Sie Ihre Testskript so etwas wie:

mountvol z: %bootvolname% 
copy /y boot_to_vista_64.lst z:\boot\grub\menu.lst 
shutdown -r -f -t 0 

%bootvolname% ist ein wenig kompliziert, und ist OS-spezifisch. Sie müssen es mit jeder Betriebssystempartition speichern, und Sie können es erhalten, indem Sie mountvol z: /l ausführen, während dieses Betriebssystem ausgeführt wird.

Verwandte Themen