This file is indexed.

/usr/sbin/drbl-syslinux-netinstall is in drbl 2.20.11-4.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
#!/bin/bash
# Author: Steven Shiau <steven _at_ nchc org tw>
# License: GPL
# Description: Download the netinstall kernel & initrd and package them as a zip file for USB flash drive to boot and install GNU/Linux.
# This program only works for syslinux >= 6.0 because the EFI boot is supported from syslinux >= 6.0.

DRBL_SCRIPT_PATH="${DRBL_SCRIPT_PATH:-/usr/share/drbl}"

. $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions
[ -e /etc/drbl/drbl-ocs.conf ] && . /etc/drbl/drbl-ocs.conf
[ -e $DRBL_SCRIPT_PATH/sbin/ocs-functions ] && . $DRBL_SCRIPT_PATH/sbin/ocs-functions

# Force to use boot loader "syslinux" although it's defined in /etc/drbl/drbl.conf. We swtiched to use syslinux 6.x EFI boot
live_efi_boot_loader="syslinux"

#
supported_dists="$(LC_ALL=C set | grep -i "_netinstall_ver" | awk -F"_" '{print $1}' | sort | uniq)"
supported_dists="$(echo $supported_dists)" # To make it one line
supported_dists_with_comma="$(echo $supported_dists | sed -e "s/ /, /g")"

USAGE() {
  echo "Download GNU/Linux netinstall kernel and initrd and package them as a zip file for USB flash drive to boot and install GNU/Linux."
  echo "Usage: $0 [OPTION] [DIR]"
  echo "OPTION:"
  echo "-a, --file-name-prefix NAME    Assign the output file name as NAME.zip. $0 will auto append '.zip' in the end of filename."
  echo "-d, --dist DIST:       Create GNU/Linux DIST netinstall zip. DIST is one of these: $supported_dists_with_comma. If this option is not assigned, all the supported GNU/Linux netinstall files will be included."
  echo "-i, --assign-version-no NO  Assign the version number as NO instead of date."
  echo "-s, --syslinux-ver NO  Assign the syslinux version number to be used as NO ."
}

#############
###  MAIN ###
#############
#
# Parse command-line options
while [ $# -gt 0 ]; do
  case "$1" in
    -a|--file-name-prefix)
            shift
            if [ -z "$(echo $1 |grep ^-.)" ]; then
              # skip the -xx option, in case 
              target_zip_prefix="$1"
              shift
            fi
	    [ -z "$target_zip_prefix" ] && USAGE && exit 1
            ;;
    -d|--dist)
        shift; mode="install"
        if [ -z "$(echo $1 |grep ^-.)" ]; then
          # skip the -xx option, in case 
          GL_INST="$1"
          [ -z "$GL_INST" ] && USAGE && exit 1
	  shift
        fi
	;;
    -i|--assign-version-no)
            shift
            if [ -z "$(echo $1 |grep ^-.)" ]; then
              # skip the -xx option, in case 
              version_no="$1"
              shift
            fi
	    [ -z "$version_no" ] && USAGE && exit 1
            ;;
    -s|--syslinux-ver)
            shift
            if [ -z "$(echo $1 |grep ^-.)" ]; then
              # skip the -xx option, in case 
              syslinux_ver_no="$1"
              shift
            fi
	    [ -z "$syslinux_ver_no" ] && USAGE && exit 1
            ;;
    -*)     echo "${0}: ${1}: invalid option" >&2
            USAGE >& 2
            exit 2 ;;
    *)      break ;;
  esac
done
#
target_d="$1"
# if working dir is not assigned, create one
if [ -z "$target_d" ]; then
  target_d="$(mktemp -d /tmp/netinstall.XXXXXX)"
  echo "Working dir: $target_d"
fi
if [ -z "$GL_INST" ]; then
  GL_INST="all"
else
  # Check if it is in the supported distributions.
  for i in $GL_INST; do
    if [ -z "$(echo $supported_dists | grep -Ew $i)" ]; then
     echo "\"$GL_INST\" is not a supported distribution."
     echo "Supported ones are (case sensitive): $supported_dists."
     exit 1
    fi
  done
fi

[ -z "$version_no" ] && version_no="$(date +%Y%m%d)"
zip_label_tag="${version_no}"
if [ -n "$target_zip_prefix" ]; then
  output_filename="${target_zip_prefix}.zip"
else
  output_filename="linux-netinstall-${zip_label_tag}.zip"
fi
echo "The output file name is: $output_filename."

WD="$(pwd)"
mkdir -p $target_d/syslinux/ $target_d/live/ $target_d/EFI/boot/
cp -af $pxelinux_bg_img $target_d/syslinux/
cp -af $pxelinux_bg_img $target_d/EFI/boot/

echo "The following action will download a lot of network install packages, including these distributions: $GL_INST. This might take a long time..."
echo 'If you want to assign the url, check "netinstall image settings" in drbl.conf.'
drbl-netinstall -w --skip-rerun-gen -i "$GL_INST" -d $target_d/live/

echo "Generating default pxelinux config $target_d/syslinux/syslinux.cfg..."
echo "Adding menus..."
cat <<-PXE_END > $target_d/syslinux/syslinux.cfg
# Created by generate-pxe-menu! Do NOT edit unless you know what you are doing! 
# Keep those comment "MENU DEFAULT" and "MENU HIDE"! Do NOT remove them.
# Note!!! If "serial" directive exists, it must be the first directive
default vesamenu.c32
timeout 70
prompt 0
noescape 1
MENU MARGIN 5
MENU BACKGROUND drblwp.png
# Set the color for unselected menu item and timout message
MENU COLOR UNSEL 7;32;41 #c0000090 #00000000
MENU COLOR TIMEOUT_MSG 7;32;41 #c0000090 #00000000
MENU COLOR TIMEOUT 7;32;41 #c0000090 #00000000
MENU COLOR HELP 7;32;41 #c0000090 #00000000

# MENU MASTER PASSWD

say **********************************************
say Welcome to DRBL.
say NCHC Free Software Labs, Taiwan.
say http://drbl.org; http://drbl.nchc.org.tw
say **********************************************

# Allow client to edit the parameters
ALLOWOPTIONS 1

# simple menu title
MENU TITLE DRBL (http://drbl.org)

PXE_END

# Creating the boot menu, 2 types: for BIOS and EFI
# 1. The boot menu for BIOS machine
# //NOTE// the / in the end of /live/ for -p option is important. Do not remove it. 
# Because we use that in syslinux.cfg like:
# kernel $boot_file_dir$kernel
# append initrd=$boot_file_dir$img $ramdisk_size_opt $extra_append
output_netinstall_syslinux_pxelinux_menu -p /live/ $target_d/live/ $target_d/syslinux/syslinux.cfg

# Turn on all menus before copying to EFI dir
perl -pi -e "s/^(#|[[:space:]])*MENU HIDE.*/  # MENU HIDE/i" $target_d/syslinux/syslinux.cfg

# 2. The boot menu for EFI machine
cp -a $target_d/syslinux/syslinux.cfg $target_d/EFI/boot/
perl -pi -e "s/Boot menu for BIOS machine/Boot menu for EFI machinie/g" $target_d/EFI/boot/syslinux.cfg

echo "Preparing syslinux.exe, syslinux, makeboot.bat and makeboot.sh... "
put_syslinux_makeboot_for_usb_flash $target_d/ "$syslinux_ver_no"

cp -af $DRBL_SCRIPT_PATH/doc/GPL $target_d/

(cd $target_d; zip -r $WD/$output_filename *)
echo "The netinstall file $output_filename was created."

echo "*******************************************************************"
if [ -n "$target_d" -a -d "$target_d" ]; then
  echo "Do you want to remove the downloaded files in dir $target_d?"
  echo -n "[y/N] "
  read rm_files
  case "$rm_files" in
     y|Y|[yY][eE][sS])
       # Some checkings to avoid to remove the /
       if [ -n "$target_d" -a -d "$target_d/syslinux/" -a -f "$target_d/COPYING" ]; then
	  rm -rf $target_d
       fi
       ;;
  esac
fi