Wie zu sagen, welche Platte Windows gebootet
Bin ich müssen eine Methode finden, um programmgesteuert zu bestimmen, welches Laufwerk Windows zu Booten. In anderen Worten, ich brauche einen Weg von Windows, um festzustellen, welches Laufwerk das BIOS zum Booten das ganze system.
Windows verfügbar machen, ein interface zu entdecken? Wie groß die Windows-API ist, ich hoffe es ist etwas begraben, dass es möglicherweise den trick tun.
Terry
p.s. Ich lese gerade den ersten Sektoren der Festplatte nicht dem schwelgen nichts. Auf meiner dev-box habe ich zwei Festplatten, und wenn ich mir den Inhalt der ersten paar Sektoren auf den Festplatten habe ich eine standard-Textbaustein-MBR.
Bearbeiten, klären ein paar Dinge.
Die Art, wie ich will, das Gerät zu identifizieren ist, mit einer Zeichenkette, die die Identifikation einer physischen Festplatte (im Gegensatz zu einem logischen Laufwerk). Physikalische Laufwerke sind von der form "\\.\PHYSICALDRIVEx", wobei x eine Zahl ist. Auf der anderen Seite, ein logisches Laufwerk wird gekennzeichnet durch einen string der form "\\.\x" wobei x für einen Laufwerksbuchstaben.
Bearbeiten, zu diskutieren, ein paar von den Ideen, die rausgeworfen wurden.
Sie wissen, welche logischen Volumen verwendete Windows-boot nicht mir hier helfen. Hier ist der Grund. Davon ausgehen, dass C: ist mit einem gespiegelten RAID-setup. Nun, das bedeutet, dass wir mindestens zwei physische Laufwerke. Nun bekomme ich das mapping von Logischen Laufwerks auf Physische Laufwerk, und ich entdecke, dass es zwei physische Laufwerke, die Lautstärke. Die eine hat Windows zum Booten verwenden soll? Natürlich ist dies unter der Annahme, dass das physische Laufwerk Windows gebootet ist, die gleichen physischen Festplatte, die den MBR enthält.
- In der Befehlszeile den Befehl also Ausführen, cmd eingeben, geben Sie systeminfo Rückkehr. Geben Sie ihm eine minute, um zu kompilieren die Liste und die Antwort ither mit viel mehr Details.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Control Panel
System and Security
Administrative Tools
System Configuration
toolWenn Sie mehrere Kopien von Windows installiert, Sie sind gestartet mit den Namen wie:
Es sei denn C: ist nicht das Laufwerk, dass windows gestartet wird.
Analysieren Sie die %SystemRoot% variable, enthält den Speicherort der windows-Ordner (also c:\windows).
Können Sie WMI verwenden, um dies herauszufinden. Die Win32_BootConfiguration - Klasse wird Ihnen sagen, sowohl das logische Laufwerk, und das physische Gerät aus, das Windows bootet. Insbesondere die Caption-Eigenschaft wird Ihnen sagen, welche Gerät Sie Booten aus.
Zum Beispiel in powershell, geben Sie einfach " gwmi Win32_BootConfiguration um Ihre Antwort.
Das hängt von Ihrer definition der Festplatte, die Windows verwendet, um zu Booten. Ich denke, der kann 3 verschiedene Antworten auf eine standard-BIOS-system (wer weiß, was ein EFI-system hat):
2 und 3 sollten leicht zu finden sein - ich bin nicht so sicher 1. Wenn Sie raw-disk-Lesen zu finden, nicht in den MBR, das bedeutet nicht, es ist die BIOS-boot-Gerät aus dieser Zeit oder sogar das nächste mal (man kann mehrere Festplatten mit MBRs).
Kann man wirklich nicht einmal sicher sein, dass der PC gestartet wurde, von einer Festplatte - es ist durchaus möglich, Windows zu Booten von einer Diskette. In diesem Fall, beide 1 und 2 technisch eine Diskette, aber 3 bleiben würde C:\Windows.
Müssen Sie möglicherweise ein bisschen mehr spezifisch auf Ihre Anforderungen oder Ziele.
Es ist kein boot.ini auf einem Computer mit nur Vista installiert.
Wie wollen Sie identifizieren Sie das Laufwerk/partition: von der windows-Laufwerksbuchstabe zugeordnet ist (zB. c:\, d:) oder wie seine hardware-Signatur (bus, etc.).
Für den einfachen Fall überprüfen Sie heraus GetSystemDirectory
Versuchen HKEY_LOCAL_MACHINE\SYSTEM\Setup\SystemPartition
Können Sie versuchen, verwenden Sie einfach den Befehl Linie. bcdedit , was Sie brauchen, führen Sie einfach cmd als administrator und geben Sie
bcdedit
oderbcdedit \v
, das funktioniert nicht auf XP, aber hoffe, es ist nicht ein Problem.Sowieso für XP kann man einen Blick in
boot.ini
Datei.