Clonezilla custom-ocs bash脚本在ocs-onthefly命令上失败

时间:2013-05-18 16:05:24

标签: bash clonezilla

我正在做一个自定义的clonezilla ..一个用于源将本地磁盘发送到带有ocs-onthefly的远程磁盘... custom-ocs工作正常。

然而,由于某种原因,目的地的自定义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”它运行正常。

目标脚本的custom-ocs位于: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

当我通过echo测试(不是在clonezilla中但只是在linux盒子上)时,$ src_ip和$ dest_disk的对话框输出它输出变量很好,所以我真的不知道为什么ocs-onthefly不接受它

1 个答案:

答案 0 :(得分:1)

看起来你的ocs-onthefly命令正在获得意外的参数。要分析,让我们看一下

的实际命令
 echo /usr/sbin/ocs-onthefly -s $src_ip -t $dest_disk

或者甚至更好,使用

运行脚本的结果
 bash -x script

会告诉你什么是错的。