2026-06-13

Установка загрузчика в 0-й сектор диска HDD

------------- Установка загрузчика в 0-й сектор диска HDD (LEGASY BOOT) -----------------

hex-редактором скопировать 446(0x1BE) байт с любой загрузочной флешки Windows

0x1BE - начинаются записи 4-х разделов по 16 байт каждый

Первый байт активного раздела должен быть 0x80

0x1C6 (если 1-я запись раздела) - LBA сектора первого раздела

Это загрузчик, запускающий bootmgr (полный адрес: LBA * размер сектора, т.е. 0x800*0x200=0x100000)

-- UEFI BOOT ----------------------------------------------------------------------------

В случае загрузки UEFI сектор 0 будет заполнен 0х00

 

Структура ISO-файла

0x8000 01 CD001 - первый заголовок

0x8800 00 CD001 - заголовок EL TORITO SPECIFICATION (указывает на первую 32бит запись 0x14*0x800=0xA000)

0x9000 02 CD001 - расширенный заголовок UNICODE

0x9800 FF CD001 - заголовок terminator

0xA000 01 ... AA55 - первая 32бит запись

0xA020 88 - (9й байт (например, 2D) это загрузчик, запускающий bootmgr (в конце этого сектора 0x2D*0x800=0x16800 и можно изменить имя файла bootmgr например на bl0tmgr)

0xA040 91 - последняя 32бит запись (если 90, то НЕ последняя, если второй байт = 0xEF, то запись UEFI)

0xA060 88 - (9й байт (например, 2E) первый сектор(?) 0x2E*0x800=0x17000

 

Перепаковать bootmgr

Взять 7_boot_x64.wim\1\Windows\Boot\PXE\bootmgr.exe, изменить пути (например, BOOT на BL0T для boot\bcd, boot\bootstat.dat, boot\fonts) бинарным редактором и запаковать в bootmgr при помощи BOOTMGR_Recompiler

Можно изменить и имя менеджера загрузки (например на bl0tmgr) в секторе загрузчика, запускающего bootmgr

 

Редактирование BCD

bl0t_01_bcd.bat создает необходимые записи в файле bl0t_bcd

set bcdfile=./bl0t_bcd

bcdedit /store %bcdfile% /create {bootmgr}

bcdedit /store %bcdfile% /set {bootmgr} description "Windows Boot Manager"

bcdedit /store %bcdfile% /set {bootmgr} locale en-US

bcdedit /store %bcdfile% /set {bootmgr} nointegritychecks Yes

bcdedit /store %bcdfile% /create {ramdiskoptions}

bcdedit /store %bcdfile% /create /d "Boot from HDD" /application bootsector

bcdedit /store %bcdfile% /create /d "Grub4Dos Menu" /application bootsector

bcdedit /store %bcdfile% /create /d "Windows 7 Setup" /application osloader

pause

В bl0t_02_bcd.bat указать полученные GUID и он пропишет параметры для каждой записи

set bcdfile=./bl0t_bcd

set entry1={5a90d7c7-334a-11f1-85a6-5254001324ad}

set entry2={5aa2b96a-334a-11f1-85a6-5254001324ad}

set entry3={5a64bc46-334a-11f1-85a6-5254001324ad}

bcdedit /store %bcdfile% /set {bootmgr} default %entry1%

bcdedit /store %bcdfile% /set {default} device boot

bcdedit /store %bcdfile% /set {default} path \bl0t\boot\start_os.bin

bcdedit /store %bcdfile% /set {bootmgr} default %entry2%

bcdedit /store %bcdfile% /set {default} device boot

bcdedit /store %bcdfile% /set {default} path \bl0t\boot\grldr

bcdedit /store %bcdfile% /set {ramdiskoptions} ramdisksdidevice boot

bcdedit /store %bcdfile% /set {ramdiskoptions} ramdisksdipath \bl0t\boot\boot.sdi

bcdedit /store %bcdfile% /set {bootmgr} default %entry3%

bcdedit /store %bcdfile% /set {default} device ramdisk=[boot]\bl0t\7_boot_x64.wim,{ramdiskoptions}

bcdedit /store %bcdfile% /set {default} path \Windows\system32\boot\winload.exe

bcdedit /store %bcdfile% /set {default} osdevice ramdisk=[boot]\bl0t\7_boot_x64.wim,{ramdiskoptions}

bcdedit /store %bcdfile% /set {default} systemroot \Windows

bcdedit /store %bcdfile% /set {default} detecthal Yes

bcdedit /store %bcdfile% /set {default} winpe Yes

bcdedit /store %bcdfile% /set {default} nointegritychecks Yes

bcdedit /store %bcdfile% /set {bootmgr} default %entry1%

bcdedit /store %bcdfile% /set {bootmgr} displayorder %entry1% %entry2% %entry3%

pause

c:\admin\>bcdedit /store .\bl0t_bcd /enum all - вывод полной информации из хранилища ./bl0t_bcd


https://learn.microsoft.com/en-us/windows/deployment/configure-a-pxe-server-to-load-windows-pe

Linux-11.1 box 5.4.3-tinycore i686 Tue May 12 14:12:03 UTC 2026

 

Утилита Exe2Aut.exe

------------- Правка 7_boot_x64.wim ---------------- 7_boot_x64.wim\1\Windows\Setup2.au3 Func srcdrv() 7_boot_x64.wim\1\Windows\Setup2.ini Path 7_boot_x64.wim\1\Windows\StartSetup_x64.exe 1. Распаковать при помощи exe2aut (см. autoit-v3.2.8.1\Extras\Exe2Aut\#_readme_#.txt) ----------------------------------------------------------------------------------------------------- Найти в скомпилированном файле (например, StartSetup_x64.exe в сборке SMBB) hex-значение 0xA3484BBE986C4AA9994C530A86D6487D и все данные, начиная с него и до конца файла, дописать в 32-битную заглушку .\autoit-v3.2.8.1\Aut2Exe\AutoItSC.bin Переименовать AutoItSC.bin в AutoItSC.exe и можно декомилировать 1. Либо родным Exe2Aut.exe, если версия скриптов не старше autoit-v3.2.5.1 2. Либо exe2aut-new.exe (это Exe2Aut.exe с сайта https://exe2aut.com/ (но на 2026-04-12 он тоже работает ТОЛЬКО с х32) ----------------------------------------------------------------------------------------------------- 2. Изменить Func _tl() 3. Запаковать обратно при помощи Aut2Exe