UEFI boot sector újratelepítése

Már sokszor jártam úgy, hogy sikeresen gallyra vágtam a rendszerindítást. Ilyenkor persze előkerült a telepítőmédia, melyről bootolva végigzongoráztam az ott felkínált javítási lehetőségeket. Volt mikor sikerült elhárítani a problémát, de párszor előfordult, hogy nem jártam eredménnyel GPT-re partícionált UEFI-s gép esetében. Próbálkoztam harmadik féltől származó helyreállító lemez használatával is, de ez sem hozott mindig eredményt. Ekkor jött az újratelepítés, de egy idő után már meguntam. Ezután kezdtem el keresni megoldást az újratelepítés elkerülésére. Az alábbiakban megosztom az egyik ilyen megoldást, melyet már többször, és több rendszeren is teszteltem.
Példaként egy Windows 10-es rendszer rendszerindításának újratelepítésén keresztül mutatom be az eljárást.

Amire szükségünk lesz:

– A rendszer telepítőmédiája, melyről be tudunk bootolni.
– Bootolásra alkalmas partícionáló lemez. Erre a célra én a GParted live CD-t használom. Ingyenes és még magyarul is tud.
– Az alábbi leírásban használt parancsok kinyomtatása, illetve feljegyzése.

Először is vizsgáljuk meg gépünk partícióit.
A rendszer beépített Lemezkezelő-jét használva az alábbi képet kapom:

10

Itt láthatjuk, hogy a Lemez 0-án, a “C” meghajtón van a Rendszerindítás, Helyreállítási partíció (450 MB) és az EFI-rendszerpartíció (100 MB).
Ha nyitunk egy rendszergazdai parancssort és kiadjuk a diskpart (1.) parancsot, majd a list disk (2.) parancs után a select disk 0 (3.) parancsot és végül a list partition (4.) parancssal kilistázzuk a tartalmát, akkor láthatjuk, hogy megjelent egy Reserved (16 MB) partíció is.

2

A későbbiekben ezzel a 16 MB-os Reserved és a 100 MB-os System partíciókkal fogunk dolgozni.

Ennyi ismerkedés és előkészület után térjünk is rá a rendszerindítás újratelepítésére.

Először is teremtsünk tiszta helyzetet. A hibás rendszerindítás oka nagy valószínűséggel a Reserved és a System partíciók hibás működése okozzza, ezért ezeket fogjuk újratelepíteni. Tehát töröljük őket.
A GParted live CD-ről bootlva törlöm a fent említett két partíciót. A törlés után következzen az újratelepítés.
Bootoljunk be a rendszerünk telepítőmédiáját használva (esetemben ez egy USB kulcs amin Windows 10 rendszer van).
A telepítendő nyelv:, Idő és pénz formátum:, Billentyűzet vagy beviteli módszer: meghatározása után a Telepítés helyett válasszuk a Számítógép javítása lehetőséget, majd a Hibaelhárítás>Speciális lehetőségek>Parancssor útvonalon nyissunk egy parancssort.

Most lesz szükség a kinyomtatott/feljegyzett parancsokra:

diskpart
list disk
select disk 0
create partition efi size=100
list partition

Itt láthatjuk, hogy létrejött a 100 MB-os partíció (*)

format quick fs=fat32 label="System"
assign letter=B
create partition msr size=16
list partition

Ezzel csak leellenőrizzük a parancs végrehajtását.

list vol
select vol 1

Nálam az “1”-es van kiválasztva, mivel ezen (C) található a Windows rendszer.

assign letter=C
exit
mkdir B:\EFI\Microsoft\Boot
xcopy /s C:\Windows\Boot\EFI\*.* B:\EFI\Microsoft\Boot
b:
cd EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD /create {bootmgr} /d "Windows Boot Manager"
bcdedit /store BCD /create /d "Windows 10" /application osloader

Ezen parancs kiadása után az ablakunkban meg fog jelenni {} zárójelek között egy hosszú, betűket és számokat tartalmazó érték. Ezt az értéket kell bemásolni/beírni a következő parancsban a guid helyére! Tehát:

bcdedit /store BCD /set {bootmgr} default {guid}
bcdedit /store BCD /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
bcdedit /store BCD /set {bootmgr} displayorder {default}
bcdedit /store BCD /set {default} device partition=C:
bcdedit /store BCD /set {default} osdevice partition=C:
bcdedit /store BCD /set {default} path \Windows\System32\winload.efi
bcdedit /store BCD /set {default} systemroot \Windows
exit

Ezzel gyakorlatilag készen is vagyunk. Mivel azonban általában több oprendszert is használok a gépen, ezért nekem egy feladat még hátravan. Ez az eljárás újratelepíti a rendszerindítást, de nem látja a többi oprendszert. Ehhez már az MBR-re telepített rendszer rendszerindítás visszaállításához használatos parancsokat használjuk. Történetesen:

bootrec /fixmbr
bootrec /fixboot
bootrec /scannos
bootrec /rebuildbcd

Most már újraindíthatjuk a gépet.

Mindenkinek azt kívánom, hogy ne kelljen használnia az itt leírtakat, de azért jó ha tud egy ilyen lehetőségről is az ember!

4 hozzászólás érkezett ehhez a poszthoz

  1. Profile photo of hjanos

    Pár észrevétel, építő jellegű kritika:
    Microsoft Reserved partíciónak semmi szerepe nincs, azért van, hogy ha kéne még partíciót létrehozni, akkor legyen miből.
    Az egész xcopy-s bcdedit-es szerencsétlenkedés helyett egyébként van egy sokkal egyszerűbb beépített tool:
    bcdboot C:\Windows /l hu-hu /s X: /f UEFI
    ahol
    C:\Windows a telepített OS-ünk Windows mappája, X: pedig az EFI partíció betűjele
    Ez megcsinál mindent, tehát odamásolja a megfelelő fájlokat, létrehozza az EFI entry-t és beállítja a rendszertöltőt a C:\Windows elérési útvonalon lévő Windows indítására

    Tetszik (1)
    • Profile photo of vaczak9283

      Sziasztok!
      Nincs benne szó “szerencsétlenkedés“ről, fuss neki még egyszer, az én olvasatomban ez egy nagyon jól alkalmazható technika, mint ahogy az lenne a te javaslatod is, ha szépen részleteznéd a kezdőkre figyelve…
      Üdv.: vaczak

      Tetszik (5)
    • Profile photo of abissus

      Eötvös Gábor zenebohóc jut eszembe ilyenkor, híres mondása volt a, „van másik”, persze, mindig van másik, van egyszerűbb, van kicsit komplikáltabb, van ilyen, van amolyan. Ez önmagában soha nem baj, mert az egyik user így szereti megoldani, a másik amúgy, az egyik szereti, ha túl részletes egy leírás, a másik szereti, ha röviden, de velősen van összefoglalva. Szerencsére nem ez az a dolgok értékmérője, hanem az, használható megoldás vagy sem.
      Ami a MSR particiót illeti, egyetértünk, talán az írás részletes útvesztőjében keveredhetett oda, mint fontos mozzanat, ezzel együtt maga az eljárás korrekt. 🙂

      Tetszik (2)
  2. Profile photo of Maszi65

    Kérdésem az lenne, hogy a gparted helyett a fent írt kettő partíciót lehetséges-e törölni a telepítő diskpart programjával a következőképpen:
    diskpart
    list disk
    sel disk 0 (0 az amelyiken a kérdéses op. rendszer található)
    list part
    sel part 2 (2 az amelyik partíciót törölni akarjuk)
    del part override
    Innentől a többit nem folytatnám, mivel ebben a remek cikkben megtalálható és köszönet érte KABALA-nak!

    Tetszik (0)

Szólj hozzá a cikkhez