]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - INSTALL/ventoy_pack.sh
add debug log in Ventoy2Disk.exe
[Ventoy.git] / INSTALL / ventoy_pack.sh
1 #!/bin/sh
2
3 dos2unix -q ./tool/ventoy_lib.sh
4 dos2unix -q ./tool/VentoyWorker.sh
5
6 . ./tool/ventoy_lib.sh
7
8 GRUB_DIR=../GRUB2/INSTALL
9 LANG_DIR=../LANGUAGES
10
11 if ! [ -d $GRUB_DIR ]; then
12 echo "$GRUB_DIR not exist"
13 exit 1
14 fi
15
16
17 cd ../IMG
18 sh mkcpio.sh
19 cd -
20
21
22 LOOP=$(losetup -f)
23
24 rm -f img.bin
25 dd if=/dev/zero of=img.bin bs=1M count=256 status=none
26
27 losetup -P $LOOP img.bin
28
29 while ! grep -q 524288 /sys/block/${LOOP#/dev/}/size 2>/dev/null; do
30 echo "wait $LOOP ..."
31 sleep 1
32 done
33
34 format_ventoy_disk_mbr 0 $LOOP fdisk
35
36 $GRUB_DIR/sbin/grub-bios-setup --skip-fs-probe --directory="./grub/i386-pc" $LOOP
37
38 curver=$(get_ventoy_version_from_cfg ./grub/grub.cfg)
39
40 tmpmnt=./ventoy-${curver}-mnt
41 tmpdir=./ventoy-${curver}
42
43 rm -rf $tmpmnt
44 mkdir -p $tmpmnt
45
46 mount ${LOOP}p2 $tmpmnt
47
48 mkdir -p $tmpmnt/grub
49
50 # First copy grub.cfg file, to make it locate at front of the part2
51 cp -a ./grub/grub.cfg $tmpmnt/grub/
52
53 ls -1 ./grub/ | grep -v 'grub\.cfg' | while read line; do
54 cp -a ./grub/$line $tmpmnt/grub/
55 done
56
57 cp -a ./ventoy $tmpmnt/
58 cp -a ./EFI $tmpmnt/
59 cp -a ./tool/ENROLL_THIS_KEY_IN_MOKMANAGER.cer $tmpmnt/
60
61
62 mkdir -p $tmpmnt/tool
63 cp -a ./tool/mount* $tmpmnt/tool/
64
65 rm -f $tmpmnt/grub/i386-pc/*
66
67
68 umount $tmpmnt && rm -rf $tmpmnt
69
70
71 rm -rf $tmpdir
72 mkdir -p $tmpdir/boot
73 mkdir -p $tmpdir/ventoy
74 echo $curver > $tmpdir/ventoy/version
75 dd if=$LOOP of=$tmpdir/boot/boot.img bs=1 count=512 status=none
76 dd if=$LOOP of=$tmpdir/boot/core.img bs=512 count=2047 skip=1 status=none
77 xz --check=crc32 $tmpdir/boot/core.img
78
79 cp -a ./tool $tmpdir/
80 cp -a Ventoy2Disk.sh $tmpdir/
81 cp -a CreatePersistentImg.sh $tmpdir/
82 dos2unix -q $tmpdir/Ventoy2Disk.sh
83 dos2unix -q $tmpdir/CreatePersistentImg.sh
84
85 #32MB disk img
86 dd status=none if=$LOOP of=$tmpdir/ventoy/ventoy.disk.img bs=512 count=$VENTOY_SECTOR_NUM skip=$part2_start_sector
87 xz --check=crc32 $tmpdir/ventoy/ventoy.disk.img
88
89 losetup -d $LOOP && rm -f img.bin
90
91 rm -f ventoy-${curver}-linux.tar.gz
92
93
94 CurDir=$PWD
95 cd $tmpdir/tool
96
97 for file in $(ls); do
98 if [ "$file" != "xzcat" ] && [ "$file" != "ventoy_lib.sh" ]; then
99 xz --check=crc32 $file
100 fi
101 done
102
103 cd $CurDir
104 tar -czvf ventoy-${curver}-linux.tar.gz $tmpdir
105
106 rm -f ventoy-${curver}-windows.zip
107 cp -a Ventoy2Disk*.exe $tmpdir/
108 cp -a $LANG_DIR/languages.ini $tmpdir/ventoy/
109 rm -rf $tmpdir/tool
110 rm -f $tmpdir/*.sh
111
112
113 zip -r ventoy-${curver}-windows.zip $tmpdir/
114
115 rm -rf $tmpdir
116
117 if [ -e ventoy-${curver}-windows.zip ] && [ -e ventoy-${curver}-linux.tar.gz ]; then
118 echo -e "\n ============= SUCCESS =================\n"
119 else
120 echo -e "\n ============= FAILED =================\n"
121 exit 1
122 fi
123
124 rm -f log.txt
125