]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - INSTALL/ventoy_pack.sh
1.0.16 release
[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/*.img
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 rm -f $tmpdir/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
81 cp -a Ventoy2Disk.sh $tmpdir/
82 cp -a README $tmpdir/
83 cp -a plugin $tmpdir/
84 cp -a CreatePersistentImg.sh $tmpdir/
85 dos2unix -q $tmpdir/Ventoy2Disk.sh
86 dos2unix -q $tmpdir/CreatePersistentImg.sh
87
88 #32MB disk img
89 dd status=none if=$LOOP of=$tmpdir/ventoy/ventoy.disk.img bs=512 count=$VENTOY_SECTOR_NUM skip=$part2_start_sector
90 xz --check=crc32 $tmpdir/ventoy/ventoy.disk.img
91
92 losetup -d $LOOP && rm -f img.bin
93
94 rm -f ventoy-${curver}-linux.tar.gz
95
96
97 CurDir=$PWD
98 cd $tmpdir/tool
99
100 for file in $(ls); do
101 if [ "$file" != "xzcat" ] && [ "$file" != "ventoy_lib.sh" ]; then
102 xz --check=crc32 $file
103 fi
104 done
105
106 cd $CurDir
107 tar -czvf ventoy-${curver}-linux.tar.gz $tmpdir
108
109 rm -f ventoy-${curver}-windows.zip
110 cp -a Ventoy2Disk*.exe $tmpdir/
111 cp -a $LANG_DIR/languages.ini $tmpdir/ventoy/
112 rm -rf $tmpdir/tool
113 rm -f $tmpdir/*.sh
114 rm -f $tmpdir/README
115
116
117 zip -r ventoy-${curver}-windows.zip $tmpdir/
118
119 rm -rf $tmpdir
120
121 if [ -e ventoy-${curver}-windows.zip ] && [ -e ventoy-${curver}-linux.tar.gz ]; then
122 echo -e "\n ============= SUCCESS =================\n"
123 else
124 echo -e "\n ============= FAILED =================\n"
125 exit 1
126 fi
127
128 rm -f log.txt
129