This file is indexed.

/usr/sbin/drbl4imp is in drbl 2.6.15-1.

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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
#!/bin/bash
# Steven Shiau <steven@nchc.org.tw>
# License: GPL
# Script to setup DRBL server for the impatient.

# Source function library.
[ -e /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions

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

. $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions

# Settings
accept_one_nic="no"
run_4impatient=""
limit_pxe_drbl_client="no"

#
# usage
USAGE() {
  echo "Usage:"
  echo "$0 [Option]"
  echo "Option:"
  echo "-a, --unstable [y/n]:   Use packages in unstable branch or not (Only works for RH-like distribution)."
  echo "-b, --batch:            Run $0 in batch mode (non-attended mode)."
  echo "-e, --accept-one-nic    Accept to run DRBL service in only one network card. ///NOTE/// This might mess up your network environment especially if there is an exi sting DHCP service in your network environment."
  echo "-c, --live-client-branch [0|1|2|3] Assign the Clonezilla live release branch to be used, 0 is stable branch (Debian-based), 1 is testing branch (Debian-based), 2 is alternative stable branch (Ubuntu-based), 3 is alternative testing branch (Ubuntu-based). This option should be used when -z|--clonezilla-mode = 3"
  echo "-p, --port-client-no  NO  The client number NO in each NIC port."
  echo "-k, --client-archi [0/1/2]: Set the client's CPU arch, 0 for i386, 1 for i586, 2 for same level with DRBL server (for x86-64, use 2). This option is for the DRBL client is NFS based, i.e. all files are NFS mounted from server. It's different from the option '-u', which is only for clonezilla mode."
  echo "-r, --drbl-mode [0|1|2] Assign DRBL mode (0: Full DRBL mode, 1: DRBL SSI mode, 2: Do NOT provide diskless Linux service to clients). Default value is 0.".
  echo "-t, --testing [y/n]:    Use packages in testing branch or not (Only works for RH-like distribution)."
  echo "-u, --live-client-cpu-mode [0|1|2]  Assign the CPU mode for client when doing Clonezilla job with Clonezilla live (0: i486, 1: i686, 2: amd64). This option should be used with -z|--clonezilla-mode = 3".
  echo "-x, --limit-pxe-drbl-client  Force the DHCP service managed by DRBL will only allow PXE or DRBL clients to lease IP address. By default all the clients can lease IP address. //NOTE// If you want to use Clonezilla live as the OS of clients when running Clonezilla job, do _NOT_ use this option. Otherwise your client won't be able to mount the root file system."
  echo "-z, --clonezilla-mode [0|1|2|3] Assign Clonezilla mode (0: Full DRBL mode, 1: Clonezilla box mode, 2: Do NOT provide clonezilla service to clients, 3: Use Clonezilla live as the OS of clients). Default value is 0."
  echo
  echo "Example:"
  echo "  To create a Clonezilla server, using i686 Clonezilla live as the OS of clients, each network card will provide Clonezilla service to 40 clients:"
  echo "  $0 -p 40 -r 1 -z 3 -u 1"
} # end of USAGE
#
do_detail_mode_prompt() {
  echo "$msg_delimiter_star_line"
  echo "$msg_run_step_by_step: "
  echo "(a):\"$DRBL_SCRIPT_PATH/sbin/drblsrv -i\" "
  echo "(b):\"$DRBL_SCRIPT_PATH/sbin/drblpush -i\" "
} # end of do_detail_mode_prompt
#
do_imp_mode_prompt() {
  if [ -z "$run_4impatient" ]; then
    echo "$msg_delimiter_star_line"
    echo "$msg_run_drbl4imp"
    echo -n "$msg_press_enter_to_continue"
    read 
  fi
  [ -n "$verbose" ] && echo "Running drblsrv -i $client_archi_ans_opt $testing_opt $unstable_opt"
  yes "" | drblsrv -i $client_archi_ans_opt $testing_opt $unstable_opt
  RC=$?
  if [ $RC -gt 0 ]; then
     [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
   echo "Someting went wrong with drblsrv! Program terminted!!!"
     [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
   exit 1
  fi
  [ -n "$verbose" ] && echo "Running drblpush -i --not-add-start-drbl-srvi $accept_one_nic_opt $port_client_no_opt $drbl_mode_opt $clonezilla_mode_opt $live_client_branch_opt $live_client_cpu_mode_opt"
  yes "" | drblpush -i --not-add-start-drbl-srvi $accept_one_nic_opt $port_client_no_opt $drbl_mode_opt $clonezilla_mode_opt $live_client_branch_opt $live_client_cpu_mode_opt
  if [ "$limit_pxe_drbl_client" = "yes" ]; then
    # modify dhcpd.conf, provide IP address to PXE/Etherboot/DRBL client only
    echo "Modifying dhcpd.conf, now only PXE/Etherboot/DRBL client can lease IP address from this server..."
    perl -pi -e 's/^([[:space:]]*)#[[:space:]]*(allow members of "DRBL-Client";)/$1$2/g' $DHCPDCONF_DIR/dhcpd.conf
  else
    echo "Modifying dhcpd.conf, now ANY client, not only PXE/Etherboot/DRBL client, can lease IP address from this server..."
    perl -pi -e 's/^([[:space:]]*)#*[[:space:]]*(allow members of "DRBL-Client";)/$1#$2/g' $DHCPDCONF_DIR/dhcpd.conf
  fi
  echo "Start all DRBL related services by running 'drbl-all-service start'..."
  drbl-all-service start
  [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
  echo "$msg_all_set_you_can_turn_on_clients"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
} # end of do_imp_mode_prompt

#
check_if_root

# main
while [ $# -gt 0 ]; do
  case "$1" in
   -a|--unstable)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         drbl_unstable_answer="$1"
         shift
       fi
       [ -z "$drbl_unstable_answer" ] && USAGE && exit 1
       ;;
   -l|--language)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         specified_lang="$1"
         shift
       fi
       [ -z "$specified_lang" ] && USAGE && exit 1
       ;;
   -b|--batch)
       shift; run_4impatient="yes" ;;
   -c|--live-client-branch)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         live_client_branch="$1"
         shift
       fi
       [ -z "$live_client_branch" ] && USAGE && exit 1
       ;;
   -e|--accept-one-nic)
       shift; accept_one_nic="yes" ;;
   -x|--limit-pxe-drbl-client)
       shift; limit_pxe_drbl_client="yes" ;;
   -k|--client-archi)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         client_archi_ans="$1"
         shift
       fi
       [ -z "$client_archi_ans" ] && USAGE && exit 1
       ;;
   -t|--testing)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         drbl_test_answer="$1"
         shift
       fi
       [ -z "$drbl_test_answer" ] && USAGE && exit 1
       ;;
   -r|--drbl-mode)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         drbl_mode="$1"
         shift
       fi
       [ -z "$drbl_mode" ] && USAGE && exit 1
       ;;
   -p|--port-client-no)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         assign_port_client_no="$1"
         shift
       fi
        [ -z "$assign_port_client_no" ] && USAGE && exit 1
       ;;
   -u|--live-client-cpu-mode)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         live_client_cpu_mode="$1"
         shift
       fi
       [ -z "$live_client_cpu_mode" ] && USAGE && exit 1
       ;;
   -z|--clonezilla-mode)
       shift
       if [ -z "$(echo $1 |grep ^-.)" ]; then
         # skip the -xx option, in case 
         clonezilla_mode="$1"
         shift
       fi
       [ -z "$clonezilla_mode" ] && USAGE && exit 1
       ;;
   -v|--verbose) shift; verbose="on" ;;
   *)
       USAGE
       exit 1
  esac
done

#
ask_and_load_lang_set $specified_lang

# Put the options if assigned.
[ -n "$assign_port_client_no" ] && port_client_no_opt="-p $assign_port_client_no"
[ -n "$drbl_test_answer" ] && testing_opt="-t $drbl_test_answer"
[ -n "$drbl_unstable_answer" ] && unstable_opt="-a $drbl_unstable_answer"
[ -n "$drbl_mode" ] && drbl_mode_opt="-r $drbl_mode"
[ -n "$clonezilla_mode" ] && clonezilla_mode_opt="-z $clonezilla_mode"
[ -n "$client_archi_ans" ] && client_archi_ans_opt="-k $client_archi_ans"
[ -n "$accept_one_nic" ] && accept_one_nic_opt="--accept-one-nic"
[ -n "$live_client_cpu_mode" ] && live_client_cpu_mode_opt="-u $live_client_cpu_mode"
[ -n "$live_client_branch" ] && live_client_branch_opt="-t $live_client_branch"

#
if [ -z "$run_4impatient" ]; then
  echo "$msg_delimiter_star_line"
  echo "$msg_are_you_sure_run_impatient"
  echo -n "[Y/n] "
  read run_4impatient
fi

case "$run_4impatient" in
  n|N|[nN][oO]) do_detail_mode_prompt ;;
             *) do_imp_mode_prompt ;;
esac