Boot Configuration Data
Mis on Boot Configuration Data (BCD)?
BCD pakub püsivara sõltumatut mehhanismide kogumit manipuleerimaks alglaadimise keskkonna andmestikku igal Windowsil põhineval arvutil ehk BCD sisaldab detailset loetelu sellest, et mida laetakse pärast arvuti käivitamist või restarti. See on Windowsis kasutusel alates Vistast. Windows kasutab BCD selle jaoks et laadida üles operatsioonisüsteem või jooksutab erinevaid alglaadimise programme nagu näiteks mälu diagnostika.
BCD loomisega kadus ära Windows NT boot loader - ntldr ning see asendati kolme erineva komponendiga:
- Windows Boot Manager (Bootmgr.exe)
- Windows operating system loader (Winload.exe)
- Windows resume loader (Winresume.exe)
Samuti asendas BCD traditsionaalse boot.ini tekstifaili BIOS'il baseeruvates süsteemides.
BCD ülesehitus
BCD ülesehitus on hierarhiline. See koosneb kolmest baaskomponendist: hoidlast, objektidest ja elementidest.
BCD hoidla
BCD hoidla (store) on kõrgeima taseme komponent. Selle funktsioon on olla nimeruumi konteineriks ülejäänud objektidele ja elementidele. Füüsiliselt asub BCD hoidla kettal binaarse failina. BCD hoidla kirjeldab ära kõik erinevad installeeritud Windowsid ja nendega kaasnevad alglaadimise aplikatsioonid.
Tüüpilise BCD hoidla näide:
BCD objekt
BCD objekt (object) on BCD elementide konteiner. Kõige tavalisemat tüüpi BCD objekt kirjeldab alglaadimise keskkonna aplikatsiooni, nagu näiteks Windowsi buudilaadurit (boot loader), aga neid objekte kasutatakse ka muudel eesmärkidel.
Objektid jaotuvad kolme põhikategooriasse: rakenduste objektid (application objects), päritavad objektid (inheritable objects) ja seadmete objektideks (device objetcs). Kõige tavalisem BCD objekt on rakenduse objekt, mis kirjeldab buutimiskeskkonna rakendust nagu näiteks Windowsi buutimishaldur (boot manager) või Windowsi buutimislaadur. Igat objekti tähistab unikaalne 128 bitine GUID ning sisaldab 32 bitist kirjeldust mis kirjeldab seda tüüpi objekti.
Joonisel on kujutatud üldine BCD objekti vorming. Olenevalt objekti kategooriast erineb andmepaigutus 0-27 biti vahemikus.
BCD element
BCD element (element) on singulaarne andmeühik nagu näiteks siluri (debugger) seadistus, alglaadimise aplikatsiooni nimi või OS'i süsteemiseade. Elemendid sisalduvad kindlas objektis. Buutimiskeskkonna rakendusel on oma BCD rakenduse objekt ning seal sisalduvad erinevad elemendid mis omakorda sisaldavad rakenduse konfiguratsiooni.
Mõned elemendid võivad olla seotud ainult kindlate objektidega, aga teised võivad kehtida kõikide buutimiskeskkonna rakenduste kohta. Elementide haldamise lihtsustamiseks on elemendi nimeruum jaotatud kolme erinevasse klassi.
BCD elemendid koosnevad struktureeritud andmetest. Järgnev tabel näitab neid erinevaid vorminguid ja nendele omistatud koodi:
BCD asukoht arvutis
- BIOS'il baseeruvatel operatsioonisüsteemidel asub BCD registri fail aktiivse partitsiooni \Boot\Bcd kasutas.
- EFI'l baseeruvatel operatsioonisüsteemides asub BCD EFI süsteemi partitsiooni peal.
Kuidas redigeerida BCD'd
- Startup and Recovery hüpikaken võimaldab kasutajal valida vaikimisi OS'i juhul kui on installeeritud mitu erinevat operatsioonisüsteemi. Samuti on võimalik muuta taimeri algväärtust. Nendele seadistustele pääseb ligi System properties dialoogiakna Advanced tab'ile klikates.
- Kasutades System Configuration Tool'i.
- Kasutades Boot Configuration Data WMI Provider'i.
- Kasutades BCDedit'it.
Kuidas BCD holidlat luuakse?
WDS loob iga kettatõmmise jaoks eraldi BCD hoidla. See juhtub automaatselt kui WDS'i server on käivitatud ja BINLSVC on initsialiseeritud. BINLSVC loetleb üles iga WIM'is oleva \Boot\<arch>\Images kataloogi mis on märgitud alglaadimisvõimeliseks. Kui ta leiab sobiva kettatõmmise siis loob server WIM'i vastavale OS'ile oma BCD hoidla, aga seda ainult siis kui:
- Samasugust BCD'd juba ei ekisteeri selles kettatõmmises.
- Selle WIM faili timestamp ei ole uuem vastloodud BCD'st.
- See võib juhtuda, siis kui kettatõmmise metaandmeid uuendati (näiteks kui muuteti WIM'i nime).
Kui lisatakse või muudetakse alglaadimise süsteemikujutist sellel ajal kui WDS töötab, siis peab serverile teada andma et midagi on muutetud enne kui hakatakse genereerima BCD hoidlat. Kui kasutada WDS'i enda tööriistu siis avastatakse kõik muutused õigeaegselt, aga kui fail kopeeritakse käsitsi, siis ei avastata muutusi automaatselt.
Järgmine samm BCD genereermise protsessis on konkreetse BCD hoidla loomine mida kliendi arvuti hakkab kasutama. Lõppkasutaja BCD hoidla koosneb Default.bcd'st mis on siduratud iga erineva süsteemikujutise BCD hoidla'ga.
Järgnev kirjeldab seda protsessi samm-sammult:
- BINLSVC saab signaali alustada BCD hoidla loomist. See initsialiseerib iga erineva arhitektuuri jaoks BCD hoidla genereerimise.
- Default.bcd fail kopeeritakse RemoteInstall\Boot\<arch> kataloogist \RemoteInstall\Tmp kataloogi.
- Buudilaaduri suvandid iga erineva süsteemikujutise BCD hoidla jaoks kopeeritakse \Boot\<arch>\Images kaustast \Tmp kataloogi.
- Üks süsteemikujutis on vaikimisi määratud esimeseks. Vaikimisi süsteemikujutiseks saab tähestikuliselt eespool olev (juhul kui pole seatud teistmoodi).
BCD võimalikud parandamise viisid
- Trükkida CMD akna käsureale bootrec /rebuildbcd ja vajuta Enter.
- Buutimise vea võib põhjustada see, et BCD mingit failid on rikutud. /rebuildbcd parameeter parandab enamus taolisi vigasid ja ta loob täiesti uue BCD.
- Trükkida CMD akna käsureale bootrec /scanos ja vajuta Enter.
- /ScanOs parameeter skaneerib kõiki kettaid selleks et tuvastada kõiki Windows Vista ja Windows 7 installatsioone, mis ei ole momendil lülitatud Boot Configuration Data (BCD) tabelisse. Juhul kui bootrec /scanos käsk kuvab umbes sellise alltoodud tulemuse, siis on kõik korras (tuvastati vähemalt üks operatsioonisüsteem) ja Sa võid jätkata oma buutimisprobleemide lahendamist ning parandamist:
Kasutatud allikad
- http://technet.microsoft.com/en-us/library/cc721886(WS.10).aspx
- http://msdn.microsoft.com/en-us/library/bb986746
- http://landfield.pri.ee/Windows_7/Win7_boot.html
- http://download.microsoft.com/download/a/f/7/af7777e5-7dcd-4800-8a0a-b18336565f5b/BCD.docx
- http://windocuments.net/Bcd.html
Autor
Alles kirjutamisel
Tambet Liiv
A22