10 Replies Latest reply on Nov 8, 2011 3:09 AM by floxx

    Partitionieren Win 7... BOOTMGR Fehlt

    floxx Apprentice
      Hallo jungs,
      da meine normale installation von Win7 funzt wollte ich nun die Partitionierung angreifen aber ich komme nicht weiter...
      Ich verwende die Partitionierung "ME Win7 x64 Pre OS Action Package Partitioning and Formatting for multiple partitions (Version 7.0.0.1113)".
      Ich will folgende Funktion (es ist immer nur eine HDD in den PC´s eingebaut):
      1. Abfrage ob 1 oder 2 Partitionen angelegt werden sollen (C: & D
      2. bei einer P. soll die HDD komplett für C: verwendet werden
      3. bei zwei vorhandenen Partitionen soll gefragt werden ob D: neu erstellt werden soll und falls "JA" D: neu erstellen

      Die Abfragen wie was erstellt wird, habe ich per Schema gelöst, ich denke meine Scriptlogik ist das Problem
      Hier mein Script was Teilweise durchläuft aber nach dem Partitionieren kommt BOOTMGR fehlt...
      Hoffe ihr könnt mir helfen :-)

      @echo off
      echo Partitioning and formatting multiple Partitions
      echo Partitioning and formatting multiple Partitions > _out.txt

      IF NOT "%%OS%%" == "Windows_NT" GOTO wrongOS_error
      IF NOT EXIST X:\ENTEO\osdclnt.ini GOTO wrongOS_error

      regedit /s PE20PartAlign.reg

      set disknumber=0
      set formatParams=/Y
      if "%InstallationParameters.QuickFormat%" == "1" set formatParams=/Y /Q

      set diskfull=0
      set activate_partition=0
      if "%%disknumber%%" == "0" set activate_partition=1

      ::####################################################################################
      ::Erweiterung um Anzahl der Partitionen
      echo Anzahl Partition:%CurrentComputer.Custom.Partitionsanzahl%
      pause
      if "%CurrentComputer.Custom.Partitionsanzahl%"=="2" goto Partition2
      ::####################################################################################

      echo Cleaning Disk %%disknumber%%
      echo Cleaning Disk %%disknumber%% >> _out.txt
      echo select disk %%disknumber%% > clean_%%disknumber%%.txt
      echo clean >> clean_%%disknumber%%.txt
      echo exit >> clean_%%disknumber%%.txt
      echo --- Content of clean_%%disknumber%%.txt >> _out.txt
      type clean_%%disknumber%%.txt >> _out.txt
      echo --- >> _out.txt
      diskpart /s clean_%%disknumber%%.txt >> _out.txt
      if errorlevel 1 goto cleandisk_error

      :createvolume_1
      set volumeletter=c
      set volumefs=%InstallationParameters.P1FileSystem%
      set volumesize=%InstallationParameters.P1Size%
      set returnlabel=createvolume_2
      goto createvolume

      :createvolume_2
      set volumeletter=d
      set volumefs=%InstallationParameters.P2FileSystem%
      set volumesize=%InstallationParameters.P2Size%
      set returnlabel=createvolume_3
      goto createvolume

      :createvolume_3
      set volumeletter=e
      set volumefs=%InstallationParameters.P3FileSystem%
      set volumesize=%InstallationParameters.P3Size%
      set returnlabel=createvolume_4
      goto createvolume

      :createvolume_4
      set volumeletter=f
      set volumefs=%InstallationParameters.P4FileSystem%
      set volumesize=%InstallationParameters.P4Size%
      set returnlabel=end
      goto createvolume

      ::########################################################################
      :Partition2
      set volumeletter=c
      set volumefs=%InstallationParameters.P1FileSystem%
      set volumesize=%CurrentComputer.Custom.sizeC%
      set returnlabel=createvolume_2
      if "%CurrentComputer.Custom.DeleteParttionD%"=="Nein" goto createvolume
      ::########################################################################

      ::########################################################################
      :FormatCOnly
      echo formatting %volumeletter% Partition
      echo formatting %volumeletter% Partition >> _out.txt
      format %volumeletter%: %formatParams% /FS:%volumefs% >> _out.txt
      if errorlevel 1 gotocreatevolume_formaterror
      set returnlabel=end
      ::########################################################################

      :createvolume
      echo --- Creating %%volumefs%% Volume %%volumeletter%% with size %%volumesize%%
      echo --- Creating %%volumefs%% Volume %%volumeletter%% with size %%volumesize%% >> _out.txt
      if "%%volumefs%%" == "NONE" goto %%returnlabel%%
      echo removing Mountpoint %%volumeletter%%:
      echo removing Mountpoint %%volumeletter%%: >> _out.txt
      echo select volume %%volumeletter%% > remove_%%volumeletter%%.txt
      echo remove >> remove_%%volumeletter%%.txt
      echo exit >> remove_%%volumeletter%%.txt
      echo --- Content of remove_%%volumeletter%%.txt >> _out.txt
      type remove_%%volumeletter%%.txt >> _out.txt
      echo --- >> _out.txt
      diskpart /s remove_%%volumeletter%%.txt >> _out.txt
      if not errorlevel 1 goto createvolume_part

      echo volume did not exist... sleeping 2 seconds
      rem ping is used as a replacement for sleep
      ping 127.0.0.1 -n 3 -w 1000 > nul

      :createvolume_part
      echo creating new %%volumeletter%% Partition
      echo creating new %%volumeletter%% Partition >> _out.txt
      set local_sizeparam=
      if not "%%volumesize%%" == "0" set local_sizeparam=size=%%volumesize%%
      echo automount disable > create_%%volumeletter%%.txt
      echo select disk %%disknumber%% >> create_%%volumeletter%%.txt
      echo create partition primary %%local_sizeparam%% >> create_%%volumeletter%%.txt
      if "%%activate_partition%%" == "1" echo active >> create_%%volumeletter%%.txt
      set activate_partition=0
      echo assign letter %%volumeletter%% >> create_%%volumeletter%%.txt
      echo exit >> create_%%volumeletter%%.txt
      echo --- Content of create_%%volumeletter%%.txt >> _out.txt
      type create_%%volumeletter%%.txt >> _out.txt
      echo --- >> _out.txt
      diskpart /s create_%%volumeletter%%.txt >> _out.txt
      if errorlevel 1 goto createvolume_parterror
      if "%%volumesize%%" == "0" set diskfull=1

      echo formatting %%volumeletter%% Partition
      echo formatting %%volumeletter%% Partition >> _out.txt
      format %%volumeletter%%: %%formatParams%% /FS:%%volumefs%% >> _out.txt
      if errorlevel 1 goto createvolume_formaterror
      goto %%returnlabel%%

      :createvolume_diskfull
      set errortext=Creating Partition %%volumeletter%% failed - disk is full
      goto error

      :createvolume_parterror
      if "%%diskfull%%" == "1" goto createvolume_diskfull
      set errortext=Creating Partition %%volumeletter%% failed
      goto error

      :createvolume_formaterror
      set errortext=Formatting Partition %%volumeletter%% failed
      goto error

      :cleandisk_error
      set errortext=Cleaning Disk %%disknumber%% failed
      goto error

      :wrongOS_error
      set errortext=This Script works only in Windows PE
      goto error

      :error
      echo %%errortext%%
      echo %%errortext%% >> _out.txt
      echo %%errortext%% > _Error.txt
      exit /B 1

      :end
      echo Execution finished
      exit /B 0