artemis
Goto Top

WinPE: originale Laufwerksbuchstaben auslesen und per Batch entsprechend ändern

Hallo, ich grüße Euch!

Mein Problem ist:
Über ein (Batch)Script soll in Windows PE für ein W7-Haupt-System dessen normale LW-HDD-Partitions-Buchstaben automatisch (vorher abgefragt/ausgelesen und dann wieder) hergestellt werden.

Es gibt ja diverse Modder-Szenen, die teils atemberaubende WinPE-Landschaften kreieren und einfach so nebenbei wie selbstverständlich die normal gewohnte LW-Ordnung abliefern, beispielsweise so:

- Systemplatte + nachfolgende Partitionen machen den Anfang: C: D: E: ...
- weitere Hdds folgen darauf: F: G: ...
- Sodann kommt der WinPE-Stick: H:
- und ganz hinten wie üblich (weil zwangsläufig) für das laufende WinPE: X:

Ich kann jetzt natürlich mit meinen einfachen Batchkenntnissen umständlich zu basteln anfangen und mit "IF EXIST..." über diverse Dateien zur LW-Kennung meinen! (weil nur mir bekannten) Buchstaben-Status ermitteln, und dann mit diskpart die Geschichten hin- und herschieben lassen, wobei ich momentan noch nicht mal weiß (ausprobiert habe), ob Batch auch Diskpart frißt.

Erstaunlicherweise weiß auch Google nichts Konkretes dazu, weshalb ich nun hier im Vorzimmer zum lieben Gott nachfrage. Möglicherweise hat ja einer grad zufällig genau solche eine Routine noch von der letzten Weihnachtsbäckerei irgendwo ungenutzt rumliegen, wer weiß?

Wenn ein solches Script genau das komplett macht, was oben beschrieben ist, dann ist es ein feststehendes Programm, das auch keiner weiteren Verbesserungen oder Diskussionen mehr Bedarf, eine kompilierte EXE würde genügen.

Welche Buchstaben-Ordnung genommen wird, könnte verschieden sein (ein Parameter für die EXE face-wink: entweder aus der Registry des Hauptsystems die letzte bekannte Anordnung auslesen (vermutlich machen das die Modder so), oder die gleiche Reihnefolge nehmen, in der die HDDs an den SATA-Ports des MB angestöpselt sind, beginnend bei SATA3_0. Und hat eine HDD mehrere Partitionen, kommen diese immer direkt nachfolgend, und dann erst die nächste HDD. Letzter ist immer der Stick, und hinten X:.

Wer hat sowas,
oder kann sowas (FOR...DO...),
oder weiß, wo´s sowas gibt?
Das wäre toll!

Wofür brauche ich das?
Ich will mein eigenes System-Backup mit Robocopy erstellen, so wie ich es früher mit W2K gemacht habe. Das taugt mir mehr als alles Fertige wie Acronis und Konsorten. Aber die absolute Vollautomatik, gell fei: Im Normal-System Doppelklick auf Icon, Kaffee trinken gehen, wieder kommen, und alles ist gemacht samt automatischer Reboot-Schleifen. Backup oder Restore, je nach Menü... 15 Jahre lang hatte ich jetzt diesen Luxus.

Was mir noch Sorge bereitet: Soweit ich Robocopy kenne, macht es nur eine dateibasierte Spiegelung. Für W2K hat das perfekt funktioniert, da waren die systemrelevanten Verzeichnisse noch überschaubar. W7(ff) hingegen hat ja fast in ganz C: seine Metastasen verteilt, und damit nicht genug: eine eigene Bootpartition muß auch noch sein (geht auch ohne, mutu aber zu Fuß machen).
Die Frage ist: Reicht hierfür /MIR /FFT /NDL (wie ich bisher) für ein funktionierendes W7-Backup/Restore aus, angewandt auf System UND Bootpartition, oder hat genau hier Robocopy seine Grenzen? Außerdem (Nachtrag, Schande auf Haupt) bräuchte es auch noch einen Buchstaben für die Bootpartition, z.B. B: ...oder kann das über \\server\share\path erledigt werden? Ich habe damit keine Erfahrung.

Völlig anderer Ansatz: Ist ein zuverläßiges Systembackup/-restore mit WinPE und Robocopy auch OHNE vorherige Ordnung der LW-Buchstaben möglich?. Beispielsweise die beiden Systempartitionen und die Zielpartition per (extra platzierter) Kennungsdateien ermitteln und deren temporäre PE-Buchstaben per Variablen an RC übergeben? Wie hieße dann dieses RC-Skript mit einer solchen Variable?

Egal wie, schick wäre es allemal, in WinPE mit einem Klick (oder über Autostart) die normale LW-Ordnung (zzgl. Besonderheiten) zu haben, was Redmond eigentlich gleich selber abliefern hätte können sollen, nicht erst die ambitionierten Modder. Und ich würd mich auch freuen, immer gleich anfangen zu können, wenn ich mal in PE zu fuß unterwegs bin, und nicht erst kucken zu müssen, "wo ist denn nu diesmal was?" Eigentlich erstaunlich, daß ich darüber nichts in Google gefunden habe, oder?

Viele Grüße, Artemis

Content-ID: 305463

Url: https://administrator.de/contentid/305463

Ausgedruckt am: 22.11.2024 um 07:11 Uhr

Sheogorath
Sheogorath 27.05.2016 um 02:35:35 Uhr
Goto Top
Moin,

Es ist zwar ein paar Tage her, dass ich WinPE gebootet habe, aber wenn ich mich recht entsinne fängt WinPE an deine Laufwerke von C-X durchzu"nummerieren". Deine gesuchte Bootpartition sollte also C: sein und alles andere Laufwerksbuchstabe+1 also C wird D, D wird E usw.

Ansonsten findest du deine Platten mit Laufwerksbuchstabenzuordnung auch unter "HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices".

Was mich allerdings wundert ist, warum du den ganzen Kram imagen willst. Ist nicht mehr wirklich "State of the Art". Backup der privaten Daten machen und im Zweifel halt wirklich neu installieren schon eher. inzwischen gibt es auch genug Helfer um sowas dann weitestgehend zu automatisieren.

An sich lehnt sich das ganze an Windows an:
http://www.hanselman.com/blog/AptGetForWindowsOneGetAndChocolateyOnWind ...
https://chocolatey.org/

Nun denn, viel Erfolg beim Basteln ;)

Gruß
Chris
Artemis
Artemis 27.05.2016 aktualisiert um 03:00:56 Uhr
Goto Top
Hallo Chris,

Deine PE-Erinnerungen dürften bereits etwas löchrig sein: Nix "schön der Reihe" nach, sondern eher "wie Kraut und Rüben", vor allem wenn zwischenzeitlich in der Backplane gut Verkehr gewechselt hat.

Warum ich den "Kram" mache? Im "Zweifel neu installieren" ist völlig indiskutabel, meine Systeme sind sehr umfangreich hochgerüstet und ausgefeilt, teilweise über Jahre gewachsen, eine komplette Neuinstallation hieße dann "die Welt neu erschaffen". Nein danke. Was also die Sinnfälligkeit von Backups angeht, bin ich meiner Beobachtung nach mit dem Rest der Welt in guter Gesellschaft. Warum, will ich jetzt gar nicht erst vertiefen, darum gehts hier nicht.

An alle: das Thema heißt: === LW-Korrektur in PE, in Zusammenhang mit Backup per Robocopy ===
Und zwar automatisch per Skript, nicht selber in Registy kramen.

Bitte nur dazu posten, danke!

Natürlich gibt es auch viele andere geniale Möglichkeiten, Backups zu machen (oder auch gar nicht), ich kenne diese und ihre Vor- und Nachteile, dafür brauch ich nicht hier posten.

Aber das ist hier nicht Thema.

Nichts für ungut, Artemis
129413
129413 27.05.2016 aktualisiert um 11:59:35 Uhr
Goto Top
Braucht man doch garnicht. Ich kann ja per WMI/Powershell/WMIC die Seriennnummer des Datenträgers abfragen und auf mein gewünschten Buchstaben mappen, dann Backup restoren oder erstellen.
gwmi win32_Volume

Und "ja" WMI oder Powershell funktionieren auch unter Windows PE einwandfrei.

Die Boot-Partition braucht man eigentlich gar nicht mitsichern, denn diese lässt sich mit einem simplen bcdboot Befehl komplett mit Inhalt nach einem Restore wiederherstellen!

Dein Vorhaben die Buchstaben genau gleich zu mappen ist also vollkommen unnötig, sorry. Daran ändert auch dein "Roman" nichts.

Gruß skybird.
Artemis
Artemis 03.06.2016 aktualisiert um 05:23:45 Uhr
Goto Top
Die Frage war/ist nach einem Skript, das in WinPE per Batch alle Laufwerksbuchstaben (zzgl. WinPE-Extras) in gleicher Zuordnung sortiert, wie in der letzt bekannten Formation des normalen Standardsystems.

So, nur etwas anders formuliert, steht es ganz zu Anfang. Der weitere "Roman" dient lediglich zur Einstimmung auf das Thema anhand von Beispielen. In der Anleitung zur erfolgreichen und höflichen Formulierung einer Frage wird eine möglichst ausführliche Beschreibung nahegelegt. Dem wollte ich entsprechen.

Nicht beabsichtig ist, wenn die genannten Anwendungsbeispiele als Selbstzweck genommen und dazu mißbraucht werden, die Sinnfälligkeit der Frage selbst in Frage zu stellen. Möglicherweise enthält solch eine Themaverfehlung interessante und zweifelsfrei richtige Aussagen, jedoch bleibt der fade Beigeschmack, daß der Schreiber damit u.a. seine Unfähigkeit oder Faulheit zur Beantwortung der gestellten Frage kaschieren will, oder diese einfach nur in Abrede stellt, weil deren Sinnfälligkeit außerhalb seines Horizonts liegt.

Ein Phänomen übrigens, das in fast allen Foren immer wieder zu beobachten ist, seit das Internet zum Massenphänomen geworden ist: Man fragt nach der besten Pistole für einen Bankraub, und bekommt zur Antwort, daß man eine Bank nicht überfallen soll, weil man sonst am Galgen endet. Sehr beliebt auch in Elektroforen, wenn du wissen willst, ob der Lichtschalter besser links oder rechts sein sollte, du sofort ermahnt wirst, die Hände davon zu lassen, und nur den Fachmann ranzulassen, weil Strom gefährlich ist. Allen gemeinsam: je "unüblicher" die Frage, desto schneller sind Moralapostel, Klugschnitzer und Luftschepperer an der Front, also solche, die sich als Platzhirsche begreifen, die Antwort nicht wissen, es aber nicht ertragen können, sich dadurch zurückgesetzt zu fühlen. Leider scheint sich dieses Niveau inzwischen auch an einem Ort wie ADMINISTRATOR.DE auszubreiten.

Nun denn - auf ein Neues:

Die Frage steht ganz oben im ersten Satz, perfekt formuliert.
Warum ich das will, spielt keine Rolle. Möglicherweise weil es mir gefällt.
Wer nicht mehr ganz vertraut ist mit WinPE: Kein Problem, Buchstabenkarussel für LWs kann man auch im Normalbetrieb durchspielen.

Wer kann ein Skript anbieten?

Artemis
BirdyB
BirdyB 03.06.2016 um 07:40:34 Uhr
Goto Top
Hallo artemis,
Zitat von @Artemis:
Die Frage steht ganz oben im ersten Satz, perfekt formuliert.
Warum ich das will, spielt keine Rolle. Möglicherweise weil es mir gefällt.
Die Motivation, sich mit deiner Frage auseinanderzusetzen steigt deutlich, wenn man auch versteht, warum du genau diesen Weg gehen willst/musst. Daher spielt das ganze schon eine Rolle.
Und manchmal gibt es durchaus andere/bessere Wege ein Ziel zu erreichen, daher solltest du dich nicht direkt gegen andere Vorschläge verschließen.
Wer kann ein Skript anbieten?
Es gibt bestimmt Leute, die dir etwas Passendes entwickeln... Scheinbar ist es jedoch nicht ganz unproblematisch. Ob dein Auftreten jedoch die Motivation fördert, das in der Freizeit nebenher zu tun wage ich zu bezweifeln.

Beste Grüße!
Sheogorath
Lösung Sheogorath 03.06.2016 aktualisiert um 10:22:49 Uhr
Goto Top
Moin,

Die Frage war/ist nach einem Skript, das in WinPE per Batch alle Laufwerksbuchstaben (zzgl. WinPE-Extras) in gleicher Zuordnung sortiert, wie in der letzt bekannten Formation des normalen Standardsystems.

Das ist etwas sehr umständlich. Die Laufwerkszuordnung wird über die Registry gemacht. Heißt, der einzige weg, das sauber hinzubekommen wäre Registry importieren, auslesen, IDs vergleichen. Inwiefern diese IDs überhaupt zwischen Windows und WinPE Umgebung übereinstimmen, kann ich dir nicht sagen. Was WinPE dir als "Kraut und Rüben" ist die physische Reinfolge. Also disk0,partition0 = C Disk0,opartition1 = D usw.

Wenn du diese neu Ordnen willst, ist der einfachere und sicherere Weg es über vorhandene Dateistrukturen zu tun, wie das unter anderem hier gezeigt wird:
http://reboot.pro/topic/9708-script-drive-letter-change-in-winpe-30/

Das erfordert allerdings Wissen um die Struktur auf deinen Partitionen, also kannst du das letztlich nur selbst schreiben.

Viel Spaß dabei ;)

Gruß
Chris
129413
Lösung 129413 03.06.2016 um 11:58:33 Uhr
Goto Top
Ist doch ganz einfach:
Hier liegen die Device-Zuordnungen:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Die Einträge die interessieren Beginnen alle mit \DosDevices\
Diese Einträge exportierst du dir, natürlich nur die welches richtige Disks sind. Dann lädst du deine Windows PE-Registry (den SYSTEM Zweig) per Hive-Load und fügst die Einträge dort unter ebenfalls unter MountedDevices ein.

Die ersten 8 Bytes der binären Daten ist die Disk-Signatur, darauf folgt der Offset der Partition. Somit kann Windows die richtige Disk und dazugehörende Partition dem Laufwerksbuchstaben zuweisen.
Artemis
Artemis 14.06.2016 aktualisiert um 04:06:44 Uhr
Goto Top
Hallo Chris,

danke für den Beitrag. "Das ist etwas sehr umständlich." versteh ich zwar nicht, aber den Rest schon.

Deine Theorie der physischen Reihenfolge, also wenn in der buchstaben-genutzten Reihenfolge auch entsprechend angestöpselt ist, beginnend bei SATA_0, hatte ich auch schon mal, wäre sehr nett, aber die Praxis zeigt: ist nicht so. Kann man nichts machen. Für das BIOS hilft es aber allemal, weil ich dann nicht nach jedem HDD-Wechsel in der Backplane die Bootpartition der SSD jedesmal neu nach oben hieven muß. Also Bootplatte immer schön auf SATA-0.

Dein link zu dem Beitrag auf reboot.pro ist sehr gut, dort ist das beschrieben, was ich auch schon im Sinn hatte, nämlich über tag-files jedes LW einwandfrei identifizieren, und dann entweder absolute Buchstaben zuordnen lassen (mit dem Problem voraus, erst dafür "Platz" schaffen zu müssen, je nachdem), oder aber wie auch dort vorgeschlagen, die Buchstaben lassen und in den weiterverarbeitenden Scripten mit relativen LW-Variablen operieren.

Unschön dabei: bei einer "automatisierten" PE-Sitzung ist das perfekt, jedoch wenn ich mal ganz gemütlich und spontan zu Fuß in PE unterwegs bin/sein muß/will, dann muß ich immer erst herausfinden, wo ist was, das im Hirn behalten, oder auf Zettel notieren, und trotz totalcommander halt etwas umständlich mich durchzuwurschteln. Dafür passt Dein Satz vom Anfang dann perfekt. Genau das ist der Hintergrund für mein Posting: Nicht nur beim Script, sondern auch SonntagsFeeling gleich von vorneweg bei einem persönlichen PE-Besuch.

btw: Daß man in PE heutzutage evt. keine Sitzungen mehr machen sollte, sollte jetzt nicht zu einem extra Thema-Turm hochgefahren werden face-wink

Artemis
Artemis
Artemis 14.06.2016 um 04:08:13 Uhr
Goto Top
Lieber Herr sympatischer Hausmeister von dem sky im Vogel,

Dein Hinweis ist die Königsklasse, und ich setzt noch eins drauf, es ist ja so einfach:

Einmal in PE alles so ordnen wie es sein soll, Registry-Zweig MountedDevices exportieren, und dann bei jeder PE-Sitzung per startup ausführen, evtl. etwas verzögert, damit alle Partitionen derweil Platz genommen haben. Muß ich noch austesten.

Artemis