/usr/sbin/ocs-srv-live is in clonezilla 3.27.16-2.
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 | #!/bin/bash
# Author: Steven Shiau <steven _at_ nchc org tw>
# License: GPL
# Description: Program to start Clonezilla SE on DRBL live.
DRBL_SCRIPT_PATH="${DRBL_SCRIPT_PATH:-/usr/share/drbl}"
. $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions
. /etc/drbl/drbl-ocs.conf
. $DRBL_SCRIPT_PATH/sbin/ocs-functions
# Load the config in ocs-live.conf. This is specially for DRBL/Clonezilla live. It will overwrite some settings of /etc/drbl/drbl-ocs.conf, such as $DIA...
[ -e "/etc/ocs/ocs-live.conf" ] && . /etc/ocs/ocs-live.conf
# Settings
# try IP from 192.168."100".254
private_IP_alias_eth_def="100"
# functions
USAGE() {
echo "To start, restart or stop Clonezilla server edition service in DRBL Live environment."
echo "Usage:"
echo "$0 [OPTION] {start|stop|restart} [MODE]"
echo "OPTION:"
echo "-b, -batch, --batch Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too."
echo "-c, -client-no NO Assign the client number as NO for each network card connected to clients. //NOTE// This option will only work when drbl environment is not configured yet, i.e. before 'drbl-live' is run after booting."
echo "start Start Clonezilla server edition service now"
echo "stop Stop Clonezilla server edition service service now"
echo "restart Restart Clonezilla server edition service service now"
echo "MODE could be one of the following:"
echo "save-disk: Clonezilla save disk mode"
echo "restore-disk: Clonezilla restore disk Mode"
echo "save-parts: Clonezilla save partitions mode"
echo "restore-parts: Clonezilla restore partitions mode"
echo "select-in-client: Select mode in client"
echo "Example: To start Clonezilla server edition service service in this DRBL Live server"
echo "$0 start"
}
#
start_ocs_srv() {
# start drbl live first, which will setup drbl environment
echo "Checking if DRBL related sevices are started or not..."
# dhcpd is for isc-dhcp-server (from Squeeze), dhcpd3 is for dhcp3-server (< squeeze).
dhcpd_pid="$(LC_ALL=C pidof dhcpd || LC_ALL=C pidof dhcpd3 || LC_ALL=C pidof dnsmasq)"
tftpd_pid="$(LC_ALL=C pidof in.tftpd || LC_ALL=C pidof dnsmasq)"
unfsd_pid="$(LC_ALL=C pidof unfsd)"
nfsd_pid="$(LC_ALL=C pidof nfsd)"
if [ -z "$dhcpd_pid" -o -z "$tftpd_pid" ] || [ -z "$unfsd_pid" -a -z "$nfsd_pid" ]; then
# Not configured yet or DRBL service is not started, either
if [ "$ocs_batch_mode" != "on" ]; then
echo "$msg_delimiter_star_line"
echo "$msg_drbl_env_is_not_ready_now_config"
echo $msg_this_might_take_several_minutes
echo -n $msg_press_enter_to_continue
read
echo "$msg_delimiter_star_line"
fi
# ocs_client_no_per_NIC is read from /etc/ocs/ocs-live.conf, which might be from boot parameter, or is assigned by this program with option "-c"
if [ -n "$ocs_client_no_per_NIC" ]; then
if [ -n "$(grep -Ew "^client_no_per_NIC=.*" /etc/ocs/ocs-live.conf)" ]; then
LC_ALL=C perl -pi -e "s/^client_no_per_NIC=.*/client_no_per_NIC=$ocs_client_no_per_NIC/g" /etc/ocs/ocs-live.conf
else
echo "client_no_per_NIC=$ocs_client_no_per_NIC" >> /etc/ocs/ocs-live.conf
fi
fi
# Now load $client_no_per_NIC for later use
. /etc/ocs/ocs-live.conf
# Check if $ocsroot is a mountpoint or not, if not, we have to mount it.
prepare_ocsroot_opt=""
if ! mountpoint $ocsroot &>/dev/null; then
echo "Directory $ocsroot is not a mount point. Will try to mount $ocsroot..."
prepare_ocsroot_opt="--prepare-ocsroot"
fi
drbl-live $prepare_ocsroot_opt --skip-pause-in-the-end --no-prompt-drbl-live start
else
# DRBL service has been started. Therefore for Clonezilla SE we need to mount $ocsroot
# Check if $ocsroot is a mountpoint or not, if not, we have to mount it.
if ! mountpoint $ocsroot &>/dev/null; then
echo "Directory $ocsroot is not a mount point. Will try to mount $ocsroot..."
prep-ocsroot
fi
fi
# disable the DRBL in pxelinux menu
hide_reveal_pxe_img drbl hide $pxecfg_pd/pxelinux.cfg/default
# set local as default
set-default-pxe-img -i local -c $pxecfg_pd/pxelinux.cfg/default
echo "$msg_delimiter_star_line"
echo "$msg_drbl_env_is_ready"
echo "$msg_delimiter_star_line"
sleep 1
dcs clonezilla-start $mode
echo "$msg_delimiter_star_line"
[ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
if [ "$ocs_prompt_mode" = "tui" ]; then
$DIA --title "$msg_nchc_free_software_labs" --clear \
--msgbox "$msg_do_not_close_window_until_clone_finish" 0 0
else
echo -e "$msg_do_not_close_window_until_clone_finish"
fi
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
/bin/bash
} # end of start_ocs_srv
#
stop_ocs_srv() {
drbl-ocs stop
echo "$msg_delimiter_star_line"
echo -n $msg_press_enter_to_continue
read < /dev/stdin
} # end of stop_ocs_srv
#################
##### MAIN ######
#################
#
while [ $# -gt 0 ]; do
case "$1" in
-b|-batch|--batch)
ocs_batch_mode="on"
shift;;
-c|-client-no)
shift
if [ -z "$(echo $1 |grep ^-.)" ]; then
# skip the -xx option, in case
ocs_client_no_per_NIC="$1"
shift
fi
;;
-*) echo "${0}: ${1}: invalid option" >&2
USAGE >& 2
exit 2 ;;
*) break ;;
esac
done
check_if_root
#
ask_and_load_lang_set
switch="$1"
mode="$2"
#
if [ -z "$switch" ]; then
USAGE
exit 1
fi
#
if ! is_boot_from_live; then
[ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
echo "This command $0 is used in DRBL Live environment only!"
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
echo "$msg_program_stop"
exit 1
fi
case "$switch" in
"start"|"restart") start_ocs_srv ;;
"stop") stop_ocs_srv ;;
esac
|