install.sh 8.72 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

VT_DIR=$PWD/../../..

rm -rf $VT_DIR/GRUB2/INSTALL
rm -rf $VT_DIR/GRUB2/PXE
mkdir -p $VT_DIR/GRUB2/INSTALL
mkdir -p $VT_DIR/GRUB2/PXE

make install

12
PATH=$VT_DIR/GRUB2/INSTALL/bin/:$VT_DIR/GRUB2/INSTALL/sbin/:$PATH
13
14

net_modules_legacy="net tftp http"
15
all_modules_legacy="file date drivemap blocklist newc vga_text ntldr search at_keyboard usb_keyboard  gcry_md5 hashsum gzio xzio lzopio lspci pci ext2 xfs ventoy chain read halt iso9660 linux16 test true sleep reboot echo videotest videoinfo videotest_checksum video_colors video_cirrus video_bochs vga vbe font video gettext extcmd terminal  linux minicmd help configfile tr trig boot biosdisk disk ls tar squash4 password_pbkdf2 all_video png jpeg part_gpt part_msdos fat exfat ntfs loopback gzio normal video_fb udf gfxmenu gfxterm gfxterm_background gfxterm_menu smbios"
16
17

net_modules_uefi="efinet net tftp http"
longpanda's avatar
longpanda committed
18
all_modules_uefi="file setkey blocklist ventoy test true regexp newc search at_keyboard usb_keyboard  gcry_md5 hashsum gzio xzio lzopio ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux relocator jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain  priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop efi_uga video_bochs video_cirrus video video_fb gfxterm_background gfxterm_menu mouse fwload smbios zfs"
19

longpanda's avatar
longpanda committed
20
all_modules_arm64_uefi="file setkey blocklist ventoy test true regexp newc search  gcry_md5 hashsum gzio xzio lzopio ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain  priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop video video_fb gfxterm_background gfxterm_menu zfs"
longpanda's avatar
longpanda committed
21

longpanda's avatar
longpanda committed
22
all_modules_mips64el_uefi="file setkey blocklist ventoy test true regexp newc search  gcry_md5 hashsum gzio xzio lzopio ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain  priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop video video_fb gfxterm_background gfxterm_menu zfs"
23

longpanda's avatar
longpanda committed
24

25
if [ "$1" = "uefi" ]; then
longpanda's avatar
longpanda committed
26
    all_modules="$net_modules_uefi $all_modules_uefi "
longpanda's avatar
longpanda committed
27
28
29

    grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/x86_64-efi" --prefix '(,2)/grub' --output "$VT_DIR/INSTALL/EFI/BOOT/grubx64_real.efi"  --format 'x86_64-efi' --compression 'auto'  $all_modules_uefi

longpanda's avatar
longpanda committed
30
    #grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/x86_64-efi" -c "$VT_DIR/LiveCD/GRUB/embed.cfg" --prefix '/EFI/boot' --output "$VT_DIR/LiveCD/GRUB/bootx64.efi"  --format 'x86_64-efi' --compression 'auto'  $all_modules_uefi 'fat' 'part_msdos'
longpanda's avatar
longpanda committed
31
32
33
34
35
36
37
38
elif [ "$1" = "i386efi" ]; then
    all_modules="$net_modules_uefi $all_modules_uefi "

    grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/i386-efi" --prefix '(,2)/grub' --output "$VT_DIR/INSTALL/EFI/BOOT/grubia32_real.efi"  --format 'i386-efi' --compression 'auto'  $all_modules_uefi
elif [ "$1" = "arm64" ]; then
    all_modules="$net_modules_uefi $all_modules_arm64_uefi "

    grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/arm64-efi" --prefix '(,2)/grub' --output "$VT_DIR/INSTALL/EFI/BOOT/BOOTAA64.EFI"  --format 'arm64-efi' --compression 'auto'  $all_modules_arm64_uefi
39
40
41
42
elif [ "$1" = "mips64el" ]; then
    all_modules="$net_modules_uefi $all_modules_mips64el_uefi "

    grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/mips64el-efi" --prefix '(,2)/grub' --output "$VT_DIR/INSTALL/EFI/BOOT/BOOTMIPS.EFI"  --format 'mips64el-efi' --compression 'auto'  $all_modules_mips64el_uefi
43
else
longpanda's avatar
longpanda committed
44
    all_modules="$net_modules_legacy $all_modules_legacy "
longpanda's avatar
update  
longpanda committed
45
    grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc" --prefix '(,2)/grub' --output "$VT_DIR/INSTALL/grub/i386-pc/core.img"  --format 'i386-pc' --compression 'auto'  $all_modules_legacy  'fat' 'part_msdos' 'biosdisk' 
longpanda's avatar
longpanda committed
46
47
48
49
    
    #grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc" -c "$VT_DIR/LiveCD/GRUB/embed.cfg" --prefix '/EFI/boot' --output "$VT_DIR/LiveCD/GRUB/cdrom.img"  --format 'i386-pc-eltorito' --compression 'auto'  $all_modules_legacy 'biosdisk' 'iso9660' 'fat' 'part_msdos'
    #rm -f $VT_DIR/LiveCD/GRUB/boot_hybrid.img
    #cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc/boot_hybrid.img  $VT_DIR/LiveCD/GRUB/boot_hybrid.img
50
51
52
53
54
55
56
57
fi

grub-mknetdir  --modules="$all_modules" --net-directory=$VT_DIR/GRUB2/PXE  --subdir=grub2 --locales=en@quot || exit 1

if [ "$1" = "uefi" ]; then
    rm -f $VT_DIR/GRUB2/NBP/core.efi
    cp -a $VT_DIR/GRUB2/PXE/grub2/x86_64-efi/core.efi  $VT_DIR/GRUB2/NBP/core.efi || exit 1
    
longpanda's avatar
longpanda committed
58
59
60
    rm -rf $VT_DIR/INSTALL/grub/x86_64-efi
    mkdir -p $VT_DIR/INSTALL/grub/x86_64-efi
        
longpanda's avatar
longpanda committed
61
62
63
64
    cp -a $VT_DIR/GRUB2/PXE/grub2/x86_64-efi/normal.mod    $VT_DIR/INSTALL/grub/x86_64-efi/normal.mod  || exit 1      

    #copy other modules
    ls -1 $VT_DIR/GRUB2/INSTALL/lib/grub/x86_64-efi/ | egrep '\.(lst|mod)$' | while read line; do
longpanda's avatar
longpanda committed
65
        if ! echo $all_modules | grep -q " ${line%.mod} "; then
longpanda's avatar
longpanda committed
66
67
68
69
            echo "Copy $line ..."
            cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/x86_64-efi/$line    $VT_DIR/INSTALL/grub/x86_64-efi/
        fi
    done
longpanda's avatar
longpanda committed
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
elif [ "$1" = "i386efi" ]; then
    rm -f $VT_DIR/GRUB2/NBP/core.efi
    cp -a $VT_DIR/GRUB2/PXE/grub2/i386-efi/core.efi  $VT_DIR/GRUB2/NBP/core.efi || exit 1
    
    rm -rf $VT_DIR/INSTALL/grub/i386-efi
    mkdir -p $VT_DIR/INSTALL/grub/i386-efi

    cp -a $VT_DIR/GRUB2/PXE/grub2/i386-efi/normal.mod    $VT_DIR/INSTALL/grub/i386-efi/normal.mod  || exit 1      

    #copy other modules
    ls -1 $VT_DIR/GRUB2/INSTALL/lib/grub/i386-efi/ | egrep '\.(lst|mod)$' | while read line; do
        if ! echo $all_modules | grep -q " ${line%.mod} "; then
            echo "Copy $line ..."
            cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/i386-efi/$line    $VT_DIR/INSTALL/grub/i386-efi/
        fi
    done
elif [ "$1" = "arm64" ]; then
    rm -f $VT_DIR/GRUB2/NBP/core.efi
    cp -a $VT_DIR/GRUB2/PXE/grub2/arm64-efi/core.efi  $VT_DIR/GRUB2/NBP/core.efi || exit 1
    
    rm -rf $VT_DIR/INSTALL/grub/arm64-efi
    mkdir -p $VT_DIR/INSTALL/grub/arm64-efi

    cp -a $VT_DIR/GRUB2/PXE/grub2/arm64-efi/normal.mod    $VT_DIR/INSTALL/grub/arm64-efi/normal.mod  || exit 1      

    #copy other modules
    ls -1 $VT_DIR/GRUB2/INSTALL/lib/grub/arm64-efi/ | egrep '\.(lst|mod)$' | while read line; do
        if ! echo $all_modules | grep -q " ${line%.mod} "; then
            echo "Copy $line ..."
            cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/arm64-efi/$line    $VT_DIR/INSTALL/grub/arm64-efi/
longpanda's avatar
longpanda committed
100
101
            xz $VT_DIR/INSTALL/grub/arm64-efi/$line
            mv $VT_DIR/INSTALL/grub/arm64-efi/${line}.xz $VT_DIR/INSTALL/grub/arm64-efi/${line}
longpanda's avatar
longpanda committed
102
103
        fi
    done
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
elif [ "$1" = "mips64el" ]; then
    rm -f $VT_DIR/GRUB2/NBP/core.efi
    cp -a $VT_DIR/GRUB2/PXE/grub2/mips64el-efi/core.efi  $VT_DIR/GRUB2/NBP/core.efi || exit 1
    
    rm -rf $VT_DIR/INSTALL/grub/mips64el-efi
    mkdir -p $VT_DIR/INSTALL/grub/mips64el-efi

    cp -a $VT_DIR/GRUB2/PXE/grub2/mips64el-efi/normal.mod    $VT_DIR/INSTALL/grub/mips64el-efi/normal.mod  || exit 1      

    #copy other modules
    ls -1 $VT_DIR/GRUB2/INSTALL/lib/grub/mips64el-efi/ | egrep '\.(lst|mod)$' | while read line; do
        if ! echo $all_modules | grep -q " ${line%.mod} "; then
            echo "Copy $line ..."
            cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/mips64el-efi/$line    $VT_DIR/INSTALL/grub/mips64el-efi/
            xz $VT_DIR/INSTALL/grub/mips64el-efi/$line
            mv $VT_DIR/INSTALL/grub/mips64el-efi/${line}.xz $VT_DIR/INSTALL/grub/mips64el-efi/${line}
        fi
    done
122
123
124
125
126
127
else
    rm -f $VT_DIR/GRUB2/NBP/core.0
    cp -a $VT_DIR/GRUB2/PXE/grub2/i386-pc/core.0    $VT_DIR/GRUB2/NBP/core.0  || exit 1
    
    rm -f $VT_DIR/INSTALL/grub/i386-pc/boot.img
    cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc/boot.img  $VT_DIR/INSTALL/grub/i386-pc/boot.img   || exit 1
longpanda's avatar
longpanda committed
128
129
130
    
    #copy other modules
    ls -1 $VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc/ | egrep '\.(lst|mod)$' | while read line; do
longpanda's avatar
longpanda committed
131
        if ! echo $all_modules | grep -q " ${line%.mod} "; then
longpanda's avatar
longpanda committed
132
133
134
135
136
            echo "Copy $line ..."
            rm -f $VT_DIR/INSTALL/grub/i386-pc/$line
            cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc/$line    $VT_DIR/INSTALL/grub/i386-pc/
        fi
    done
137
fi