]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - LiveCDGUI/livecd.sh
Update to latest Shim (Fix verifying shim SBAT data failed) #2947
[Ventoy.git] / LiveCDGUI / livecd.sh
1 #!/bin/bash
2
3 if [ "$1" = "CI" ]; then
4 OPT='-dR'
5 else
6 OPT='-a'
7 fi
8
9 VENTOY_PATH=$PWD/../
10
11 if ! [ -f $VENTOY_PATH/INSTALL/grub/grub.cfg ]; then
12 echo "no grub.cfg detected"
13 exit 1
14 fi
15
16 version=$(grep 'set.*VENTOY_VERSION=' $VENTOY_PATH/INSTALL/grub/grub.cfg | awk -F'"' '{print $2}')
17
18 if ! [ -e $VENTOY_PATH/INSTALL/ventoy-${version}-linux.tar.gz ]; then
19 echo "no ventoy-${version}-linux.tar.gz detected"
20 exit 1
21 fi
22
23 if [ "$1" = "CI" ]; then
24 sh ./download_ext.sh
25 fi
26
27 if [ ! -f ./EXT/vmlinuz ]; then
28 echo "Please download EXT files firstly!"
29 exit 1
30 fi
31
32 sh ./initrd.sh
33
34
35 rm -rf ISO_TMP
36 cp -a ISO ISO_TMP
37
38 if ! [ -d ISO_TMP ]; then
39 echo "Copy ISO_TMP failed"
40 exit 1
41 fi
42
43 cp -a ./EXT/vmlinuz ISO_TMP/EFI/boot/
44 mv ./initrd.img ISO_TMP/EFI/boot/initrd
45
46 cp -a GRUB/cdrom.img ISO_TMP/EFI/boot/
47 cp -a GRUB/bootx64.efi ISO_TMP/EFI/boot/
48
49
50 rm -rf efimnt
51 rm -f efi.img
52 mkdir -p efimnt
53
54 dd if=/dev/zero of=efi.img bs=1M count=2
55 mkfs.vfat efi.img
56 mount efi.img efimnt
57 mkdir -p efimnt/EFI/boot
58 cp $OPT GRUB/bootx64.efi efimnt/EFI/boot/
59 umount efimnt
60
61 sync
62 cp -a efi.img ISO_TMP/EFI/boot/
63
64 rm -rf efimnt
65 rm -f efi.img
66
67
68 cd ISO_TMP
69
70 sed "s/xxx/$version/g" -i EFI/boot/grub.cfg
71
72 rm -f ../ventoy-${version}-livecd.iso
73
74 xorriso -as mkisofs -allow-lowercase --sort-weight 0 / --sort-weight 1 /EFI -v -R -J -V 'VentoyLiveCD' -P 'VENTOY COMPATIBLE' -p 'https://www.ventoy.net' -sysid 'Ventoy' -A 'VentoyLiveCD' -b EFI/boot/cdrom.img --grub2-boot-info --grub2-mbr ../GRUB/boot_hybrid.img -c EFI/boot/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e EFI/boot/efi.img -no-emul-boot -append_partition 2 0xEF EFI/boot/efi.img -o ../ventoy-${version}-livecd.iso .
75
76 cd ../
77 rm -rf ISO_TMP
78
79 echo ""
80 if [ -f ventoy-${version}-livecd.iso ]; then
81 echo "========== SUCCESS ============="
82 else
83 echo "========== FAILED ============="
84 fi
85 echo ""
86
87