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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 95 - (hide 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 sng 47 #!/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 sng 59 mkiso_exclude_list_1="isolinux syslinux md5sum.txt doc live etc pkg ocs-live.d utils"
27 sng 47 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 sng 94 local size_t_tot=0
81 sng 59 for ifile in $img_path/*; do
82 sng 47 size_t="$(du -Lms $ifile | awk -F" " '{print $1}')"
83 sng 94 size_t_tot=$((size_t_tot+size_t))
84     done
85     if [ "$size_t_tot" -gt "$FILE_LIMIT" ]; then
86 sng 47 ################################################################################
87     # Section edited by S. Georgaras <sng@hellug.gr>
88    
89 sng 93 # [ "$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 sng 94 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 sng 47
106 sng 94 $msg_are_u_sure_u_want_to_continue" 0 60
107 sng 47 if [ $? -eq 1 ];then
108     exit 1
109     fi
110 sng 94 # going2RAM="prog_only"
111 sng 47 break
112 sng 94 fi
113     # done
114 sng 47 ################################################################################
115     }
116    
117     #
118     clean_tmp_dir() {
119 sng 59 [ -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 sng 47 } # 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 sng 93 #
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 sng 47 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 sng 59 # ISOSYSLNX_TMP="$(mktemp -d ./isolnx.XXXXXX)"
353 sng 47 # WD_TMP="$(mktemp -d ./iso_wd.XXXXXX)"
354     #else
355 sng 59 # ISOSYSLNX_TMP="$(mktemp -d /tmp/isolnx.XXXXXX)"
356 sng 47 # WD_TMP="$(mktemp -d /tmp/iso_wd.XXXXXX)"
357     #fi
358 sng 59 ISOSYSLNX_TMP="$(mktemp -d /tmp/ocs_isosyslnx.XXXXXX)"
359     WD_TMP="$(mktemp -d /tmp/ocs_iso_wd.XXXXXX)"
360 sng 47
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 sng 93 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 sng 47 #
535 sng 59 BOOT_ITEM_DIR=$ISOSYSLNX_TMP/$sys_files_dir
536 sng 47 [ ! -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 sng 59 cp -af $DEBIAN_ISO_TMP/$sys_files_dir $ISOSYSLNX_TMP/
539 sng 47 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 sng 59 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 sng 47 # we have to overwrite isolinux.bin since vesamenu.c32 should be same version with that.
611 sng 59 # 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 sng 47
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 sng 59 # 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 sng 47 else
700 sng 59 # 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 sng 47 fi
705    
706     #
707 sng 93 echo "Preparing syslinux, syslinux.exe, makeboot.sh, and makeboot.bat in dir utils... "
708 sng 47 # 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 sng 59 cp -rf $LIVE_MEDIA/utils $ISOSYSLNX_TMP
713 sng 47 else
714 sng 59 put_syslinux_makeboot_for_usb_flash $ISOSYSLNX_TMP
715 sng 47 fi
716 sng 59 if [ -d "$ISOSYSLNX_TMP/utils" ]; then
717     utils_files_dir_graft_point="/utils/=$ISOSYSLNX_TMP/utils/"
718 sng 47 fi
719    
720     # put version tag
721     # The content is like clonezilla-live-20070308
722 sng 59 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 sng 47
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 sng 59 sys_files_dir_graft_point="/isolinux/=$ISOSYSLNX_TMP/isolinux/ /syslinux/=$ISOSYSLNX_TMP/syslinux/ /$sys_files_dir/=$ISOSYSLNX_TMP/$sys_files_dir/"
729 sng 47 else
730 sng 59 sys_files_dir_graft_point="/isolinux/=$ISOSYSLNX_TMP/isolinux/ /syslinux/=$ISOSYSLNX_TMP/syslinux/"
731 sng 47 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 sng 93 if [ -e "$DEBIAN_ISO_TMP/COPYING" ]; then
736     doc_insert_in_root="/COPYING=$DEBIAN_ISO_TMP/COPYING"
737     else
738 sng 47 doc_insert_in_root="/COPYING=$DRBL_SCRIPT_PATH/doc/COPYING"
739     fi
740 sng 93 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 sng 59 doc_insert_in_root="$doc_insert_in_root /Clonezilla-Live-Version=$ISOSYSLNX_TMP/Clonezilla-Live-Version"
744 sng 47 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 sng 95 ############################################################################
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 sng 47
795    
796 sng 95
797 sng 93 # 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 sng 47
815 sng 94 # 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 sng 93 # fi
818 sng 47
819 sng 93 # 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 sng 94 # if [ -n "$going2RAM" ];then
828     # ocs_imgs_with_abs_path=''
829     # fi
830 sng 47
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 sng 93 -graft-points \
847 sng 47 $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 sng 59 clean_tmp_dir
872 sng 47 [ -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 sng 59 clean_tmp_dir
885 sng 47
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 sng 94 #
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