uefi and bios style boot images with mkisofs
This commit is contained in:
parent
0078535118
commit
1868029f7b
1 changed files with 47 additions and 8 deletions
55
src/iso.sh
55
src/iso.sh
|
@ -4,29 +4,68 @@ printf '%b\n' "\n\033[1m"WINDOWS_INIT:"\033[0m"" Executing extract_iso.sh"
|
|||
src/extract_iso.sh
|
||||
EXTRACT="win/"
|
||||
|
||||
printf '%b\n' "\n\033[1m"WINDOWS_INIT:"\033[0m"" Executing bootsect.sh"
|
||||
src/bootsect.sh
|
||||
#printf '%b\n' "\n\033[1m"WINDOWS_INIT:"\033[0m"" Executing bootsect.sh"
|
||||
#./src/bootsect.sh
|
||||
#BOOT="bootsect.bin"
|
||||
|
||||
# add answerfile
|
||||
cp data/autounattend.xml ${EXTRACT}
|
||||
BOOT="bootsect.bin"
|
||||
|
||||
# data for mkisofs
|
||||
BOOT="boot/etfsboot.com"
|
||||
EFI="efi/boot/bootx64.efi"
|
||||
LOAD_SEG="$(dumpet -i Win*.iso \
|
||||
| grep "Media load segment: " \
|
||||
| cut -d ':' -f2 \
|
||||
| cut -d ' ' -f2)"
|
||||
LOAD_SIZE="$(dumpet -i Win*.iso \
|
||||
| grep "Load Sectors: " \
|
||||
| grep -o "[^:]*$" \
|
||||
| cut -d ' ' -f2 \
|
||||
| head -1)"
|
||||
LDA="$(dumpet -i Win*.iso \
|
||||
| grep "LDA" \
|
||||
| tail -n 1 \
|
||||
| awk '{printf $3}')"
|
||||
CDROM_SECTOR_SIZE=2048
|
||||
FLOPPY_SECTOR_SIZE=512
|
||||
|
||||
# number of floppy disk sectors
|
||||
dd if=Win*.iso bs=${CDROM_SECTOR_SIZE} skip=${LDA} count=1 > win.dmp
|
||||
FLOPPY_SECTORS="$(file win.dmp \
|
||||
| sed -e "s/.*sectors\ //" \
|
||||
| awk '{printf $1}')"
|
||||
rm win.dmp
|
||||
|
||||
CDROM_SECTORS=`expr $FLOPPY_SECTOR_SIZE \
|
||||
\* $FLOPPY_SECTORS \
|
||||
/ $CDROM_SECTOR_SIZE`
|
||||
dd if=Win*.iso bs=${CDROM_SECTOR_SIZE} skip=${LDA} count=${CDROM_SECTORS} of=win_efi_boot.img
|
||||
|
||||
# install mkisofs
|
||||
# recreate iso
|
||||
cd ${EXTRACT}
|
||||
mkisofs \
|
||||
-allow-limited-size \
|
||||
-b ${BOOT} \
|
||||
-no-emul-boot \
|
||||
-boot-load-seg 1984 \
|
||||
-boot-load-size 4 \
|
||||
-b ${BOOT} \
|
||||
-boot-load-seg ${LOAD_SEG} \
|
||||
-boot-load-size ${LOAD_SIZE} \
|
||||
-eltorito-alt-boot \
|
||||
-b ${EFI} \
|
||||
-eltorito-platform efi \
|
||||
-iso-level 2 \
|
||||
-J -l -D -N -joliet-long -relaxed-filenames \
|
||||
-boot-info-table
|
||||
-udf
|
||||
-J -l -joliet-long \
|
||||
-D \
|
||||
-N \
|
||||
-relaxed-filenames \
|
||||
-V "WINSP" \
|
||||
-o winsp.iso \
|
||||
.
|
||||
|
||||
cp winsp.iso ../
|
||||
mv winsp.iso ../
|
||||
|
||||
# clean up bootsect and iso extract
|
||||
cd ..
|
||||
|
|
Loading…
Reference in a new issue