Skocz do zawartości

System Recovery


Rekomendowane odpowiedzi

Mam pytanie do autora System Recovery "prawie" profesjonalnie i kompleksowo: czy sposob na Recovery z uzyciem ImageX lub Ghost32(64) wraz z Masterscript nie dziala w przypadku Win 7 Ultimate SP1: x86 pl, gdyz od paru dni probuje to zrobic nieskutecznie i cigle przy restarcie po uzyciu ww zestawu wyrzuca komunikat o bledzie:

 

Uruchomienie systemu Windows nie powiodlo sie. Przczyna moze byc ostatnie zmiana sprzetu lub oprogramowania. Aby rozwiazac ten problem:

 

1. Wloz dysk instalacyjny systemu Windows i ponownie uruchom komputer.

2. Wybierz ustawienia jezyka, a nastepnie kliknij przycisk Dalej.

3. Kliknij pozycje Napraw ten komputer.

 

Jesli nie masz tego dysku, skontaktuj sie z administratorem systemu lub

producentem komputera, aby uzyskac pomoc.

 

 

Stan: 0xc000000f

 

Informacje; Nie mozna uruchomic pozycji rozruchu, poniewaz wymagane urzadzenie jest niedostepne.

 

Nadmienie ze probuje skopiowac do ukrytej partycji czysty dopiero co zainstalowany system z oryginalnej czystej plytki a laptop jest sprawny.

Pozdrawiam

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Skrypt powinien działać prawidłowo. Dla pewności sprawdziłem dodatkowo po twoim poście całość na czystej instalacji Win7 Ultimate SP1 x86, zarówno przechwycenie jak i odzyskiwanie działa prawidłowo.

Oczywiście testy robiłem na maszynie wirtualnej i fizyczny komputer może zachować się troszkę inaczej ale jeżeli sam skrypt wykonuje się prawidłowo to nie powinno mieć znaczenia jaka to maszyna.

Mam pewne podejrzenia dlatego proszę o dodatkowe informacje.

 

Czy komunikat występuje jednorazowo po pierwszym restarcie a po ponownym uruchamia się standardowy system?

 

Proszę podać wynik działania komendy:

 

diskpart

lis vol

 

Ew. proszę wykonać skrypt vbs:

If WScript.Arguments.length =0 Then
 Set objShell = CreateObject("Shell.Application")
 objShell.ShellExecute "wscript.exe", Chr(34) & _
 WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else

On Error Resume Next

Set objShell = CreateObject("WScript.Shell")
 

objShell.CurrentDirectory =  objShell.ExpandEnvironmentStrings("%userprofile%") & "\desktop"

objShell.Run ("%comspec% /c mklink /d c:\tmprecovery \\?\GLOBALROOT\device\harddisk0\partition1\"),0,true


 Set fso = CreateObject("Scripting.FileSystemObject")
 Set NewFile = fso.CreateTextFile("FileList.txt", True)
 Set folder = fso.GetFolder("c:\tmprecovery")
 
For Each objSubfolder in Folder.Subfolders
  NewFile.WriteLine("\" & objSubfolder.name)
next

NewFile.WriteLine vbcrlf

ShowSubFolders folder, ""

NewFile.WriteLine vbcrlf

For each folderIdx In folder.Files
  NewFile.WriteLine("\" & folderIdx.Name)
Next

NewFile.Close


objShell.Run ("%comspec% /c bcdedit /store \\?\GLOBALROOT\device\harddisk0\partition1\boot\bcd /enum all >%userprofile%\desktop\bcd_part1.txt"),0,true

objShell.Run ("%comspec% /c rmdir c:\tmprecovery"),0,true

End If
WScript.quit


Sub ShowSubFolders(folder,nazwa)
For Each Subfolder In Folder.SubFolders
For Each file In SubFolder.Files
NewFile.WriteLine(nazwa & "\" & subfolder.name  & "\" & file.Name)
Next
NewFile.WriteLine vbcrlf
ShowSubFolders Subfolder ,nazwa & "\" & Subfolder.name
Next
End Sub

 

i wrzucić zawartość utworzonych na pulpicie plików.

 

pzdr

Odnośnik do komentarza

Bardzo dziekuje za szybka odpowiedz.

Dla pewnosci dzisiaj wymienilem dysk twardy w laptopie ale niestety efekt identyczny.

 

Rzeczywiscie dokladnie tak jest, ze komunikat występuje jednorazowo po pierwszym restarcie a po ponownym uruchamia się standardowy system.

W zalaczeniu wynik komendy diskpart lis vol oraz pliki utworzone skryptem

bcd_part1.txt

FileList.txt

diskpart lis vol.txt

Odnośnik do komentarza

wygląda na to, że problemem jest kolejność partycji, oczywiście da się utworzyć recovery przy dowolnym ich układzie tym niemniej przykładowe skrypty zakładają konkretny układ:

pierwsza partycja zawierająca pliki startowe systemu a więc ustawiona jako aktywna która jednocześnie stanie się partycją recovery, jej rozmiar zależy od rozmiaru przechwytywanego systemu, tak naprawdę dla czystego systemu ze sterownikami wystarczy ok 3GB.

druga partycja z samym systemem.

 

W twoim przypadku partycja dla recovery nie zawiera plików rozruchowych (pewnie są na partycji z systemem) a więc wpisy w kontenerze rozruchowym szukają pliku winpe.wim w niewłaściwym miejscu i środowisko służące do przechwycenia się nie uruchamia (stąd błąd który przytoczyłeś), system potem uruchamia się prawidłowo dlatego, że komenda startująca środowisko przechwytujące jest jednorazowa.

 

pzdr

 

edit

Po dokładniejszym przyjrzeniu się plikom które zamieściłeś uważam, że nie tyle kolejność co właśnie złe przypisanie ról jest przyczyną dla której to u Ciebie nie zadziałało. Całość wywala się prawdopodobnie nie na samym winpe.wim (czy właściwie wintemp.wim) ale na ram dysku, układ szuka na partycji o znaczniku "boot" pliku boot.sdi w ścieżce \recovery i oczywiście w tym przypadku nie znajduje (bo szuka na c:\recovery czyli partycji drugiej zamiast na pierwszej).

O ile nadal uważam, że pliki startowe (które MS określa jako systemowe) powinny znaleźć się raczej na partycji recovery ew. na zupełnie oddzielnej partycji to jednak i w opisywanym przypadku da się (powinno się dać) w miarę prosto uzyskać działający zestaw, należy tylko w skryptach zastąpić wpisy:

objFile.WriteLine "@bcdedit /set {ramdiskoptions} ramdisksdidevice boot"

następującą wersją:

objFile.WriteLine "@bcdedit /set {ramdiskoptions} ramdisksdidevice partition=\device\harddisk0\partition1"

 

pzdr

Odnośnik do komentarza

Jeszcze raz szczerze dziekuje za odpowiedz. Jest dokladnie tak jak napisales, ale musze sie przyznac ze wstydem do tego ze oczywiscie, tak jak podejrzewalem od poczatku , robilem blad ale nie moglem go sam zidentyfikowac i miedzy innymi dlatego chcialem sie upewnic u zrodla, ze konfiguracja ktora chcialem zrobic jest mozliwa.

Twoje wskazowki mnie nakierowaly i odkrylem, ze podczas modyfikowania pliku odpowiedzi unattend, w celu innego skonfigurowania wlasnie partycji, zaznaczylem przypadkiem obydwie partycje, tzn zarowno Recovery jak i systemowa jako aktywne i z tego jak napisales wynikly klopoty. Dziekuje za pomoc jak rowniez ogolnie za bardzo fajnie, przystepnie napisana instrukcje, ktora sie swietnie sprawdza i mozna ja zastosowac nawet nie majac zbyt duzo pojecia o podstawach.

Problem rozwiazany.

Pozdrawiam

Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...