Cum sa faci un Stick USB bootabil PCBios si UEFI plecand de la HBCD152
Copiere kituri
Vezi explicatii
Explicatii:
Pentru o interventie/modificare cat mai mica asupra kiturilor HBCD, varianta x64 a fost copiata in partitia ntfs
Pentru pcbios loader-ul e syslinux din HBCD152 si din el poate fi lansat Grub2 iar acesta va incarca kiturile din partita NTFS
kiturile pot fi incarcate si din syslinux dar trebuie modificate meniurile din HBCD152
La UEFI loader-ul e Grub2 iar kiturile de windows sunt lansate cu modulul de wimboot,dar pot fi lansate si cu bootmgr
Preloader-ul Hiren’s BootCD PE x64 a fost redenumit in bootx64ms.efi (el incarca bootmgr) si poate fi lansat de Grub2
Bootmgr va folosi bcd-ul din folderul boot sau efi/microsoft/boot a partitiei de unde a fost incarcat
La pcbios sunt 2 limitari: bootmgr nu va incarca bcd-ul daca procesorul nu are long mode
si kernelul
wimboot ce foloseste initrd16 care nu poate incarca fisiere mai mari de 896MB iar fisierul boot.wim la Hiren’s BootCD PE x64 are 1GB
Din sursa linux.h initrd e limitat cu #define GRUB_LINUX_INITRD_MAX_ADDRESS 0x37FFFFFF
Astfel in prima situatie se va folosi wimboot pentru a incarca windows7 x86, mai mult nu se poate din cauza virtualizarii
in a doua situatie se va incarca cu bootmgr-ul astfel varianta BootCD PE x64 poate fi folosita pe pcbios x86_64
grubpc32.cfg e folosit la pcbios fara long mode si nu foloseste bootmgr dar foloseste wimboot pentru windows7 x86
in prima partitie se vor copia kiturile pentru astfel de procesoare, windows7 x86 respectiv linuxuri i386
pc-urile din aceasta generatie nu suporta LBA pe USB si partitia NTFS nu va fi accesibila
Pentru windows10 au fost generate PE-uri(Preinstallation Environment) cu copype
S-a folosit
ADK for Windows 10, version 2004 cu Windows PE add-on
Instalarea celor 2 ocupa cam 5,5GB pe hdd
Dupa instalare add-on-ului in consola Deployment and Imaging Tools Environment va fi disponibila comanda copype
In loc de un winpe poate fi folosit boot.wim al unui kit de instalare
De regula boot.wim are peste 420MB fata de 260mb cat are winpe-ul obtinut cu copype
la USB2 sau 1 cei 160mb in plus insemna cateva minute in plus la incarcare
Pentru windows7 se foloseste
AIK cu copype din Deployment Tools Command Prompt
Imaginile de boot cu DaRT (Diagnostics and Recovery Toolset) pot fi obtinute cu kitul de Dart din
MDOP (Microsoft Desktop Optimization Pack)
impreuna cu copype si un kit de instalare, din pacate MDOP e cu subscriptie, nu e free
Arhivele hbcdbootwims.zip si ntfsbootwims.zip contin winpe-urile si fisierele folosite la instalari
bcd-urile afiseaza meniu si contin intrari catre wim-uri, la copiere se da overwrite
fisierele bcdexe si bcdefi sunt folosite doar cu
wimboot , nu contin meniu si sunt din BootCD PE x64 din /boot respectiv efi/microsoft/boot
Hirens.BootCD.15.2.zip nu are MiniWindows7, arhiva
mini7.zip (306MB) contine fisierele de win7 din varianta proteus
si poate fi descarcata si dezarhivata in folderul de lucru hbcd
Instalarea de windows se poate face dintr-un winpe ce poate accesa partitia NTFS lansand setup.exe-ul din folderul source al kitului respectiv
cu ajutorul wimboot se poate face meniu pentru a lansa instalarea, fara a mai da comenzi in consola, cu winpeshl.ini si un setup.bat
Atat instalarea cat si folosirea utilitarelor se face cu swap intre usb si hdd altfel nu se poate formata sau identifica hdd-ul
La folosirea DaRT-urilor trebuie utilizata varianta similara cu cea instalata pe hdd
DaRT10x86 folosit pe un windows x64 va avea
dezactivate o parte din utilitare
Instalarea kiturilor de x86(32biti) pe sisteme x86_64 poate avea 2 motive:
1. resurse limitate, de ex. RAM maxim 2GB (in cazul netbook-urilor)
doar la peste 4GB RAM trebuie un x64 altfel e o risipa pe hdd (windows x64 ocupa deobicei peste 5GB in plus fata de x86)
2. folosirea unor periferice vechi ce au drivere doar pe 32 biti
Pot fi folosite kituri x86/i386 pe x86_64 dar nu si invers, de aceea configfile-urile de x86_64 contin si meniuri de i386
Kiturile pot fi copiate partial, nu e nevoie de folderele de boot si au fost grupate pe distributii si versiuni
Pregatire:
Arhivele contin WinPE-uri folosite la repararea si/sau instalarile de windows cat si fisierele necesare lor
Se vor crea folderele necesare kiturilor in ntfs si se vor copia in ele, de ex. winx/22h2 si in el se copiaza kitul de windows 10 22H2
Folderele trebuie sa corespunda cu configfile-urile de grub si pot fi modificate/sterse dupa caz
In cazul kiturilor de windows folderele trebuie sa corespunda si in setup.bat-ul aferent
Pentru windows 10 22H2
ISO x32 se descarca si dezarhiveaza in winx32/22h2
se copiaza setup22h2.bat in setup22h2x32.bat si in el se modifica winx/22h2 in winx32/22h2, apoi in grubpc.cfg si grubefi.cfg se creaza un menuentry cu aceasta cale
sari peste si treci la
copiere finala
se descarca si dezarhiveaza hbcdbootwims.zip cu overwrite (-o)
pentru un stick doar UEFI se omite aseasta descarare si se
trece la ntfsbootwims.zip
# cd /opt/hbcd152
# if [ ! -f /opt/hbcd152/hbcdbootwims.zip ]; then wget -O hbcdbootwims.zip https://pagini.elt.ro/utile/get_file.php?name=hbcdbootwims.zip; fi
# unzip -o hbcdbootwims.zip -d hbcd
daca nu e folosita varianta proteus se poate descarca si MiniWindows7 si dezarhiva in hbcd
# if [ ! -f /opt/hbcd152/mini7.zip ]; then wget -O mini7.zip https://pagini.elt.ro/utile/get_file.php?name=mini7.zip; fi
# unzip -o mini7.zip -d hbcd
hbcd va avea o structura de genul
# tree hbcd -L 3 --filelimit 15
bcd
├── autorun.inf
├── boot
│ ├── BCD
│ ├── bcdexe
│ ├── bcdexe.txt
│ ├── boot.sdi
│ ├── grub
│ │ ├── core.img
│ │ ├── grub.cfg
│ │ ├── grubpc32.cfg
│ │ ├── grubpc.cfg
│ │ └── lnxboot.img
│ ├── hdt-052.img
│ ├── memdisk
│ ├── memtest86+.bin
│ ├── setup7x86.bat
│ ├── wimboot
│ ├── winpe7x86.wim
│ └── winpeshl.ini
├── bootmgr
├── changes.txt
├── EFI
│ └── boot
│ ├── bootx64.efi
│ └── grubx64.efi
├── HBCD
│ ├── 7
│ │ ├── 7
│ │ ├── 7.BIN
│ │ ├── 7Customize.cmd
│ │ ├── 7D
│ │ ├── 7.wim
│ │ └── pins.cfg
│ ├── Boot [17 entries exceeds filelimit, not opening dir]
│ ├── Dos [42 entries exceeds filelimit, not opening dir]
│ ├── grldr
│ ├── HBCDMenu.exe
│ ├── isolinux.bin
│ ├── isolinux.cfg
│ ├── menu-custom.lst
│ ├── menu.lst
│ ├── Programs [266 entries exceeds filelimit, not opening dir]
│ ├── syslinux.cfg
│ └── XP
│ ├── X
│ ├── XP.BIN
│ ├── XpCustomize.cmd
│ ├── XpDrvLAN.7z
│ ├── XpDrvWLAN.7z
│ └── XP.wim
├── HBCDMenu.cmd
└── HBCD.txt
pentru un stick doar UEFI hbcd va avea doar 2 foldere:boot si EFI
#tree hbcd
hbcd
├── boot
│ └── grub
│ └── grub.cfg
└── EFI
└── boot
├── bootx64.efi
└── grubx64.efi
se descarca si dezarhiveaza ntfsbootwims.zip cu overwrite (-o), bcd-ul e modificat astfel incat sa incarce noile wim-uri
# if [ ! -f /opt/hbcd152/ntfsbootwims.zip ]; then wget -O ntfsbootwims.zip https://pagini.elt.ro/utile/get_file.php?name=ntfsbootwims.zip; fi
# unzip -o ntfsbootwims.zip -d ntfs
pentru kitul de windows 10 22H2 se creaza folderul winx/22h2,se monteaza stick-ul cu kitul si se copiaza
# if [ ! -d /opt/hbcd152/ntfs/winx/22h2 ]; then mkdir -p /opt/hbcd152/ntfs/winx/22h2 ; fi
# if [ ! -d /opt/hbcd152/usb ]; then mkdir /opt/hbcd152/usb; fi
stick-ul de windows are label ESD-USB, se cauta dev-ul dupa acest label
#lsblk |grep ESD
# lsblk |grep ESD
└─sdd1 8:49 1 28,9G 0 part /media/dan/ESD-USB
in cazul meu dev-ul e sdd1, se demonteaza usb in caz ca a ramas montat din pasii anteriori
#umount usb
#mount /dev/sdd1 /opt/hbcd152/usb
#cp -Rvu /opt/hbcd152/usb /opt/hbcd152/ntfs/winx/22h2
dupa finalizarea copierii se da umount si eject la stick si se reia ciclul de mkdir,mount,cp pentru fiecare kit
#umount usb
#eject -s /dev/sdd1
sau in cazul iso-urilor, se monteaza si se copiaza
#umount cdrom
#wget https://rescuedisk.s.kaspersky-labs.com/updatable/2018/krd.iso
# if [ ! -d /opt/hbcd152/ntfs/krd18 ]; then mkdir -p /opt/hbcd152/ntfs/krd18 ; fi
#mount -r krd.iso /opt/hbcd152/cdrom
#cp -Rvu /opt/hbcd152/cdrom/* /opt/hbcd152/ntfs/krd18
#umount cdrom
dupa finalizarea copierii folderul ntfs va avea o structura de genul
# tree ntfs/ -L 3 --filelimit 19
ntfs/
├── boot
│ ├── BCD
│ ├── bcdefi
│ ├── bcdefi.txt
│ ├── bcdexe
│ ├── bcdexe.txt
│ ├── bcd.txt
│ ├── boot.sdi
│ ├── grub
│ │ ├── 211grubx64.efi
│ │ ├── grub.cfg
│ │ ├── grubefi.cfg
│ │ └── grubefisec.cfg
│ ├── repair.bat
│ ├── setup21h2.bat
│ ├── setup22h2.bat
│ ├── setupx64.bat
│ ├── setupx86.bat
│ ├── wimboot
│ ├── winpe10x64.wim
│ ├── winpe10x86.wim
│ └── winpeshl.ini
├── BOOTMGR
├── bootmgr.efi
├── bootmgr.exe
├── CustomDrivers
│ └── Readme.txt
├── efi
│ ├── boot
│ │ ├── bootx64.efi
│ │ ├── bootx64ms.efi
│ │ ├── en-US
│ │ └── grubx64.efi
│ ├── memtest
│ │ ├── Benchmark
│ │ ├── blacklist.cfg
│ │ ├── BOOTAA64.efi
│ │ ├── BOOTIA32.efi
│ │ ├── BOOTX64.efi
│ │ ├── mt86.png
│ │ └── unifont.bin
│ └── microsoft
│ └── boot
├── HBCD_PE.ini
├── krd18
│ ├── autorun.ico
│ ├── autorun.inf
│ ├── boot
│ │ └── grub
│ ├── boot.catalog
│ ├── data
│ │ ├── 000-core.srm
│ │ ├── 000-core.srm.sha512
│ │ ├── 001-xorg.srm
│ │ ├── 001-xorg.srm.sha512
│ │ ├── 002-xfce.srm
│ │ ├── 002-xfce.srm.sha512
│ │ ├── 003-kl.srm
│ │ ├── 003-kl.srm.sha512
│ │ ├── 004-krt.srm
│ │ ├── 004-krt.srm.sha512
│ │ ├── 005-bases.srm
│ │ ├── 005-bases.srm.sha512
│ │ ├── 008-firefox.srm
│ │ ├── 008-firefox.srm.sha512
│ │ ├── kernel.dat
│ │ └── kernel.dat.sha512
│ ├── EFI
│ │ └── boot
│ ├── efi.img
│ ├── krd_bases_timestamp.txt
│ ├── krd_version.txt
│ ├── mach_kernel
│ └── System
│ └── Library
├── mint
│ └── 211
│ ├── casper
│ └── preseed
├── Programs [65 entries exceeds filelimit, not opening dir]
├── sources
│ └── boot.wim
├── ubuntu
│ └── 2204
│ ├── casper
│ └── preseed
├── Version.txt
└── winx
└── 22h2
├── autorun.inf
├── boot
├── bootmgr
├── bootmgr.efi
├── bootmgr.exe
├── efi
├── setup.exe
├── sources
└── support
Copiere finala:
se recopiaza continutul folderului hbcd, e actualizat/modificat fata de momentul instalarii syslinux, in partita HBCD152 pe stick-ul usb
#lsblk |grep HBCD152
lsblk |grep HBCD152
├─sdc1 8:33 1 7,8G 0 part /media/dan/HBCD152
#umount usb
#mount /dev/sdc1 /opt/hbcd152/usb
#cp -Rvu /opt/hbcd152/hbcd/* /opt/hbcd152/usb
se demonteaza usb, se monteaza partitia2 si se copiaza continutul folderului ntfs
#umount usb
#mount /dev/sdc2 /opt/hbcd152/usb
#cp -Rvu /opt/hbcd152/ntfs/* /opt/hbcd152/usb
un ultim pas daca se foloseste KRD18 in partitie separata e copierea lui
#umount usb
#mount /dev/sdc3 /opt/hbcd152/usb
#cp -Rvu /opt/hbcd152/ntfs/krd18/* /opt/hbcd152/usb
se verifica stick-ul pentru toate variantele si eventual se fac corectii
Pentru windows: sau treci la linux
sari peste si treci la
copiere finala
daca e activ Real-time protection, se va dezactiva pana la finalizarea copierilor
se va mari astfel viteza de copiere si dezarhivare
se lanseaza din Run windowsdefender cu Win+r->windowsdefender://threat
sau din Settings->Update&Security->Windows Security->Virus & threat protection
Manage settings si apoi Real-time off, kitul HBCD_PE_x64(ProductKet.exe)sau cel de mini7(win7PExtras,7z) dau alerte de troian
pentru un stick doar UEFI se omite aseasta descarare si se
trece la ntfsbootwims.zip
daca nu e folosita varianta proteus se poate descarca si
MiniWindows7 si dezarhiva in c:\usb\hbcd
folderul hbcd va avea stuctura: (a doua poza e pentru stick doar UEFI)
se descarca si dezarhiveaza
ntfsbootwims.zip in c:\usb\ntfs cu Replace, bcd-ul e modificat astfel incat sa incarce noile wim-uri
se trece la copierea kiturilor din foldere, stick-uri sau iso-uri in c:\usb\ntfs
structura folderelor trebuie sa se portiveasca cu cfg-urile de grub
daca e folosita alta structura trebuie modificate cfg-urile unde e folosita, sau invers
se adauga/modifica entry-uri in functie de ce structura se folosete
cat si setup.bat-urile aferente kiturilor de windows
de ex. pentru Windows 10 22h2 de pe un stick facut cu Media Creation Tool
se face folderul winx cu subfolderul 22h2 in ntfs si se copiaza continutul stick-ului in 22h2
sau pentru iso-ul de ubuntu in ntfs>ubuntu>2204: se monteaza iso si se copiaza doar casper si preseed
odata finalizata copierea kiturilor, se verifica dimensiunea folderului ntfs, sa incapa in partita NTFS pe stick
Copiere finala:
se introduce stick-ul HBCD152 si se recopiaza continutul folderului hbcd in partita HBCD152 cu Let me decide for each file
se selecteaza sa ramana fisiere din stick iar in final HBCD152 va avea structura
se selecteaza continutul folderului ntfs si se copiaza in partitia 2 NTFS(E:) iar in final va fi
se verifica stick-ul pentru toate variantele si eventual se fac corectii
In cazul in care partitia NTFS de pe stick
nu e accesibila atunci e folosit un windows pana la versiunea
1703 (build 15063)
Pentru pcbios continutul folderului ntfs poate fi transferat cu PartedMagic2012, stick-ul e bootabil
se intra in Linux din meniuri si in PartedMagic apoi in File Manager
se selecteaza continutul folderului ntfs din sda2 click-dreapta->copy si in partitia 2 din usb click-dreapta->paste
Pentru UEFI nu se poate incarca PartedMagic2012, trebuie facut un artificiu:
Partitia HBCD152 trebuie sa aiba liber 1,3GB pentru copiere, se redenumeste EFI in 1EFI
si se copiaza folderele efi si sources din HBCD_PE_x64 iar daca lipseste de copiaza si boot.sdi in si din folderul boot (situatia stick doar UEFI)
Se booteaza din stick->partitia 1, cu HBCD_PE_x64 se transfera continul folderului c:\usb\ntfs in partitia NTFS din stick
Dupa copiere, restart, sters folderele sources si efi din HBCD152 apoi redenumit 1EFI in EFI
Last update: 17/04/2024
Intra
JavaScript not enebled !!! No active buttons