This file is indexed.

/usr/sbin/ocs-match-checksum is in clonezilla 3.21.13-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
#!/bin/bash
# License: GPL 
# Author: Steven Shiau <steven _at_ stevenshiau org>
# Description: Program to inspect the checksum in the image and the files in the block device

#
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 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
ocs_parallel_mode="no"

#
USAGE() {
    echo "$ocs - To inspect the checksum in the image and the files in the block device"
    echo "Usage:"
    echo "To run $ocs:"
    echo "$ocs IMAGE DEVICE"
    echo "Options:"
    echo "-p, --parallel  Run the checksum inspection in parallel. The inspection for all partitions in a disk will be run in parallel. Maybe it's not a good idea if too many partitions and it might casue too many I/Os then less effiency."
    echo "IMAGE is the image name, e.g. Debian-Jessie. It must be saved by the option -gmf"
    echo "Device is the block device name. It can be a disk name or partition name, e.g. sda, sdc1"
    echo "Ex:"
    echo "To inspect the checksum in the image \"Debian-Jessie\" with the external disk \"/dev/sdc\", run"
    echo "   $ocs Debian-Jessie /dev/sdc"
    echo
} # end of USAGE
#

####################
### Main program ###
####################

ocs_file="$0"
ocs=`basename $ocs_file`
#
while [ $# -gt 0 ]; do
 case "$1" in
   -p|--parallel) ocs_parallel_mode="yes"; shift;;
   -*)     echo "${0}: ${1}: invalid option" >&2
           USAGE >& 2
           exit 2 ;;
   *)      break ;;
 esac
done

ocs_chk_img_name="$1"
shift
ocs_chk_dev="$*"

#
check_if_root
ask_and_load_lang_set

#
# imagedir is a variable which ask_user related function need
imagedir="$ocsroot"
[ -z "$ocs_chk_img_name" ] && ocs_chk_img_name="ask_user"
[ -z "$ocs_chk_dev" ] && ocs_chk_dev="ask_user"
if [ "$ocs_chk_img_name" = "ask_user" ]; then
  get_target_dir_name_when_checking_img_checksum # output: target_dir
  ocs_chk_img_name="$target_dir"
fi
[ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
echo "$msg_the_image_to_be_cheked: $ocs_chk_img_name"
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL

if [ "$ocs_chk_dev" = "ask_user" ]; then
  # To get $target_hd
  get_target_hd_name_from_local_machine "$msg_local_source_disk_for_checksum_inspect \n$msg_linux_disk_naming $msg_press_space_to_mark_selection"
  ocs_chk_dev="$(select_VG "$target_hd")"
elif [ "$ocs_chk_dev" = "all" ]; then
  get_not_busy_disks_or_parts harddisk "" ""  # we will get dev_list
  ocs_chk_dev="$dev_list"
fi
# check if the device exists
ANS_TMP=`mktemp /tmp/ocs_chkdev.XXXXXX`
trap "[ -f "$ANS_TMP" ] && rm -f $ANS_TMP" HUP INT QUIT TERM EXIT
check_if_input_device_exist $ANS_TMP $ocs_chk_dev 
ocs_chk_dev="$(cat $ANS_TMP | tr -d \")"
[ -f "$ANS_TMP" ] && rm -f $ANS_TMP

#
if [ -z "$ocs_chk_img_name" ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "No image name is assigned!"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo "$msg_program_stop!"
  exit 1
fi
if [ ! -d "$ocsroot/$ocs_chk_img_name" ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "Image $ocs_chk_img_name not found in $ocsroot!"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo "$msg_program_stop!"
  exit 1
fi
if [ -z "$ocs_chk_dev" ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "No destination device is assigned!"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo "$msg_program_stop!"
  exit 1
fi
# Check if the block device exists
for idev in $ocs_chk_dev; do
  if [ ! -b "/dev/$idev" ]; then
    [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
    echo "This block device was not found: $idev"
    [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
    echo "$msg_program_stop!"
    exit 1
  fi
done

#
case "$ocs_parallel_mode" in
  yes) go_bg="&";;
  *)   go_bg="";;
esac
  

#
src_disk="$(cat $ocsroot/$ocs_chk_img_name/disk)"

#
target_disks=""
target_parts=""
# Check if ocs_chk_dev a disk or partition
for idev in $ocs_chk_dev; do
  if is_whole_disk $idev; then
    # Disk
    # Get all the partitions
    BACKUP_DEVS=""
    echo "Searching for data partition(s)..." | tee -a /var/log/${ocs}-${idev}.log
    get_known_partition_proc_format $idev data
    target_parts="$BACKUP_DEVS"
    if [ "$idev" != "$src_disk" ]; then
      create-ocs-tmp-img -t /tmp $ocs_chk_img_name ${ocs_chk_img_name}_cnvt_${idev} $src_disk ${idev} | tee -a /var/log/${ocs}-${idev}.log
      target_dir_fullpath="/tmp/${ocs_chk_img_name}_cnvt_${idev}"
    else
      target_dir_fullpath="$ocsroot/$ocs_chk_img_name"
    fi
    for ipartition in $target_parts; do
      echo $msg_delimiter_star_line | tee -a /var/log/${ocs}-${idev}.log
      inspect_cmd="inspect_chksum_for_files_in_dev /dev/$ipartition "$target_dir_fullpath" |  tee -a /var/log/${ocs}-${idev}.log $go_bg"
      eval $inspect_cmd
      echo $msg_delimiter_star_line | tee -a /var/log/${ocs}-${idev}.log
    done
  else
    # Partition
    thd_tmp="$(get_diskname $idev)"
    if [ "$thd_tmp" != "$src_disk" ]; then
      create-ocs-tmp-img -t /tmp $ocs_chk_img_name ${ocs_chk_img_name}_cnvt_${thd_tmp} $src_disk ${thd_tmp} | tee -a /var/log/${ocs}-${idev}.log
      target_dir_fullpath="/tmp/${ocs_chk_img_name}_cnvt_${thd_tmp}"
    else
      target_dir_fullpath="$ocsroot/$ocs_chk_img_name"
    fi
    echo $msg_delimiter_star_line | tee -a /var/log/${ocs}-${idev}.log
    inspect_chksum_for_files_in_dev /dev/$idev "$target_dir_fullpath" | tee -a /var/log/${ocs}-${idev}.log &
    echo $msg_delimiter_star_line | tee -a /var/log/${ocs}-${idev}.log
  fi
done

# wait for all processes to finish before exit
wait 

# Clean the temp dir.
for i in $target_disks; do
  if [ -e "/tmp/${image_name}_cnvt_${i}/converted-not-portable" ]; then
    rm -f /tmp/${image_name}_cnvt_${i}/*
    rmdir /tmp/${image_name}_cnvt_${i}
  fi
done
my_ocs_exit 1