/[clonezilla-sysresccd]/trunk/create-clonezilla-sysresccd/files/ocs-iso
ViewVC logotype

Contents of /trunk/create-clonezilla-sysresccd/files/ocs-iso

Parent Directory Parent Directory | Revision Log Revision Log


Revision 95 - (show annotations)
Fri Aug 13 14:09:29 2010 UTC (13 years, 7 months ago) by sng
File size: 39847 byte(s)
Updating site and the following files:
trunk/www/working/download.html
  added download links
trunk/www/working/.template.html
  added link to download.html
trunk/www/working/index.html
  removed download section
files/*
  fixes for restore ZIP creation

1 #!/bin/bash
2 # Author: Steven Shiau <steven _at_ nchc org tw>
3 # License: GPL
4 # Description: This program will put Debian Live minimal + DRBL/Clonezilla program into a bootable iso file.
5
6 #
7 DRBL_SCRIPT_PATH="${DRBL_SCRIPT_PATH:-/opt/drbl/}"
8
9 . $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions
10 . $DRBL_SCRIPT_PATH/conf/drbl-ocs.conf
11 . $DRBL_SCRIPT_PATH/sbin/ocs-functions
12
13 # other default settings
14 # If insert_mode=prog_only, only copy DRBL/Clonezilla programs only, no ocs images.
15 insert_mode="prog_and_img"
16 img_size_sum=0
17 # Default to output the result to iso file, another vaule is cdwriter.
18 output_mode="file"
19 # If there is any file larger then 2GB, we need to turn on -allow-limited-size option for genisoimage. Actually it can be 4GB. Anyway, here we use 2GB. (man genisoimage for more details)
20 iso9660_file_size_limit="2000M" # For command "find" to find the file size (unit: Bytes)
21
22 # Excluding list for mkisofs
23 # We will create it like this:
24 # -x $DEBIAN_ISO_TMP/isolinux -x $DEBIAN_ISO_TMP/md5sum.txt -x $DEBIAN_ISO_TMP/casper/memtest
25 # "home" should also be excluded since if it exists, it will conflict with the real home later we will merge. Ref: https://sourceforge.net/forum/message.php?msg_id=7599463 Thanks to Andrew Bloxom for this idea.
26 mkiso_exclude_list_1="isolinux syslinux md5sum.txt doc live etc pkg ocs-live.d utils"
27 mkiso_exclude_list_2="home" # This should not be a duplicated count.
28 mkiso_exclude_list="$mkiso_exclude_list_1 $mkiso_exclude_list_2"
29
30 #
31 prog="$(basename $0)"
32 prog_option="$*"
33
34 # functions
35 USAGE() {
36 echo "Usage:"
37 echo "To put clonezilla image into live CD:"
38 echo "$prog [OPTION] CLONEZILLA_IMAGE_NAME"
39 echo "OPTION:"
40 language_help_prompt_by_idx_no
41 echo "-a, --file-name-prefix NAME Assign the output file name as NAME.iso. $0 will auto append '.iso' in the end of filename."
42 echo "-b, --bg-mode [text|graphic] Assign the background of boot menu. Default is graphic"
43 echo "-m, --custom-ocs PATH/custom-ocs Use the customized ocs program 'custom-ocs' instead of the default one. Note! PATH should be assigned so that it can be found. This is advanced mode."
44 echo "-e, --extra-param PARAM Assign extra parameter PARAM for clonezilla live to run, PARAM will be appended when run in ocs-live-restore or ocs."
45 echo "-g, --ocs-live-language LANGUAGE Assign the language when using clonezilla live, available languages are en_US.UTF-8, zh_TW.UTF-8 "
46 echo "-k, --ocs-live-keymap KEYMAP Assign the keyboard when using clonezilla live. Use full path for KEYMAP, for example: /usr/share/keymaps/i386/azerty/fr.kmap.gz. If 'NONE' is used, the default one (US keyboard) will be use."
47 echo "-t, --ocs-live-batch Set clonezilla live to run in batch mode, usually it's for restoring. If this mode is set, some dialog question will be ignored."
48 echo "-i, --assign-version-no NO Assign the version no as NO instead of date. This only works when using with option -s."
49 echo "-j, --debian-iso ISO_FILE Assign Debian live template iso file name as ISO_FILE to be used to create Clonezilla live."
50 echo "-n, --debian-iso-etc-url-path ISO_ETC_FILE_URL Assign the url (Ex. http://localhost/clonezilla-live/template-iso) for Debian live template iso file as ISO_FILE_URL to be used to create Clonezilla live."
51 echo "-p, --image-path Assign the clonezilla image path where CLONEZILLA_IMAGE_NAME exists. Default = $ocsroot"
52 echo "-s, --skip-image Do not include any clonezilla image. The is used to created a live CD with DRBL/Clonezilla programs only."
53 echo "-f, --on-the-fly DEV Write the output to CD/DVD writer DEV (such as /dev/hdc) instead of creating an ISO file."
54 echo "-o, --normal-menu When a clonezilla image is inserted, by default only restore menu will be shown in the created ISO file. If you want to show normal menu, i.e. with save and restore menu, use this one."
55 echo "-x, --extra-boot-param EXTRA_PARAM Assign extra boot parameter EXTRA_PARAM for clonezilla live kernel to read. These parameters are the same with that from live-initramfs. Ex. \"noprompt\" can be use to not prompt to eject the CD on reboot."
56 echo "-u, --include-dir DIR Include a dir in the target iso file."
57 echo "--ocs-live-boot-menu-option EXTRA_OPTION Assign an extra option for ocs-live-boot-menu. //NOTE// Do not put '-' in this EXTRA_OPTION, $0 will add that automatically. e.g. if you want to add -s1 for ocs-live-boot-menu to run, use 's1' only."
58 echo "$prog will download a template Debian live CD for clonezilla iso file if ncecessary. You can also download it by yourself, and put it in the working directory when you run $prog. If you want to create that template iso file in Debian Etch, run create-debian-live."
59 echo "NOTE! Due to the limitation in mkisofs, this program does not work in clonezilla image file larger than $FILE_LIMIT MB."
60 echo "Ex:"
61 echo "To put clonezilla image sarge-ocs (located in /home/partimag in clonezilla server) to Live CD, you can run:"
62 echo " $prog sarge-ocs"
63 echo "To put more images, just append them, such as:"
64 echo " $prog sarge-ocs etch-ocs"
65 echo "To create a Live CD with DRBL/Clonezilla programs:"
66 echo " $prog -s"
67 echo "To specify the Debian live template iso, run like this:"
68 echo " $prog -j debian-live-for-ocs-1.0.1-3.iso -n http://localhost/clonezilla-live/template-iso/testing -s"
69 echo "To put clonezilla image sarge-ocs, etch-ocs to to Live CD, and write it to cd writer /dev/hdc, you can run:"
70 echo " $prog -f /dev/hdc sarge-ocs etch-ocs"
71 echo "To create an iso file for restoring with clonezilla image sarge-r5 builtin, and make it boot then restore the image sarge-r5 to hda in unattended mode (Only confirmation in the beginning), you can run:"
72 echo " $prog -g en_US.UTF-8 -t -k NONE -e \"-b -c restoredisk sarge-r5 hda\" sarge-r5"
73 echo "To create an iso file to run your own custom-ocs program:"
74 echo " $prog -g en_US.UTF-8 -k NONE -s -m ./custom-ocs"
75 }
76 #
77 check_file_size_in_ocs_image() {
78 local img_path="$1"
79 local size_t
80 local size_t_tot=0
81 for ifile in $img_path/*; do
82 size_t="$(du -Lms $ifile | awk -F" " '{print $1}')"
83 size_t_tot=$((size_t_tot+size_t))
84 done
85 if [ "$size_t_tot" -gt "$FILE_LIMIT" ]; then
86 ################################################################################
87 # Section edited by S. Georgaras <sng@hellug.gr>
88
89 # [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
90 # echo "$ifile size ($size_t MB) is too large! $msg_mkisofs_unable_process_that"
91 # [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
92 # echo "$msg_are_u_sure_u_want_to_continue"
93 # echo -n "[y/N] "
94 # read cont_ans
95 # case "$cont_ans" in
96 # y|Y|[yY][eE][sS])
97 # echo $msg_ok_let_do_it
98 # ;;
99 # *)
100 # echo "Abort!"
101 # exit 2
102 # esac
103 whiptail --backtitle Clonezilla-SysRescCD --title ' Excessive Image Size ' --yesno "The image file \"$(basename ${1})\" is too large ($size_t_tot MB) and
104 $msg_mkisofs_unable_process_that
105
106 $msg_are_u_sure_u_want_to_continue" 0 60
107 if [ $? -eq 1 ];then
108 exit 1
109 fi
110 # going2RAM="prog_only"
111 break
112 fi
113 # done
114 ################################################################################
115 }
116
117 #
118 clean_tmp_dir() {
119 [ -d "$ISOSYSLNX_TMP" -a -n "$(echo $ISOSYSLNX_TMP | grep "ocs_isosyslnx")" ] && rm -rf $ISOSYSLNX_TMP
120 [ -d "$WD_TMP" -a -n "$(echo $WD_TMP | grep "ocs_iso_wd")" ] && rm -rf $WD_TMP
121 [ -d "$DEBIAN_ISO_TMP" ] && umount $DEBIAN_ISO_TMP &>/dev/null && rmdir $DEBIAN_ISO_TMP
122 } # End of clean_tmp_dir
123
124 #
125 check_if_root
126
127 # default settings:
128 ocs_live_batch="no"
129 custom_ocs=""
130 normal_menu_with_insert_image="no"
131 template_mode=""
132
133 # Parse command-line options
134 while [ $# -gt 0 ]; do
135 case "$1" in
136 -a|--file-name-prefix)
137 shift
138 if [ -z "$(echo $1 |grep ^-.)" ]; then
139 # skip the -xx option, in case
140 target_iso_prefix="$1"
141 shift
142 fi
143 [ -z "$target_iso_prefix" ] && USAGE && exit 1
144 ;;
145 -l|--language)
146 shift
147 if [ -z "$(echo $1 |grep ^-.)" ]; then
148 # skip the -xx option, in case
149 specified_lang="$1"
150 shift
151 fi
152 [ -z "$specified_lang" ] && USAGE && exit 1
153 ;;
154 -b|--bg-mode)
155 shift
156 if [ -z "$(echo $1 |grep ^-.)" ]; then
157 # skip the -xx option, in case
158 bg_mode="$1"
159 shift
160 fi
161 [ -z "$bg_mode" ] && USAGE && exit 1
162 ;;
163 -m|--custom-ocs)
164 shift
165 if [ -z "$(echo $1 |grep ^-.)" ]; then
166 # skip the -xx option, in case
167 custom_ocs="$1"
168 shift
169 fi
170 [ -z "$custom_ocs" ] && USAGE && exit 1
171 ;;
172 -e|--extra-param)
173 shift
174 # extra param might begin with -, i.e. Ex. -b -p true. Therefore we should not skip this.
175 ocs_live_extra_param="$1"
176 shift
177 [ -z "$ocs_live_extra_param" ] && USAGE && exit 1
178 ;;
179 -i|--assign-version-no)
180 shift
181 if [ -z "$(echo $1 |grep ^-.)" ]; then
182 # skip the -xx option, in case
183 version_no="$1"
184 shift
185 fi
186 [ -z "$version_no" ] && USAGE && exit 1
187 ;;
188 -g|--ocs-live-language)
189 shift
190 if [ -z "$(echo $1 |grep ^-.)" ]; then
191 # skip the -xx option, in case
192 ocs_lang="$1"
193 shift
194 fi
195 [ -z "$ocs_lang" ] && USAGE && exit 1
196 ;;
197 -k|--ocs-live-keymap)
198 shift
199 if [ -z "$(echo $1 |grep ^-.)" ]; then
200 # skip the -xx option, in case
201 ocs_live_keymap="$1"
202 shift
203 fi
204 [ -z "$ocs_live_keymap" ] && USAGE && exit 1
205 ;;
206 -p|--image-path)
207 shift
208 if [ -z "$(echo $1 |grep ^-.)" ]; then
209 # skip the -xx option, in case
210 image_path="$1"
211 shift
212 fi
213 [ -z "$image_path" ] && USAGE && exit 1
214 ;;
215 -s|--skip-image)
216 insert_mode="prog_only"
217 #
218 # Section inserted by S. Georgaras <sng@hellug.gr>
219 # Variable to know that -s was actually used
220 #
221 ORIGINAL_INSERT_MODE='-o'
222 #
223 ##################################################
224 shift ;;
225 -t|--ocs-live-batch)
226 ocs_live_batch="yes"
227 shift ;;
228 -o|--normal-menu)
229 normal_menu_with_insert_image="yes"
230 shift ;;
231 -f|--on-the-fly)
232 shift
233 output_mode="cdwriter"
234 if [ -z "$(echo $1 |grep ^-.)" ]; then
235 # skip the -xx option, in case
236 output_dev="$1"
237 shift
238 fi
239 [ -z "$output_dev" ] && USAGE && exit 1
240 ;;
241 -j|--debian-iso)
242 shift
243 if [ -z "$(echo $1 |grep ^-.)" ]; then
244 # skip the -xx option, in case
245 DEBIAN_ISO="$1"
246 template_mode="from-download-live-media"
247 shift
248 fi
249 [ -z "$DEBIAN_ISO" ] && USAGE && exit 1
250 ;;
251 -n|--debian-iso-etc-url-path)
252 shift
253 if [ -z "$(echo $1 |grep ^-.)" ]; then
254 # skip the -xx option, in case
255 DEBIAN_ISO_ETC_PATH="$1"
256 shift
257 fi
258 [ -z "$DEBIAN_ISO_ETC_PATH" ] && USAGE && exit 1
259 ;;
260 -x|--extra-boot-param)
261 shift
262 if [ -z "$(echo $1 |grep ^-.)" ]; then
263 # skip the -xx option, in case
264 live_extra_boot_param="$1"
265 shift
266 fi
267 [ -z "$live_extra_boot_param" ] && USAGE && exit 1
268 ;;
269 --ocs-live-boot-menu-option)
270 shift
271 if [ -z "$(echo $1 |grep ^-.)" ]; then
272 # skip the -xx option, in case
273 ocs_live_boot_menu_option="$1"
274 shift
275 fi
276 [ -z "$ocs_live_boot_menu_option" ] && USAGE && exit 1
277 ;;
278 -u|--include-dir)
279 shift
280 if [ -z "$(echo $1 |grep ^-.)" ]; then
281 # skip the -xx option, in case
282 include_dir="$1"
283 include_dir_graft_point="$include_dir=$include_dir"
284 shift
285 fi
286 [ -z "$include_dir" ] && USAGE && exit 1
287 ;;
288 -*) echo "${0}: ${1}: invalid option" >&2
289 USAGE >& 2
290 exit 2 ;;
291 *) break ;;
292 esac
293 done
294 ocs_image="$*"
295 # strip the / to avoid problem
296 ocs_image="$(echo $ocs_image | sed -e "s|/||g")"
297
298 [ -z "$ocs_image" -a "$insert_mode" = "prog_and_img" ] && USAGE && exit 1
299 [ -z "$image_path" ] && image_path=$ocsroot
300 [ -z "$bg_mode" ] && bg_mode="$BG_MODE_DEF"
301 [ -z "$DEBIAN_ISO_ETC_PATH" ] && DEBIAN_ISO_ETC_PATH="$DEBIAN_ISO_ETC_PATH_DEF"
302 [ -z "$DEBIAN_ISO" ] && DEBIAN_ISO="$DEBIAN_ISO_DEF"
303 [ -n "$ocs_live_boot_menu_option" ] && ocs_live_boot_menu_option="-$ocs_live_boot_menu_option"
304 DEBIAN_ISO_URL="$DEBIAN_ISO_ETC_PATH/$DEBIAN_ISO"
305 md5_file_url="$DEBIAN_ISO_ETC_PATH/$md5_file"
306
307 #
308 ask_and_load_lang_set $specified_lang
309
310 #
311 if ! type genisoimage &>/dev/null; then
312 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
313 echo "Program genisoimage not found!"
314 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
315 echo "$msg_program_stop"
316 exit 1
317 fi
318
319 if [ "$output_mode" = "cdwriter" -a type wodim &>/dev/null ]; then
320 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
321 echo "Program wodim is not aviailable! You have to install it."
322 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
323 echo "$msg_program_stop"
324 exit 1
325 fi
326
327 if [ -n "$custom_ocs" -a ! -e "$custom_ocs" ]; then
328 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
329 echo "File $custom_ocs not found!"
330 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
331 echo "$msg_program_stop"
332 exit 1
333 fi
334
335 # Format the lang variable. This is for clonezilla live running, not for ocs-iso.
336 case "$ocs_lang" in
337 zh_TW.BIG5|zh_TW.big5|tw.BIG5)
338 [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
339 echo "For Traditional Chinese locale, Clonezilla live only supports unicode (zh_TW.UTF-8), not Big5 encoding (zh_TW.BIG5). Force to use UTF-8 for Traditional Chinese in Clonezilla live."
340 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
341 ocs_lang="zh_TW.UTF-8" ;;
342 zh_TW.UTF-8|zh_TW.utf8|tw.UTF-8|tw.utf8)
343 ocs_lang="zh_TW.UTF-8" ;;
344 esac
345
346 # Decide where is the $LIVE_MEDIA
347 get_live_media_mnt_point &>/dev/null
348
349 # Some temp dirs
350 # Thanks to Orgad Shaneh. Since the temp files from Clonezilla live won't take too much space, we just use /tmp/ to store these temp files.
351 #if [ -w ./ ]; then
352 # ISOSYSLNX_TMP="$(mktemp -d ./isolnx.XXXXXX)"
353 # WD_TMP="$(mktemp -d ./iso_wd.XXXXXX)"
354 #else
355 # ISOSYSLNX_TMP="$(mktemp -d /tmp/isolnx.XXXXXX)"
356 # WD_TMP="$(mktemp -d /tmp/iso_wd.XXXXXX)"
357 #fi
358 ISOSYSLNX_TMP="$(mktemp -d /tmp/ocs_isosyslnx.XXXXXX)"
359 WD_TMP="$(mktemp -d /tmp/ocs_iso_wd.XXXXXX)"
360
361 #
362 trap clean_tmp_dir HUP INT QUIT TERM EXIT
363
364 # Try to find if it is running on live cd/usb already
365 if [ -z "$template_mode" ]; then
366 if [ -n "$LIVE_MEDIA" ]; then
367 # It's running from Clonezilla live media, use the existing resource
368 template_mode="from-booting-live-media"
369 [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
370 echo "Found a Clonezilla live media... Will use that as a template..."
371 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
372 else
373 template_mode="from-downloaded-live-media"
374 [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
375 echo "No Clonezilla live media was found... Will use the downloaded template from Clonezilla repository..."
376 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
377 fi
378 fi
379
380 if [ "$template_mode" = "from-downloaded-live-media" ]; then
381 if [ ! -f "$DEBIAN_ISO" ]; then
382 echo "We need Debian live CD for Clonnezilla to create clonezilla cd."
383 echo "Downloadling the iso file from $DEBIAN_ISO_URL..."
384 wget $DEBIAN_ISO_URL
385 get_iso_rc=$?
386 # validate it
387 if [ "$get_iso_rc" -eq 0 ]; then
388 echo -n "Validating $DEBIAN_ISO... "
389 md5_tmp="$(mktemp -d /tmp/isomd5.XXXXX)"
390 # wget http://opensource.nchc.org.tw/drbl-core/iso/MD5SUMS
391 echo -n "Downloading $md5_file_url... "
392 wget $wget_opt -P "$md5_tmp" $md5_file_url
393 if ! grep -w "$DEBIAN_ISO" $md5_tmp/MD5SUMS | md5sum -c; then
394 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
395 echo "$DEBIAN_ISO is broken! Something went wrong! Try to remove $DEBIAN_ISO and run this program again."
396 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
397 echo "$msg_program_stop"
398 exit 1
399 fi
400 else
401 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
402 echo "Unable to download $DEBIAN_ISO_URL!"
403 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
404 echo "$msg_program_stop"
405 exit 1
406 fi
407 else
408 echo "A template iso ($DEBIAN_ISO) was found!"
409 fi
410 fi
411
412 allow_limited_size_flag=""
413 if [ "$insert_mode" = "prog_and_img" ]; then
414 # 2 cases:
415 # (1) normal_menu_with_insert_image=no, i.e. only restore menu. ocs-live-restore is the main program.
416 # If it's not batch mode for clonezilla live (especially for restoring), by default we have to append "-x --restore-only", and especially before any other parameters, so that ocs-sr will run like:
417 # ocs-sr -l $ocs_lang -p true -x --restore-only -b restoredisk sarge_image
418 # (2) normal_menu_with_insert_image=yes, i.e. normal menu. ocs-live-general is the main program. Threfore no extra param.
419 if [ "$ocs_live_batch" = "no" ]; then
420 case "$normal_menu_with_insert_image" in
421 no) ocs_live_extra_param="-x --restore-only $ocs_live_extra_param" ;;
422 yes) ocs_live_extra_param="" ;;
423 esac
424 fi
425
426 echo "Creating clonezilla ISO with image(s) $ocs_image from $image_path..."
427 # here we put ocs-live-restore as ocs-live inside live cd, and it will be shown as /$LIVE_MEDIA/ocs-live when using in running live CD.
428 # use the 1st image name as iso filename
429 iso_label_tag="$(echo $ocs_image | awk -F" " '{print $1}')"
430 # mkisofs only allow 32 characters for volume ID
431 iso_label_tag="${iso_label_tag:0:31}"
432 ocs_imgs_with_abs_path=""
433 for im in $ocs_image; do
434 if [ ! -d "$image_path/$im" ]; then
435 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
436 echo "$image_path/$im $msg_NOT_found!"
437 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
438 echo "$msg_program_stop"
439 exit 1
440 fi
441 if [ -z "$allow_limited_size_flag" ]; then
442 if [ -n "$(find $image_path/$im -size +${iso9660_file_size_limit} -print)" ]; then
443 allow_limited_size_flag="yes"
444 fi
445 fi
446 # we will put all the images in $ocsroot/ inside ISO file.
447 # Since we will always use /home/partimag as the image root in Clonezilla live, here the path in the created iso is /home/partimag/
448 ocs_imgs_with_abs_path="$ocs_imgs_with_abs_path /home/partimag/$im/=$image_path/$im/"
449 convert_ocs_format_from_1.5_to_2.0_or_newer $image_path/$im/
450 check_file_size_in_ocs_image $image_path/$im/
451 img_size="$(du -ms $image_path/$im/ | awk -F" " '{print $1}')" # unit: MB
452 img_size_sum="$((img_size_sum+img_size))"
453 done
454 else
455 echo "Creating clonezilla Live CD ISO file..."
456 # if version_no is not set, use date (Ex. 20070409)
457 [ -z "$version_no" ] && version_no="$(date +%Y%m%d)"
458 iso_label_tag="${version_no}"
459 fi
460 boot_menu_opt="--version-no $iso_label_tag"
461
462 if [ -n "$target_iso_prefix" ]; then
463 target_iso="${target_iso_prefix}.iso"
464 else
465 target_iso="clonezilla-live-${iso_label_tag}.iso"
466 fi
467 echo "The output file name is: $target_iso."
468
469 if [ "$template_mode" = "from-booting-live-media" ]; then
470 DEBIAN_ISO_TMP="$LIVE_MEDIA"
471 else
472 DEBIAN_ISO_TMP="$(mktemp -d /tmp/ocs-iso.XXXXXX)"
473 mount -o loop,ro $DEBIAN_ISO $DEBIAN_ISO_TMP
474 fi
475
476 #
477 # Possible kernel/initrd paths are /casper (created by casper) or /live (created by live-initramfs)
478 # Find the kernel and initrd in $DEBIAN_ISO_TMP/casper or $DEBIAN_ISO_TMP/live
479 # Ex: $DEBIAN_ISO_TMP/casper/vmlinuz1, /$DEBIAN_ISO_TMP/casper/initrd1.img
480 # $live_sys_files_dir_list is from drbl-ocs.conf.
481 # Possible kernel/initrd paths are /casper (created by casper) or /live (created by live-initramfs)
482 sys_files_dir=""
483 for i in $live_sys_files_dir_list; do
484 krnfile_full_path="$(find $DEBIAN_ISO_TMP/$i/ -maxdepth 1 -name "vmlinuz*" -print 2>/dev/null)"
485 if [ -n "$krnfile_full_path" ]; then
486 krnfile="$(basename $krnfile_full_path)"
487 sys_files_dir="$i"
488 irdfile_full_path="$(find $DEBIAN_ISO_TMP/$i/ -maxdepth 1 -name "initrd*" -print)"
489 irdfile="$(basename $irdfile_full_path)"
490 break
491 fi
492 done
493
494 #
495 if [ -z "$sys_files_dir" ]; then
496 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
497 echo "No system files from template live iso are found! Something went wrong!"
498 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
499 echo "$msg_program_stop"
500 exit 1
501 fi
502
503 if [ -z "$krnfile" -o -z "$irdfile" ]; then
504 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
505 echo "Kernel and initrd files NOT found in path $DEBIAN_ISO_TMP/$sys_files_dir/!"
506 echo "$msg_program_stop"
507 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
508 exit 1
509 fi
510
511 if [ "$template_mode" = "from-booting-live-media" ]; then
512 # From boot media (clonezilla live), DEBIAN_ISO_TMP is LIVE_MEDIA
513 # The dirs/files in Clonezilla live:
514 # -r--r--r-- 1 root root 117 2010-05-21 21:17 Clonezilla-Live-Version
515 # -r--r--r-- 1 root root 18K 2010-05-21 21:05 COPYING
516 # dr-xr-xr-x 2 root root 2.0K 2010-05-21 21:17 isolinux/
517 # dr-xr-xr-x 2 root root 2.0K 2010-05-21 21:17 live/
518 # dr-xr-xr-x 2 root root 2.0K 2010-05-21 21:17 syslinux/
519 # dr-xr-xr-x 5 root root 2.0K 2010-05-21 21:17 utils/
520 # We need all of them.
521 template_iso_size="$(LC_ALL=C du -Lmsc $LIVE_MEDIA/{Clonezilla-Live-Version,COPYING,isolinux,$sys_files_dir,syslinux,utils} | tail -n 1 | awk -F" " '{print $1}')"
522 else
523 # From iso file (debian-live-for-ocs.iso)
524 # The dirs/files in Debian live for OCS:
525 # dr-xr-xr-x 3 root root 4.0K 2010-05-28 18:03 doc/
526 # dr-xr-xr-x 2 root root 4.0K 2010-05-28 18:03 isolinux/
527 # dr-xr-xr-x 2 root root 2.0K 2010-05-28 18:03 live/
528 # -r--r--r-- 1 root root 3.7K 2010-05-28 18:03 md5sum.txt
529 # We only need dirs isolinux and live only
530 template_iso_size="$(LC_ALL=C du -Lmsc $DEBIAN_ISO_TMP/{isolinux,$sys_files_dir} | tail -n 1 | awk -F" " '{print $1}')"
531 fi
532 target_iso_size="$(($template_iso_size + $img_size_sum))"
533
534 #
535 BOOT_ITEM_DIR=$ISOSYSLNX_TMP/$sys_files_dir
536 [ ! -d $BOOT_ITEM_DIR ] && mkdir $BOOT_ITEM_DIR
537 echo -n "Copying the system files to working dir... This might take a few minutes... "
538 cp -af $DEBIAN_ISO_TMP/$sys_files_dir $ISOSYSLNX_TMP/
539 RC=$?
540 if [ "$RC" -ne 0 ]; then
541 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
542 echo "Failed to copy system files to working dir..."
543 echo "$msg_program_stop"
544 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
545 exit 1
546 fi
547 echo "done!"
548
549 ################################################################################
550 # Section edited by S. Georgaras <sng@hellug.gr>
551 #
552 # echo "Estimated target ISO file \"$target_iso\" size: $target_iso_size MB"
553 # if [ "$target_iso_size" -gt "$FILE_LIMIT" ]; then
554 # [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
555 # echo "$msg_ocs_iso_too_big_for_DVD"
556 # [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
557 # echo "$msg_are_u_sure_u_want_to_continue"
558 # echo -n "[y/N] "
559 # read cont_ans
560 # case "$cont_ans" in
561 # y|Y|[yY][eE][sS])
562 # echo $msg_ok_let_do_it
563 # ;;
564 # *)
565 # echo "Abort!"
566 # exit 2
567 # esac
568 # elif [ "$target_iso_size" -gt "$CD_FILE_LIMIT" ]; then
569 # [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
570 # echo "$msg_ocs_iso_too_big_for_CD"
571 # [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
572 # echo "$msg_are_u_sure_u_want_to_continue"
573 # echo -n "[y/N] "
574 # read cont_ans
575 # case "$cont_ans" in
576 # y|Y|[yY][eE][sS])
577 # echo $msg_ok_let_do_it
578 # ;;
579 # *)
580 # echo "Abort!"
581 # exit 2
582 # esac
583 # fi
584
585 ################################################################################
586
587 # output setting for clonezilla live
588 mkdir -p $WD_TMP/etc/ocs
589
590 # Decide ocs_live_run
591 # $DRBL_SCRIPT_PATH/sbin/custom-ocs is copied from $LIVE_MEDIA/pkg/custom-ocs by /etc/ocs/ocs-live.d/S03prep-drbl-clonezilla when booting
592 if [ -n "$custom_ocs" ]; then
593 custom_ocs_opt="/pkg/custom-ocs=$custom_ocs"
594 ocs_live_run="custom-ocs"
595 else
596 if [ "$insert_mode" = "prog_and_img" ]; then
597 case "$normal_menu_with_insert_image" in
598 no) ocs_live_run="ocs-live-restore" ;;
599 yes) ocs_live_run="ocs-live-general" ;;
600 esac
601 else # prog_only mode
602 ocs_live_run="ocs-live-general"
603 fi
604 fi
605
606 # Create the iso image file
607 # isolinux should be rw, so we have to copy it, and exclude the one in iso image.
608 mkdir -p $ISOSYSLNX_TMP/isolinux/ $ISOSYSLNX_TMP/syslinux/
609 # rsync -a --exclude f*.txt --exclude boot.cat --exclude isolinux.txt --exclude isolinux.bin --exclude splash.rle --exclude doc $DRBL_SCRIPT_PATH/pkg/syslinux/* $ISOSYSLNX_TMP/isolinux/
610 # we have to overwrite isolinux.bin since vesamenu.c32 should be same version with that.
611 # For isolinux
612 cp -af $isolinux_file $pxelinux_simple_vesamenu $pxelinux_simple_menu $pxelinux_memdisk_file $pxelinux_bg_img $ocs_logo_img_syslinux $pxelinux_chain_file $ISOSYSLNX_TMP/isolinux/
613 # For syslinux
614 cp -af $pxelinux_simple_vesamenu $pxelinux_simple_menu $pxelinux_memdisk_file $pxelinux_bg_img $ocs_logo_img_syslinux $pxelinux_chain_file $ISOSYSLNX_TMP/syslinux/
615
616 etherboot_zlilo="$($query_pkglist_cmd drbl-etherboot 2>/dev/null | grep -E "eb-.*-etherboot-pci.zlilo$")"
617 # we have to force it name as etherboot.zdsk, since isolinux only uses the "plain" ISO 9660 filenames, i.e. it does not support Rock Ridge or Joliet filenames.
618 # ref: http://syslinux.zytor.com/archives/2006-October/007440.html
619 # "-" will be regards as "_" if you want to use "-" for isolinux.
620 # In syslinux on vfat, etherboot.zlilo is too long, make it ever shorter as eb.zli
621 if [ -n "$etherboot_zlilo" ]; then
622 # This is run in DRBL server
623 cp -af $etherboot_zlilo $BOOT_ITEM_DIR/eb.zli
624 else
625 # This is run in Clonezilla live with casper or live mechanism
626 for i in $live_sys_files_dir_list; do
627 if [ -e "$LIVE_MEDIA/$i/eb.zli" ]; then
628 cp -af $LIVE_MEDIA/$i/eb.zli $BOOT_ITEM_DIR/eb.zli
629 break
630 fi
631 done
632 fi
633 # same reason, we have to use different name in isolinux
634 gpxe_lkn="$($query_pkglist_cmd gpxe 2>/dev/null | grep -E "gpxe.lkrn$")"
635 if [ -n "$gpxe_lkn" ]; then
636 # This is run in DRBL server
637 cp -af $gpxe_lkn $BOOT_ITEM_DIR/gpxe.lkn
638 else
639 # This is run in Clonezilla live with casper or live mechanism
640 for i in $live_sys_files_dir_list; do
641 if [ -e "$LIVE_MEDIA/$i/gpxe.lkn" ]; then
642 cp -af $LIVE_MEDIA/$i/gpxe.lkn $BOOT_ITEM_DIR/gpxe.lkn
643 break
644 fi
645 done
646 fi
647 # same reason, we have to use different name in isolinux
648 if [ -e "$fdos_img_src" ] ; then
649 cp -af $fdos_img_src $BOOT_ITEM_DIR/freedos.img
650 else
651 # This is run in Clonezilla live with casper or live mechanism
652 for i in $live_sys_files_dir_list; do
653 if [ -e "$LIVE_MEDIA/$i/freedos.img" ]; then
654 cp -af $LIVE_MEDIA/$i/freedos.img $BOOT_ITEM_DIR/freedos.img
655 break
656 fi
657 done
658 fi
659 # $memtest86_file (memtest86) is 9 characters, will go wrong when it's FAT (usb flash drive). We use memtest to overwrite the one comes from Debian live.
660 # Since live helper will put memtest in casper, we can choose to copy it or not.
661 # If we really want to use the memtest from drbl, we have to remove $DEBIAN_ISO_TMP/casper/memtest before doing mkisofs, otherwise it will complain like:
662 # Using MEMTEST000.;1 for /tmp/ocs-iso.E15902/casper/memtest (memtest)
663 # genisoimage: Error: '/tmp/isolnx.V15903/casper/memtest' and '/tmp/ocs-iso.E15902/casper/memtest' have the same Rock Ridge name 'memtest'.
664 # Unable to sort directory /tmp/ocs-iso.E15902/casper
665 # since $DEBIAN_ISO_TMP/casper/memtest is read-only, we can not remove it. Later we will exclude that later by mkisofs.
666 if [ -e "$memtest86_file" ]; then
667 cp -af $memtest86_file $BOOT_ITEM_DIR/memtest
668 else
669 # This is run in Clonezilla live with casper or live mechanism
670 for i in $live_sys_files_dir_list; do
671 if [ -e "$LIVE_MEDIA/$i/memtest" ]; then
672 cp -af $LIVE_MEDIA/$i/memtest $BOOT_ITEM_DIR/memtest
673 break
674 fi
675 done
676 fi
677
678 # Excluding list for mkisofs
679 for i in $live_sys_files_dir_list; do
680 if [ -e "$DEBIAN_ISO_TMP/$i/memtest" ]; then
681 mkiso_exclude_list="$mkiso_exclude_list $i/memtest"
682 break
683 fi
684 done
685 mkiso_exclude_opt=""
686 for i in $mkiso_exclude_list; do
687 mkiso_exclude_opt="$mkiso_exclude_opt -x $DEBIAN_ISO_TMP/$i"
688 done
689
690 # Find the boot param $boot_param
691 get_live_boot_param $DEBIAN_ISO_TMP/isolinux
692
693 #
694 if [ -n "$ocs_image" ]; then
695 # For isolinux
696 ocs-live-boot-menu $ocs_live_boot_menu_option -l $lang_answer -f $VGA_MODE_DEF -b $bg_mode -k /$sys_files_dir/$krnfile -i /$sys_files_dir/$irdfile -m $ocs_logo_img_syslinux $boot_menu_opt --boot-param "$boot_param $live_extra_boot_param $supp_boot_param_ocs_live_iso ocs_live_run=\"$ocs_live_run\" ocs_live_extra_param=\"$ocs_live_extra_param\" ocs_live_keymap=\"$ocs_live_keymap\" ocs_live_batch=\"$ocs_live_batch\" ocs_lang=\"$ocs_lang\"" --title "clonezilla live with img $ocs_image" isolinux $ISOSYSLNX_TMP/isolinux/
697 # For syslinux
698 ocs-live-boot-menu $ocs_live_boot_menu_option -l $lang_answer -f $VGA_MODE_DEF -b $bg_mode -k /$sys_files_dir/$krnfile -i /$sys_files_dir/$irdfile -m $ocs_logo_img_syslinux $boot_menu_opt --boot-param "$boot_param $live_extra_boot_param $supp_boot_param_ocs_live_dev ocs_live_run=\"$ocs_live_run\" ocs_live_extra_param=\"$ocs_live_extra_param\" ocs_live_keymap=\"$ocs_live_keymap\" ocs_live_batch=\"$ocs_live_batch\" ocs_lang=\"$ocs_lang\"" --title "clonezilla live with img $ocs_image" syslinux $ISOSYSLNX_TMP/syslinux/
699 else
700 # For isolinux
701 ocs-live-boot-menu $ocs_live_boot_menu_option -l $lang_answer -f $VGA_MODE_DEF -b $bg_mode -k /$sys_files_dir/$krnfile -i /$sys_files_dir/$irdfile -m $ocs_logo_img_syslinux $boot_menu_opt --boot-param "$boot_param $live_extra_boot_param $supp_boot_param_ocs_live_iso ocs_live_run=\"$ocs_live_run\" ocs_live_extra_param=\"$ocs_live_extra_param\" ocs_live_keymap=\"$ocs_live_keymap\" ocs_live_batch=\"$ocs_live_batch\" ocs_lang=\"$ocs_lang\"" isolinux $ISOSYSLNX_TMP/isolinux/
702 # For syslinux
703 ocs-live-boot-menu $ocs_live_boot_menu_option -l $lang_answer -f $VGA_MODE_DEF -b $bg_mode -k /$sys_files_dir/$krnfile -i /$sys_files_dir/$irdfile -m $ocs_logo_img_syslinux $boot_menu_opt --boot-param "$boot_param $live_extra_boot_param $supp_boot_param_ocs_live_dev ocs_live_run=\"$ocs_live_run\" ocs_live_extra_param=\"$ocs_live_extra_param\" ocs_live_keymap=\"$ocs_live_keymap\" ocs_live_batch=\"$ocs_live_batch\" ocs_lang=\"$ocs_lang\"" syslinux $ISOSYSLNX_TMP/syslinux/
704 fi
705
706 #
707 echo "Preparing syslinux, syslinux.exe, makeboot.sh, and makeboot.bat in dir utils... "
708 # If it's in Clonezilla live environment, we have those files
709 if [ -e "$LIVE_MEDIA/utils/linux/syslinux" -a \
710 -e "$LIVE_MEDIA/utils/mbr/mbr.bin" -a \
711 -e "$LIVE_MEDIA/utils/win32/syslinux.exe" ]; then
712 cp -rf $LIVE_MEDIA/utils $ISOSYSLNX_TMP
713 else
714 put_syslinux_makeboot_for_usb_flash $ISOSYSLNX_TMP
715 fi
716 if [ -d "$ISOSYSLNX_TMP/utils" ]; then
717 utils_files_dir_graft_point="/utils/=$ISOSYSLNX_TMP/utils/"
718 fi
719
720 # put version tag
721 # The content is like clonezilla-live-20070308
722 echo "clonezilla-live-${iso_label_tag}" > $ISOSYSLNX_TMP/Clonezilla-Live-Version
723 echo "This Clonezilla live iso file was created by this command:" >> $ISOSYSLNX_TMP/Clonezilla-Live-Version
724 echo "$prog $prog_option" >> $ISOSYSLNX_TMP/Clonezilla-Live-Version
725
726 # $sys_files_dir maybe /casper, /live or /isolinux. If it is isolinux, we can not list them twice otherwise mkisofs will go wrong.
727 if [ "$sys_files_dir" != "isolinux" ]; then
728 sys_files_dir_graft_point="/isolinux/=$ISOSYSLNX_TMP/isolinux/ /syslinux/=$ISOSYSLNX_TMP/syslinux/ /$sys_files_dir/=$ISOSYSLNX_TMP/$sys_files_dir/"
729 else
730 sys_files_dir_graft_point="/isolinux/=$ISOSYSLNX_TMP/isolinux/ /syslinux/=$ISOSYSLNX_TMP/syslinux/"
731 fi
732
733 # If template_mode="from-booting-live-media", then there is /COPYING and /Clonezilla-Live-Version, then we should not assign that.
734 doc_insert_in_root=""
735 if [ -e "$DEBIAN_ISO_TMP/COPYING" ]; then
736 doc_insert_in_root="/COPYING=$DEBIAN_ISO_TMP/COPYING"
737 else
738 doc_insert_in_root="/COPYING=$DRBL_SCRIPT_PATH/doc/COPYING"
739 fi
740 if [ -e "$DEBIAN_ISO_TMP/Clonezilla-Live-Version" ]; then
741 doc_insert_in_root="$doc_insert_in_root /Clonezilla-Live-Version=$DEBIAN_ISO_TMP/Clonezilla-Live-Version"
742 else
743 doc_insert_in_root="$doc_insert_in_root /Clonezilla-Live-Version=$ISOSYSLNX_TMP/Clonezilla-Live-Version"
744 fi
745
746 #
747 allow_limited_size_opt=""
748 if [ "$allow_limited_size_flag" = "yes" ]; then
749 [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
750 echo "Since there is at least one file larger than ${iso9660_file_size_limit}B in the image file, we turn on the option -allow-limited-size for genisoimage. This also implies enabling UDF format instead of iso9660."
751 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
752 allow_limited_size_opt="-allow-limited-size"
753 fi
754
755
756 ############################################################################
757 #
758 # Section added by S. Georgaras <sng@hellug.gr>
759 # Just for debugging...
760 #
761 ############################################################################
762 # echo "genisoimage \
763 # -A "Clonezilla live CD" \
764 # -V "$iso_label_tag" \
765 # -publisher "DRBL/Clonezilla http://drbl.name http://clonezilla.org" \
766 # -f -r -J -l $allow_limited_size_opt \
767 # -b isolinux/isolinux.bin -c isolinux/boot.cat \
768 # -no-emul-boot -boot-load-size 4 -boot-info-table \
769 # $mkiso_exclude_opt \
770 # -graft-points \
771 # $sys_files_dir_graft_point \
772 # $utils_files_dir_graft_point \
773 # $doc_insert_in_root \
774 # $ocs_imgs_with_abs_path \
775 # $custom_ocs_opt \
776 # $include_dir_graft_point
777 # "
778 #
779 # echo "DEBIAN_ISO_TMP=$DEBIAN_ISO_TMP"
780 # echo "mkiso_exclude_opt = $mkiso_exclude_opt"
781 # echo "allow_limited_size_opt = $allow_limited_size_opt"
782 # echo "sys_files_dir_graft_point = $sys_files_dir_graft_point"
783 # echo "utils_files_dir_graft_point = $utils_files_dir_graft_point"
784 # echo "doc_insert_in_root = $doc_insert_in_root"
785 # echo "ocs_imgs_with_abs_path = $ocs_imgs_with_abs_path"
786 # echo "custom_ocs_opt = $custom_ocs_opt"
787 # echo "include_dir_graft_point = $include_dir_graft_point"
788 # echo
789 # echo "ocs_image=$ocs_image"
790 # echo "image_path=$image_path"
791 #
792 # read
793 ############################################################################
794
795
796
797 # if [ -z "$ORIGINAL_INSERT_MODE" ];then
798 # A_LINE=`grep 'append initrd=/live/initrd.img'/tmp/ocs_isos*/isolinux/isolinux.cfg | sed '2,$d'`
799 # PARAM=`echo "$A_LINE" | sed 's/.*ocs_live_extra_param="\([^"]*\)".*/\1/'`
800 # KEYMAP=`echo "$A_LINE" | sed 's/.*ocs_live_keymap="\([^"]*\)".*/\1/'`
801 # LANG=`echo "$A_LINE" | sed 's/.*ocs_lang="\([^"]*\)".*/\1/'`
802 # if [ -z "$going2RAM" ];then
803 # #cp /restorecd/isolinux-restore-cd.cfg /tmp/ocs_isos*/isolinux/isolinux.cfg
804 # cfg_orig=/restorecd/isolinux-restore-cd.cfg
805 # else
806 # #cp /restorecd/isolinux-restore-cd-ram.cfg /tmp/ocs_isos*/isolinux/isolinux.cfg
807 # cfg_orig=/restorecd/isolinux-restore-cd-ram.cfg
808 # fi
809 # # replace with current values
810 # sed "s|ocs_live_extra_param=\"[^\"]*\"|ocs_live_extra_param=\"$PARAM\"|
811 # s|ocs_live_keymap=\"[^\"]*\"|ocs_live_keymap=\"$KEYMAP\"|
812 # s|ocs_lang=\"[^\"]*\"|ocs_lang=\"$LANG\"|
813 # " "$cfg_orig" > /tmp/ocs_isos*/isolinux/isolinux.cfg
814
815 # cust-menu -publisher "DRBL/Clonezilla http://drbl.name http://clonezilla.org" -V "$iso_label_tag" "$ORIGINAL_INSERT_MODE" "$going2RAM"
816 cust-menu -publisher "DRBL/Clonezilla http://drbl.name http://clonezilla.org" -V "$iso_label_tag" "$ORIGINAL_INSERT_MODE"
817 # fi
818
819 # Fix missing "boot=live"
820 for n in /tmp/ocs_isos*/isolinux/isolinux.cfg /tmp/ocs_isos*/syslinux/syslinux.cfg;do
821 if [ -e "$n" ];then
822 sed 's/boot=[^ ]* //
823 s{initrd=/live/initrd.img{initrd=/live/initrd.img boot=live {' "$n" > "$n".tmp && mv "$n".tmp "$n"
824 fi
825 done
826
827 # if [ -n "$going2RAM" ];then
828 # ocs_imgs_with_abs_path=''
829 # fi
830
831 if [ -e /tmp/isodata ];then
832 iso_label_tag=`sed '2d' /tmp/isodata`
833 isoPublisher=`sed '1d' /tmp/isodata`
834 rm /tmp/isodata 2>/dev/null
835 fi
836
837 # make iso file
838 genisoimage \
839 -A "Clonezilla live CD" \
840 -V "$iso_label_tag" \
841 -publisher "$isoPublisher" \
842 -f -r -J -l $allow_limited_size_opt \
843 -b isolinux/isolinux.bin -c isolinux/boot.cat \
844 -no-emul-boot -boot-load-size 4 -boot-info-table \
845 $mkiso_exclude_opt \
846 -graft-points \
847 $sys_files_dir_graft_point \
848 $utils_files_dir_graft_point \
849 $doc_insert_in_root \
850 $ocs_imgs_with_abs_path \
851 $custom_ocs_opt \
852 $include_dir_graft_point \
853 | \
854 (
855 case "$output_mode" in
856 "cdwriter")
857 wodim dev=$output_dev -data -eject -v -
858 ;;
859 *)
860 # use /dev/stdout as the bridge
861 cat - > $target_iso
862 ;;
863 esac
864 )
865
866 rc=$?
867 if [ "$rc" -gt 0 ]; then
868 [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
869 echo "Something went wrong!"
870 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
871 clean_tmp_dir
872 [ -n "$target_iso" -a -f "$target_iso" ] && rm -fv $target_iso
873 [ -n "$ISOLNX_TMP" -a -d "$ISOLNX_TMP" ] && rm -rf $ISOLNX_TMP
874 [ -n "$WD_TMP" -a -d "$WD_TMP" ] && rm -rf $WD_TMP
875 echo "$msg_program_stop"
876 exit 1
877 fi
878
879 # unmount all iso file
880 umount $DEBIAN_ISO_TMP &>/dev/null
881
882 # Clean the tmp working directory
883 echo "Cleaning tmp dirs..."
884 clean_tmp_dir
885
886 #
887 if [ -e "$target_iso" ]; then
888 if type isohybrid &>/dev/null; then
889 echo -n "Isohybriding $target_iso... "
890 isohybrid $target_iso
891 echo "done!"
892 fi
893 [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
894 echo "$msg_burn_clonezilla_img_iso: $target_iso"
895 [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
896 fi
897
898 #
899 # ################################################################################
900 # # Section edited by S. Georgaras <sng@hellug.gr>
901 # ifile1=`dirname "$ifile"`
902 # if [ "$going2RAM" = "prog_only" ];then
903 # whiptail --backtitle Clonezilla-SysRescCD --title ' Info ' --msgbox "The ISO file has been saved as $target_iso
904 #
905 # This ISO file contains the program and settings to restore your image
906 # ($(basename ${ifile%/})), but not the image itself. Now you have to burn
907 # the ISO file to a 8GB DVD and then add the image file to it.
908 #
909 # These are the commands to execute:
910 # cd /home/partimag
911 # growisofs -Z \$(what-cd -dwb)=$target_iso
912 # eject \$(what-cd -dwb)
913 # growisofs -M \$(what-cd -dwb) -R -J \\
914 # -V \"$iso_label_tag\" --publisher \"$isoPublisher\" \\
915 # -graft-points /$(basename ${ifile%/})/=${ifile%/}
916 #
917 # Alternatively, you can excute the file /tmp/burnISO
918 #
919 # NOTE: \$(what-cd -dwb) will use your first DVD-writer. In case you want
920 # to use another device, you have to replace \$(what-cd -dwb) with
921 # that device name e.g. /dev/hdd
922 # " 0 0
923 # fi
924 #
925 # echo "#!/bin/bash" > /tmp/burnISO
926 # echo "eject \$(what-cd -dwb)" >> /tmp/burnISO
927 # echo "echo -n \"Place an empty DVD in the DVD-writer and press ENTER \"" >> /tmp/burnISO
928 # echo "read" >> /tmp/burnISO
929 # echo "cd /home/partimag" >> /tmp/burnISO
930 # echo "growisofs -Z \$(what-cd -dwb)=$target_iso" >> /tmp/burnISO
931 # echo "eject \$(what-cd -dwb)" >> /tmp/burnISO
932 # echo "echo \"The medium must now be ejected and reinserted into\"" >> /tmp/burnISO
933 # echo "echo \"the DVD-writer for the burning process to continue\"" >> /tmp/burnISO
934 # echo "echo -n \"Place reload the DVD in the DVD-writer and press ENTER \"" >> /tmp/burnISO
935 # echo "read" >> /tmp/burnISO
936 # echo "growisofs -M \$(what-cd -dwb) -R -J \\" >> /tmp/burnISO
937 # echo "-V \"$iso_label_tag\" --publisher \"$isoPublisher\" \\" >> /tmp/burnISO
938 # echo "-graft-points /$(basename ${ifile%/})/=${ifile%/}" >> /tmp/burnISO
939 # chmod +x /tmp/burnISO
940 #
941 # ################################################################################
942 #

Properties

Name Value
svn:executable *

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26