Jump to content

Aktive Partition per cmd rausfinden?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Edgar,

 

habe das auf zwei Rechnern überprüft. Da stimmt was nicht.

diskpart zählt die Volumen nicht die Partitionsnummer.

list partition listet zwar die Partitionen auf, sagt aber gar nicht welche von denen aktiv ist.

 

Off-topic

Jetzt muss ich leider weg. Bin hoffentlich morgen zurück. Danke für deine Hilfsbereitschaft.

 

Nochmal sorry.

Link zu diesem Kommentar
Da stimmt was nicht.

diskpart zählt die Volumen nicht die Partitionsnummer.

list partition listet zwar die Partitionen auf, sagt aber gar nicht welche von denen aktiv ist.

Was verstehst du unter Partitionsnummer, womit ist die erfassbar. Ist der Partitiondescriptor gemeint(falls ich mich richtig erinnere, heisst so das Datum, das den Partitiontyp angibt)?

Es geht dir darum festzustellen, welche Partition aktiv ist?

Link zu diesem Kommentar

Unsere Rechner in fast allen Räumen haben 3 Primären und 1 erweiterte Partition. Nur in einem Raum sind alle 4 Partitionen primär. Unter der Partitionsnummer verstehe ich den entsprechenden Eintrag in der Partitionstabelle, die aus 4 nacheinander stehenden Bereichen besteht. Diese Nummer steht auch im ARC-Pfad in der boot.ini-Datei. Genau dieser Nummer möchte ich rausfinden und dadurch eine passende boot.ini per Skript erzeugen. Der eingesetzte LILO oder GRUB sorgen dafür, dass die zu startende Partition aktiviert wird und andere primäre Partitionen versteckt (ausgeblendet) werden. Dann merkt das Betriebssystem die anderen in den übrigen Partitionen installierten Betriebssysteme nicht und ist der Meinung, das es allein installiert ist.

Das Image bzw. die für verschiedene Veranstaltungen vorkonfigurierten Images sind von der ersten Partition abgezogen, enthalten aber eine boot.ini-Datei, die es ermöglichen, das in eine andere Partition bespielte Image trotzdem zu starten. Die Datei sollte das Skript u. a. automatisch neu erzeugen und die vorhandene ersetzen. Z.B. muss die Datei

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS  
[operating systems]  
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP 1" /noexecute=optin /fastdetect  
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP 2" /noexecute=optin /fastdetect  
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP 3" /noexecute=optin /fastdetect  
multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="Microsoft Windows XP 4" /noexecute=optin /fastdetect  

durch

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS  
[operating systems]  
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect  

für die 3. Partition ersetzt werden.

Ich kann aber kein internes Programm bzw. keine diskpart-Funktion finden, das/die die aktuell aktive Partition als deren Nummer in der Partitionstabelle in den ARC-Pfad eintragen kann.

Das Skript

@echo off
cls
:start
ECHO.
ECHO 1. Es wir von der 1. Partition gestartet
ECHO 2. Es wir von der 2. Partition gestartet
ECHO 3. Es wir von der 3. Partition gestartet
set number=
set /p number=Type the number to print text.
if not '%number%'=='' set number=%number:~0,1%
if '%number%'=='1' goto 1
if '%number%'=='2' goto 1
if '%number%'=='3' goto 1
ECHO "%number%" ist ungueltig. Bitte nochmal!
ECHO.
goto start
:1
cls
rem Vorlage fuer die boot.ini-Datei erstellen
cp boot.txt vorlage.txt
rem Die zu kopierende Vorlage mit Eintraegen nachfuellen
for %%u in (%number%) do ECHO default=multi(0)disk(0)rdisk(0)partition(%%u)\WINDOWS >> vorlage.txt & ECHO [operating systems] >> vorlage.txt & ECHO multi(0)disk(0)rdisk(0)partition(%%u)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect >> vorlage.txt 
attrib -h -s c:\boot.ini
move /Y vorlage.txt c:\boot.ini
attrib +h +s c:\boot.ini
goto end

:end

erzeugt die gewünschte Datei nach der manuellen Eingabe der Nummer. Man muss jedoch an jeden einzelnen Rechner. Genau das möchte ich mir sparen.:D

Link zu diesem Kommentar

So was habe ich bemerkt:

Der Befehl

diskpart /s active.txt

wo active.txt folgende Zeilen enthält

select disk 0

list partition

listet die vorhandenen Partitionen auf und (Gott sei Dank) blendet der Bootmanager andere primären Partitionen aus. Dann bleibt die aktive Partition als Primär und nicht Unbekannt gekennzeichnet.

Datenträger 0 ist der derzeit gewählte Datenträger.

 Partition      Typ               Größe    Offset
 -------------  ----------------  -------  -------
 Partition 1    Unbekannt          188 MB    32 KB
 Partition 2    Unbekannt           28 GB   188 MB
[b] Partition 3    Primär               9 GB    28 GB[/b]
 Partition 4    Erweitert          112 GB    37 GB
 Partition 5    Logisch             28 GB    37 GB
 Partition 6    Logisch             28 GB    65 GB
 Partition 7    Logisch             56 GB    93 GB

Ist es möglich die vor dem Wort Primär stehende Zahl in eine Variable umzuwandeln.

Link zu diesem Kommentar

Super! Danke!

Wie kann ich (eher Du) das Leerzeichen am Ende der Variable weg?

@echo off
for /f "tokens=* skip=11" %%e in ('diskpart /s diskpartactive.txt') do (
echo %%e
for /f "tokens=2,3" %%f in ("%%e") do (
if %%g equ Prim„r set var=%%f & goto end
)
)
:end
echo Hallo! Du hast von der %var%. Partition gestartet!

Es wird das ausgegeben

Hallo! Du hast von der 3 . gestartet!

Du hast das bereits einmal gemacht, leider ohne Erläuterungen. Bitte um einen Link zum Tutorial über

:~0,1 usw.

Oder erkläre es bitte hier, wenn es nicht zu zeitaufwändig ist.

Link zu diesem Kommentar
Bitte um einen Link zum Tutorial über

:~0,1 usw.

Oder erkläre es bitte hier, wenn es nicht zu zeitaufwändig ist.

http://www.bb-sys.de/bbshell.htm

 

 

Siehe set /?

Das Ersetzen von Umgebungsvariablen wurde folgendermaáen erweitert:

 

%PATH:str1=str2%

 

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im

erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere

Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu

l”schen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" fr alles

zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des

brigen Abschnitts von "str1".

 

%PATH:~10,5%

 

Dies erweitert die PATH-Umgebungsvariable und verwendet dann nur fnf

Zeichen ab dem elften Zeichen (Offset=10) des erweiterten Ergebnisses. Wenn die

L„nge nicht angegeben ist, wird der Rest des Variablenwerts verwendet.

Wenn eine der Zahlen (Offset oder L„nge) negativ ist, dann wird der angegebene

Wert der L„nge des Umgebungsvariablenwerts hinzugefgt.

 

%PATH:~-10%

 

extrahiert die letzten 10 Zeichen der Variable PATH.

 

%PATH:~0,-2%

 

extrahiert alle, auáer den letzten 2, Zeichen der Variable PATH.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...