2013-05-18 3 views
1

Я делаю пользовательский clonezilla .. один для источника для отправки локального диска на удаленный диск с ocs-onthefly ... что custom-ocs работает нормально.Clonezilla custom-ocs bash script failing on ocs-onthefly command

Однако пользовательские ocs для адресата по какой-то причине не работают .. Проблема заключается в последней строке «/ usr/sbin/ocs-onthefly -s $ src_ip -t $ dest_disk» .. по какой-либо причине clonezilla отказывается от этой линии и дает команду использования/помощи вместо запуска команды.

Любые идеи о том, почему команда ocs-onthefly не принимает параметры? Параметры верны. Если вы запустите «/ usr/sbin/ocs-onthefly -s 192.168.150.1 -t sda», он работает нормально.

заказные-ОКС для сценария назначения здесь: https://www.dropbox.com/s/9mfrt0n50sheayn/custom-ocs_destination-REVISED.txt

Попытка блока кода также:

#!/bin/bash 
# Author: Steven Shiau <steven _at_ nchc org tw> 
# License: GPL 
# Ref: http://sourceforge.net/forum/forum.php?thread_id=1759263&forum_id=394751 
# In this example, it will allow your user to use clonezilla live to choose 
# (1) backup the image of /dev/hda1 (or /dev/sda1) to /dev/hda5 (or /dev/sda5) 
# (2) restore image in /dev/hda5 (or /dev/sda5) to /dev/hda1 (or /dev/sda1) 

# When this script is ready, you can run 
# ocs-iso -g en_US.UTF-8 -k NONE -s -m ./custom-ocs 
# to create the iso file for CD/DVD. or 
# ocs-live-dev -g en_US.UTF-8 -k NONE -s -c -m ./custom-ocs 
# to create the zip file for USB flash drive. 

# Begin of the scripts: 
# Load DRBL setting and functions 
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 setting for clonezilla live. 
[ -e /etc/ocs/ocs-live.conf ] && . /etc/ocs/ocs-live.conf 
# Load language files. For English, use "en_US.UTF-8". 
ask_and_load_lang_set en_US.UTF-8 

# The above is almost necessary, it is recommended to include them in your own custom-  ocs. 
# From here, you can write your own scripts. 

# functions 
decide_sda_or_hda() { 
    if [ -n "$(grep -Ew sda1 /proc/partitions)" ]; then 
    disk=sda 
    elif [ -n "$(grep -Ew hda1 /proc/partitions)" ]; then 
    disk=hda 
    else 
    [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE 
    echo "No hard disk detected!" 
    echo "Program terminated!" 
    [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL 
    fi 
    # src_part: hda1 or sda1, tgt_part: hda5 or sda5 
    dest_disk=${disk} 
} 

################## 
###### MAIN ###### 
################## 

# Set network on destination workstation 1 

# Determine if active link then set act_eth 

while [ -z "$(/sbin/mii-tool 2>/dev/null | awk -F ":" '/link ok/ {print $1}')" ]; do 
    dialog --title "NO LINK!!" --msgbox "\n Need an active link in order to continue!!" 6 50 
done 

act_eth=`/sbin/mii-tool 2>/dev/null | awk -F ":" '/link ok/ {print $1}'` 

# Set IP Address of destination workstation 1 
/sbin/ifconfig $act_eth 192.168.150.2 netmask 255.255.255.0 up 
/sbin/route add default gw 192.168.150.254 
/bin/echo "nameserver 8.8.8.8" >> /etc/resolv.conf 

# Find the disk device 
decide_sda_or_hda 

# Prompt for IP address of source disk 

OUTPUT="./input.txt" 
>$OUTPUT 
dialog --title "Need SOURCE IP" --inputbox "Enter IP address of the SOURCE server: " 8 60 2>$OUTPUT 
src_ip=$(<$OUTPUT) 

# Ready the destination disk to receive from source (source should already be waiting in clonezilla), and contact source to start transfer to destination 

/usr/sbin/ocs-onthefly -s $src_ip -t $dest_disk 

Когда я проверяю через эхо (не в Clonezilla, но только на поле Linux) диалоговое окно вывода для $ src_ip, а также $ dest_disk он выводит переменные в порядке, поэтому я действительно не знаю, почему ocs-onthefly не принимает его.

ответ

1

Похоже, что ваша команда ocs-onthefly получает неожиданные аргументы. Для анализа, позволяет увидеть реальную команду с

echo /usr/sbin/ocs-onthefly -s $src_ip -t $dest_disk 

Или, может быть, даже лучше, результат выполнения вашего скрипта с

bash -x script 

скажет вам, что это не так.