Hirdetés

Windows bootloader rendberakás lvl.basic

ÚJ bejegyzés

Kerülhet az ember olyan helyzetbe, hogy egy Windowst másik (fizikai vagy virtuális) gépben kéne elindítani, akár háttértár mozgatással, akár klónozva. Ilyenkor vagy pöcc-röff indul, vagy macerálni kell.

Utóbbi főleg akkor jön, ha a storage más módra van konfigolva, vagy tök más. SATA-ról NVMe-re, IDE-ről SATA-ra... AHCI vagy RAID beállítás a BIOS-ban... meg fizikai és virtuális gép közti mozgások is okozhatnak olyat, hogy egy Windows ne induljon el többet.

Jelen esetben nem tudtam azt előidézni, amit akartam, hogy pl. IDE -ről SATA-ra változzon a winyóvezérlő, mint ahogyan az első KVM-es Win10 virtuálgépemmel történt (valamikor 2022-ben? sikerült véletlenül IDE emulációra telepíteni :D , akkor jött az ötlet, hogy ezt meg kéne írni, és mostanra valósult meg :D ), szóval egy működő Win11 alatt akartam kicserélni a storage-t SATA-ról IDE-re. Na azt már nem engedi a KVM, mert UEFI 64 bites a guest, szóval mit volt mit tenni, USB-t dobtam alá. (Nyilván virtuális gépen történt a macerálás, mert az a legkényelmesebb.) Ez praktikusan azt jelenti, hogy ugyanannak a virtuális HDD-nek USB kapcsolatot emulál, ugyanúgy nem fogja megtalálni a boot eszközt a Windows kernel. Viszont teljesen mindegy, hogy ez virtuális gép, mert a Windows szempontjából ugyanaz történik : változik annak az eszköznek az azonosítója, amiről bebootolt, tehát a winload.exe után a kernel már csak bután néz, hogy hol van az OS.

Ilyenkor jobb esetben dob egy Boot device inaccessible hátast, és kapunk egy recovery környezetet.

Hirdetés

Szép kék, van pár lehetőség. (Mármint, ha nem újraindítjuk a gépet, hanem "Speciális lehetőségek".)

Meg lehet próbálni a hibaelhárítást. Valakinek működött már? :D
Eszköz használata, Speciális lehetőségek, parancssor.

Itt kicsit gépelni kell.
Lehet kezdeni egy bootrec /rebuildbcd -vel. Ez mondjuk valószínű azt fogja mondani, hogy 0 Windows installációt talált (pedig hát a C: meghajtó jó esetben látszik is a recovery környezetből). Tehát meg kell neki mutatni, hogy hol ténykedjen.

Indítsuk el a diskpart nevű programot, listázzuk a lemezeket, válasszuk ki azt, amin a rendszer van (0-s, ha csak egy háttértár van) válasszuk ki az EFI partíciót (az első, azaz 1-es lesz általában), és adjunk neki egy meghajtó-betűjelet. Ez azért kell, mert kéne látni a tartalmát. Ez úgyis csak egy FAT32 partíció, amin az EFI loaderek vannak.

Tehát :
diskpart
list disk
select disk 0
list part
select part 1 (vagy hát azt, amelyik az EFI partíciónak látszik)
exit
itt visszaadja a promptot.

assign letter=Y (X helyből foglalt, a recovery azt használja, hátha nincs annyi diszk a gépben... :D )

Az EFI partíción meg is lehet nézni a tartalmat, dir Y: - és van rajta egy feleslegesen bonyolult könyvtárstruktúra, de az alján ott van a bootmgfw.efi és a többi.

Ezután bcdboot c:\Windows /s Y: /f UEFI
Így jó esetben már rájön, hogy ott van a bootkód a Windows könyvtárban, csak használnia kell, és odapakolni az EFI partícióra, ahol amúgy ott is van. (Ha /f ALL , akkor BIOS-t is támogatni fog a loader.)

Ha rendben lefutott, lépjünk ki az exit paranccsal, majd a menüből újraindítás.

Ezután el kéne indulnia.

Ha nem teszi, akkor kb. ugyanez a módszer, lehet próbálkozni a bcdedit elvetemültebb használatával, stb.
Ez esetben annyi furcsaság volt, hogy újraindítás után elindult, de reboot már nem ment. Még egyszer újraépíttettem vele a bootkódot, majd a futó rendszerből reboot a Startup Settings-be (Shift nyomása mellett újraindítani a Windowst). Safe mode-ban indult. Ha csak eddig jut a dolog, az már jobb, mint a semmi, a futó OS alól már lehet megoldást keresni, pl. hiányzó drivereket feltenni, stb. Viszont ez leginkább a KVM által emulált Virtio USB -nek lehetett köszönhető, hiszen hasonlót az elmúlt években mindenféle fizikai gépeken sokszor csináltam, és a legtöbbször simán meg lehetett oldani (hello Dell magától átálló AHCI és RAID mód BIOS frissítés után...). (Nem tudom, a KVM-en használatos TianoCore UEFI mit csinál az USB emulációban az eszközazonosítókkal, de errefelé lehetett az ok.)

Slusszpoén, hogy a kisördög nem aludt, így a mókolt Windowst kiklónoztam egy mindennel nyúzható winyóra, és a tartalék laptopon simán elindult USB-ről :D

Ez a legegyszerűbb, de leggyakoribb esete a BCD helyrerántásának, esetleg még Bitlockerrel lehet súlyosbítva, amit szintén fel lehet oldani ( manage-bde -unlock E: -password )

Remélhetőleg valakinek ez is hasznos lesz :) Kommentben jöhetnek a további módszerek :) Csomó mindent kihagyhattam, mert szerencsére jó rég volt, hogy bonyolultabb hasonló macerába futottam. (Az is főleg munkahelyi support keretében, managed Bitlocker + Azure AD joined gépekkel, ami csak további macera.)

Még van hozzászólás! Tovább