Boot Configuration Data: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
Line 8: Line 8:
Samuti asendas BCD traditsionaalse ''boot.ini'' tekstifaili BIOS'il baseeruvates süsteemides.  
Samuti asendas BCD traditsionaalse ''boot.ini'' tekstifaili BIOS'il baseeruvates süsteemides.  
==BCD ülesehitus==
==BCD ülesehitus==
BCD ülesehitus on hierarhiline. See koosneb kolmest baaskomponendist: ''store'''ist, objektidest ja elementidest.
BCD ülesehitus on hierarhiline. See koosneb kolmest baaskomponendist: hoidlast, objektidest ja elementidest.


BCD ''Store'' on kõrgeima taseme komponent. Selle funktsioon on olla nimeruumi konteineriks ülejäänud objektidele ja elementidele.
[[File:BCDjoonis.png]]


BCD Objekt on BCD elementide konteiner. Kõige tavalisemat tüüpi BCD objekt kirjeldab alglaadimise keskkonna aplikatsiooni, nagu näiteks Windowsi ''bootloader'''it, aga neid objekte kasutatakse ka muudel eesmärkidel.
===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.
<br />
<br />
Tüüpilise BCD hoidla näide:
<br />
<br />
[[File:BCDjoonis2.png]]
===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.  
<br />
<br />
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.
<br />
<br />
Joonisel on kujutatud üldine BCD objekti vorming. Olenevalt objekti kategooriast erineb andmepaigutus 0-27 biti vahemikus.
<br />
<br />
[[File:BCDjoonis5.png]]


BCD element on singulaarne andmeühik nagu näiteks ''debug'''imise seadistus, alglaadimise aplikatsiooni nimi või OS'i süsteemiseade.


[[File:BCDjoonis2.png]]
===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.
<br />
<br />
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.
<br />
<br />
[[File:BCDjoonis6.png]]
<br />
<br />
BCD elemendid koosnevad struktureeritud andmetest. Järgnev tabel näitab neid erinevaid vorminguid ja nendele omistatud koodi:
<br />
<br />
[[File:BCDjoonis7.png]]
 


==BCD asukoht arvutis==
==BCD asukoht arvutis==
Line 31: Line 62:




=Kuidas BCD ''store'' luuakse?=
=Kuidas BCD holidlat luuakse?=
[[WDS]] loob iga kettatõmmise jaoks eraldi BCD ''store'''i. See juhtub automaatselt kui WDS'i server on käivitatud ja [http://support.microsoft.com/kb/235979 BINLSVC] on initsialiseeritud. BINLSVC loetleb üles iga [[Windows Imaging File Format (WIM)|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 ''store'', aga seda ainult siis kui:
[[WDS]] loob iga kettatõmmise jaoks eraldi BCD hoidla. See juhtub automaatselt kui WDS'i server on käivitatud ja [http://support.microsoft.com/kb/235979 BINLSVC] on initsialiseeritud. BINLSVC loetleb üles iga [[Windows Imaging File Format (WIM)|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.
* Samasugust BCD'd juba ei ekisteeri selles kettatõmmises.
* Selle WIM faili ''timestamp'' ei ole uuem vastloodud BCD'st.
* 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).
** 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 ''store''. Kui kasutada WDS'i enda tööriistu siis avastatakse kõik muutused õigeaegselt, aga kui fail kopeeritakse käsitsi, siis ei avastata muutusi automaatselt.
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 ''store'' loomine mida kliendi arvuti hakkab kasutama. Lõppkasutaja BCD ''store'' koosneb ''Default.bcd'''st mis on siduratud iga erineva süsteemikujutise BCD ''store''<nowiki>'</nowiki>ga.
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<nowiki>'</nowiki>ga.


Järgnev kirjeldab seda protsessi samm-sammult:
Järgnev kirjeldab seda protsessi samm-sammult:
* BINLSVC saab signaali alustada BCD ''store'' loomist. See initsialiseerib iga erineva arhitektuuri jaoks BCD ''store'' genereerimise.
* 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.
* ''Default.bcd'' fail kopeeritakse ''RemoteInstall\Boot\<arch>'' kataloogist ''\RemoteInstall\Tmp'' kataloogi.
* Buudilaaduri suvandid iga erineva süsteemikujutise BCD ''store'' kopeeritakse ''\Boot\<arch>\Images'' kaustast ''\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).
* Üks süsteemikujutis on vaikimisi määratud esimeseks. Vaikimisi süsteemikujutiseks saab tähestikuliselt eespool olev (juhul kui pole seatud teistmoodi).



Revision as of 21:24, 9 October 2011

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


Autor

Alles kirjutamisel
Tambet Liiv
A22