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