Valljuk meg, hogy nem nagyon érdekel minket, hogy mi történik a PC-ben, ha bekapcsoljuk. A felhasználók 99%-át jellemzően csak az érdekli, hogy működjön a gép. Ha lassan áll fel, na akkor kezdünk aggódni…
A boot folyamat azért kritikus, mert alapvetően meghatározza, hogy a PC mennyi idő alatt lesz munkára kész. De a számítógép stabilitása és biztonsága is az indítás utáni másodperceken múlik.
Bár manapság már fel sem tűnik nekünk, de a számítógépek régen sokkal lassabban indultak. Napjainkban 10 másodperc is elég ahhoz, hogy a Windows felálljon, de régen ehhez 90-120 másodpercre is szükség volt.
De minek is köszönhető ez a gyorsulás? Részben a gyorsabb processzoroknak és memóriáknak, részben pedig a szupergyors SSD-knek. Ugyanakkor a számítógép indítási idejének rövidülése távolról sem jelenti azt, hogy a folyamat bármennyit is egyszerűsödött volna. Ugyanis a gép üzembiztos működése azon múlik, hogy a boot folyamat során az egymásra épülő műveletek rendben lefutnak-e. Ha igen, akkor a Windows néhány másodperc alatt feláll, ha viszont nem, akkor a hiba megtalálása sokszor még a gyakorlott szakértők számára sem triviális művelet.
Mi történik a PC-ben, ha bekapcsoljuk?
Így indul az alaplap
Amikor megnyomjuk a bekapcsoló gombot, akkor első körben az alaplapé a főszerep. Hiszen ez az a részegység, amely az összes többi hardvert végső soron összeköti egymással. Az alaplapoknak saját operációs rendszere van, ez a BIOS. A BIOS, ahogyan az nevéből (Basic Input/Output System Alapszintű bemeneti/kimeneti rendszer) is következik, egy nem túl fejlett szoftver, de persze nincs is igazán sok dolga. Kis túlzással csak azt kell ellenőriznie, hogy minden szükséges hardver megtalálható-e a gépben, és hogy a hardverek gyors teszt alapján megfelelően működnek-e.
A modern alaplapokon ma már UEFI-nek hívják a BIOS-t; ez a két rendszer alapvetően ugyanazokat a funkciókat látja el. Azonban az UEFI fejlettebb, például többféle biztonsági funkciót is támogat. Visszatérve tehát arra, hogy mi történik, amikor a bekapcsoló gombot megnyomjuk: a rendszer ellenőrzi az alapvető hardverek meglétét (processzor, memória, adattároló stb.). Ha bármi hiányzik vagy nem megfelelően működik, akkor hibajelzést kapunk (ami lehet a monitoron megjelenő kód vagy akár hang- jelzés is). Ha pedig minden rendben van, akkor a BIOS megkeresi a boot meghajtót és elindítja a rajta lévő boot sectorban tárolt kódot.
A boot meghajtó kiválasztása lehet automatikus, de ez a paraméter a BIOS beállítások között kézzel is beállítható. Eltekintve attól, hogy a gépből valamilyen hardver hiányzik, vagy hibás, a boot sectorban lévő kód elindítása az első komolyabb hibalehetőség. Előfordulhat, hogy a kiválasztott meghajtón lévő kód hibás (például azért, mert egy félresikerült frissítés vagy egy vírus felülírta), vagy hiányzik. Utóbbi esetben jellemzően csak arról van szó, hogy a géphez egy USB-s meghajtó is csatlakozik, és a BIOS a normál SSD/HDD helyett arról próbálta meg elindítani a rendszert. Illetve gyakori hiba még, hogy a gép belső részének takarítása vagy szerelés után nem vagy nem megfelelő helyre lett visszadugva a merevlemez adat- és/vagy tápkábele.
Így indul az operációs rendszer
Fentiek alapján már tudjuk, hogy a BIOS/UEFI az, amelyik megkeresi a boot meghajtót és elindítja annak legelső szektorában, a boot szektorban található kódot. A boot szektorban lévő kód 512 kB méretű és az MBR (Master Boot Record) szabványos formátumot használja.
Alapvetően két dolgot tárol:
- az egyik az, hogy a merevlemezen lévő operációs rendszer indító kódja pontosan hol található
- a másik pedig, hogy az SSD/merevlemez területét hogyan osztottuk fel partíciókra.
Érdekességként jegyezzük meg, hogy több partíció esetén minden partíciónak van saját boot szektora, az MBR azonban mindig az adattároló legelső boot szektorában található meg. Az MBR-t azonban majd’ 40 évvel ezelőtt találták ki, így mára elavult. Az egyik probléma az, hogy az 512 kB-os méret nem túl nagy, és mivel kevés információ tárolható benne, egy meghajtón legfeljebb négy partíció hozható létre. Ha ennél többre van szükség, akkor persze van rá megoldás: kiterjesztett partíciót kell létrehozni, amit aztán logikai egységekre lehet bontani. Az MBR-nek azonban még nagyobb korlátja, hogy 32 biten tárolja partíciók méretét, és így a legnagyobb partícióméret 2 TB. Ez pedig ma már egyszerűen kevés.
A megoldást a GPT rendszerre való átállás jelenti (GUID Partition Table). Ezt a rendszert azonban csak az UEFI támogatja, a BIOS nem. Aki tehát 2 TB-nál nagyobb partíció(ka)t szeretne használni, annak muszáj olyan alaplapot vásárolnia, amely UEFI-vel szerelt. A GPT is a merevlemez első szektorában kezdődik, azonban további szektorokban is tárol adatokat. Így 128 darab partíciót támogat, akár 9.44 ZB-s kapacitással. (1 ZB nagyjából 1 millió TB).
A számítógép indítását tekintve a GPT is remek hibaforrás lehet. A Windowsnak ugyanis csak a 64 bites verziói tudnak bootolni róla. Habár a 32 bites változatok is kezelik a GPT-vel strukturált merevlemezeket, de csak akkor, ha azok nem rendszermeghajtók. Hogy ez miért fontos? Azért, mert az UEFI, a visszafelé kompatibilitás miatt, képes hagyományos BIOS rendszerként is működni. Így, ha ezt a kompatibilitási módot kapcsoljuk, előfordulhat, hogy a 32 bites Windows nem indul el. Az UEFI/BIOS ilyenkor ráadásul nem fog hibát jelezni, hiszen megtalálta az indító kódot.
Mi történik a PC-ben, ha bekapcsoljuk: Biztonságos indítás
Fentebb már említettük, hogy a BIOS lefuttatja a boot meghajtó legelső szektorában található kódot. Ez eddig szép és jó, csakhogy van egy kis gond is: a BIOS mindenképpen lefuttatja ezt a kódot. Semmilyen módon nem tudja ellenőrizni, hogy a kód a Windowst vagy más operációs rendszert indít-e el, vagy valamilyen vírust. Ebből pedig adódhat galiba, nem is kicsi. Egy hekkernek lehetősége van például arra, hogy Windows indulása előtt betöltsön egy virtuális gépet, és a Windowst azon belül futtassa. Mondanunk sem kell, hogy ez mennyire veszélyes – főleg úgy, hogy a felhasználó ebből az égvilágon semmit nem vesz észre.
Az UEFI megoldást nyújt a problémára: a Secure Boot funkciót aktiválva az UEFI digitális aláírással látja el a boot szektort, csak akkor indítja el, ha a PC bekapcsolása után a kiolvasott boot szektor aláírása egyezik a tárolt kulccsal. Cserébe a Secure Boot funkció kissé megnehezíti azok dolgát, aki Windowst követően szeretnének például Linuxot telepíteni. Vannak megoldások erre a problémára is, de nem minden esetben járható megoldásokról van szó (a Secure Boot például kikapcsolható, de akkor oda a biztonság). Ha a gép nem indul, és az UEFI biztonsági hibát jelez, akkor érdemes egy USB stick segítségével azonnal biztosági ellenőrzést végezni a gépen.
Melyik Windowst?
A boot szektorban lévő kód még nem magát a Windowst, hanem a boot menedzsert indítja el, amelynek segítségével az összes telepített rendszer közül kiválaszthatjuk azt, amelyikre szükség van. A boot menedzser sok PC-n nem látszik viszont, hiszen, ha csak egy OS van a gépen, akkor nincs választási lehetőség, és az OS automatikusan elindul. A Windows 10 esetében a telepített operációs rendszerek listáját egy bináris fájl tartalmazza, így sima szövegszerkesztővel nem lehet megnézni sem a tartalmát. Ehhez ugyanis kell a BCDEdit nevű alkalmazás. Korábban a boot.ini akár a Jegyzettömbbel is módosítható volt, azonban a lelkes, de kevésbé gyakorlott, kísérletezni vágyó felhasználók gépére nézve ez sok veszélyt rejtett magában. A lényeg azonban azon van, hogy a boot menedzser vagy automatikusan elindítja a PC-n lévő egyetlen operációs rendszert vagy felkínálja a választás lehetőségét, és azt az OS-t futtatja, amit kiválasztottunk.
Célegyenesben
A kívánt rendszer kiválasztása után a boot menedzser elindítja az operációs rendszert, ami a Windows esetében úgy néz ki, hogy lefut a C:\Windows\System32 mappában lévő win-load.exe állomány. Előfordulhat, hogy a PC nem indul, mert ez a fájl nincs a helyén. Ebben az esetben a híres-hírhedt INACCESSIBLE_BOOT_DEVICE üzenet küldi padlóra a gépet. A fájl rosszabb esetben sérült vagy tényleg hiányzik (vírus, vagy partíciók átméretezése miatt), jobb esetben viszont csak arról van szó, hogy a merevlemezeket egy szerelést követően nem a megfelelő sorrendben dugtuk vissza a helyére.
Ezt persze könnyen orvosolhatjuk: húzzuk le az összes meghajtót, majd dugjuk vissza csak és kizárólag azt az SSD-t/HDD-t, amin a Windows található. A meghajtót az 1-es SATA portra csatlakoztassuk! Amennyiben a rendszer indítását követően a fenti hibaüzenet nem jelenik meg, akkor a boot folyamat sikeres, és a Windows betöltődik. Ha mégsem, akkor viszont a hiba már nem magában a boot folyamatban keresendő, hanem a Windows telepítésével van valamilyen probléma. Ebben az esetben a Windows saját helyreállítás funkcióinak valamelyikével próbálkozhatunk.