diff options
Diffstat (limited to 'deploy/adapters/cobbler/snippets/preseed_pre_partition_disks')
-rw-r--r-- | deploy/adapters/cobbler/snippets/preseed_pre_partition_disks | 1346 |
1 files changed, 673 insertions, 673 deletions
diff --git a/deploy/adapters/cobbler/snippets/preseed_pre_partition_disks b/deploy/adapters/cobbler/snippets/preseed_pre_partition_disks index 7575b2aa..b31d8841 100644 --- a/deploy/adapters/cobbler/snippets/preseed_pre_partition_disks +++ b/deploy/adapters/cobbler/snippets/preseed_pre_partition_disks @@ -1,673 +1,673 @@ -#set hostname=$getVar('hostname',None)
-#set partition = $getVar('partition', None)
-#set partition_size = $getVar('partition_size', None)
-#set partition_maxsize = $getVar('partition_maxsize', None)
-#set disk_reserve_size = $getVar('disk_reserve_size', None)
-#set disk_max_size = $getVar('disk_max_size', None)
-#set default_disk_reserve_size = $getVar('default_disk_reserve_size', '0')
-#set default_disk_max_size = $getVar('default_disk_max_size', '0')
-
-#if $hostname == None
-#set $vgname = "VolGroup00"
-#else
-#set $vgname = $hostname.split('.')[0]
-#end if
-
-echo "partman early script" >> /tmp/preseed.log
-if [ -e /dev/disk/by-path ]; then
- set \$(ls -s -l /dev/disk/by-path | tr -s '\t' ' ' | cut -d' ' -f11,13)
- disk_mapping_nums=\$((\$#/2))
- disk_mapping_offset=0
- echo "disk_mapping_nums: \$disk_mapping_nums" >> /tmp/preseed.log
- echo "disk_mapping: \$@" >> /tmp/preseed.log
- disk_mapping=""
- disk_path_mapping=""
- while [ \$disk_mapping_offset -lt \$disk_mapping_nums ]; do
- found_disk_type=0
-#if $getVar('disk_type_only','') != ""
- if expr match "\$1" ".*-${disk_type_only}-.*"; then
- found_disk_type=1
- fi
-#else
- found_disk_type=1
-#end if
- path_name=\$(basename \$1)
- disk_path_name=\$(echo \${path_name} | tr '-' '_' | tr ':' '_' | tr '.' '_')
- disk_name=\$(basename \$2)
- disk_mapping_offset=\$((\${disk_mapping_offset}+1))
- shift 2
-
- if [ \$found_disk_type -gt 0 ]; then
- if [ -z "\${disk_mapping}" ]; then
- disk_mapping="\${disk_name}"
- else
- disk_mapping="\${disk_mapping} \${disk_name}"
- fi
- if [ -z "\${disk_path_mapping}" ]; then
- disk_path_mapping="\${disk_path_name}"
- else
- disk_path_mapping="\${disk_path_mapping} \${disk_path_name}"
- fi
- eval "disk_\${disk_name}=/dev/disk/by-path/\${path_name}"
- eval "disk_\${disk_path_name}=/dev/disk/by-path/\${path_name}"
- eval "disk_path_\${disk_path_name}=/dev/\${disk_name}"
- eval "disk_path_\${disk_name}=/dev/\${disk_name}"
- else
- eval "ignore_disk_\${disk_name}=/dev/disk/by-path/\${path_name}"
- eval "ignore_disk_\${disk_path_name}=/dev/disk/by-path/\${path_name}"
- eval "ignore_disk_path_\${disk_path_name}=/dev/\${disk_name}"
- eval "ignore_disk_path_\${disk_name}=/dev/\${disk_name}"
- fi
- done
-
- for key in \${disk_mapping}; do
- eval "disk_path=\\${disk_\$key}"
- echo "disk_mapping \$key => \${disk_path}" >> /tmp/preseed.log
- done
-
- for key in \${disk_path_mapping}; do
- eval "disk=\\${disk_path_\$key}"
- echo "disk path mapping \$key => \${disk}" >> /tmp/preseed.log
- done
-else
- echo "/dev/disk/by-path does not exist" >> /tmp/preseed.log
-fi
-
-partition_disks=""
-disks=""
-for disk in \$(list-devices disk); do
- disk_name=\$(basename \$disk)
- eval "disk_path=\\${disk_\${disk_name}}"
- if [ -z "\${disk_path}" ]; then
- eval "ignore_disk_path=\\${ignore_disk_\${disk_name}}"
- if [ ! -z "\${ignore_disk_path}" ]; then
- echo "ignore disk \${disk_name} since it is not in disk_mapping" >> /tmp/preseed.log
- continue
- else
- echo "did not found disk path for \$disk but it is not ignored" >> /tmp/preseed.log
- eval "disk_\${disk_name}=/dev/\${disk_name}"
- eval "disk_path_\${disk_name}=/dev/\${disk_name}"
- fi
- fi
- found_disk=0
-
-#if $getVar('partitions_only','') != ""
- #for $partition_only in $partitions_only.split(',')
- #if not $partition_only
- #continue
- #end if
- if expr match "\${disk_name}" "$partition_only"; then
- found_disk=1
- else
- echo "disk \${disk_name} does not match $partition_only" >> /tmp/preseed.log
- fi
- #end for
-#else
- found_disk=1
-#end if
-
-#if $getVar('partition_by_path', '0') != "0"
- eval "disk=\\${disk_\${disk_name}}"
-#end if
-
- if [ \$found_disk -gt 0 ]; then
- echo "add disk \${disk} in partitioning list" >> /tmp/preseed.log
- if [ -z "\${partition_disks}" ]; then
- partition_disks="\${disk}"
- else
- partition_disks="\${partition_disks} \${disk}"
- fi
- fi
- if [ -z "\$disks" ]; then
- disks="\${disk}"
- else
- disks="\${disks} \${disk}"
- fi
-done
-echo "partition disks: \${partition_disks}" >> /tmp/preseed.log
-echo "disks \${disks}" >> /tmp/preseed.log
-
-#if $getVar('sort_disks', '0') != "0"
-sorted_disks=\$(printf '%s\n' \${partition_disks} | sort)
-#else
-sorted_disks=\${partition_disks}
-#end if
-echo "sorted disks \${sorted_disks}" >> /tmp/preseed.log
-
-#if $getVar('start_from_disk', '') != ""
- #set $start_from_disk = $int($start_from_disk)
- #if $start_from_disk > 0
- #set $disk_start_offset = $start_from_disk - 1
- #else
- #set $disk_start_offset = 0
- #end if
-set \${sorted_disks}
-shift $disk_start_offset
-sorted_disks=\$@
-echo "sorted disks begin from the $start_from_disk: \${sorted_disks}" >> /tmp/preseed.log
-#end if
-
-#if $getVar('disk_num', '') != ""
-set \${sorted_disks}
-sorted_disks=\$(printf '%s\n' \$@ | head -n${disk_num})
-echo "sorted disks for $disk_num disks: \${sorted_disks}" >> /tmp/preseed.log
-#end if
-
-first_disk=""
-for disk in \${sorted_disks}; do
- if [ -z "\${first_disk}" ]; then
- first_disk=\${disk}
- break
- fi
-done
-echo "first disk \${first_disk}" >> /tmp/preseed.log
-
-#if $getVar('keep_old_partitions', '0') != "0"
-for disk in \${sorted_disks}; do
- dd if=/dev/zero of=\${disk} bs=512 count=1
-done
-remove_disks=\${sorted_disks}
-#else
-for disk in \$disks; do
- dd if=/dev/zero of=\$disk bs=512 count=1
-done
-remove_disks=\${disks}
-#end if
-echo "remove disks \${remove_disks}" >> /tmp/preseed.log
-
-disk_partitions=\$(pvs --noheadings --separator :| cut -d: -f1)
-remove_partitions=""
-remove_vgs=""
-for disk_partition in \${disk_partitions}; do
- vg=\$(pvs --noheadings --separator : \${disk_partition} | cut -d: -f2)
- remove_vg=""
- remove_partition=""
- for remove_disk in \${remove_disks}; do
-#if $getVar('partition_by_path', '0') != "0"
- path_name=\$(basename \${remove_disk})
- disk_path_name=\$(echo \${path_name} | tr '-' '_' | tr ':' '_' | tr '.' '_')
- remove_disk_path=\${remove_disk}
- eval "remove_disk=\\${disk_path_\${disk_path_name}}"
-#else
- disk_name=\$(basename \${remove_disk})
- eval "remove_disk_path=\\${disk_\${disk_name}}"
-#end if
- if [ -z "\${remove_disk}" ]; then
- continue
- fi
- if [ -z "\${remove_disk_path}" ]; then
- continue
- fi
- if expr match "\${disk_partition}" "\${remove_disk_path}.*"; then
- remove_vg="\$vg"
- remove_partition="\${disk_partition}"
- else
- echo "partition \${disk_partition} does not match \${remove_disk_path}.*" >> /tmp/preseed.log
- fi
- if expr match "\${disk_partition}" "\${remove_disk}.*"; then
- remove_vg="\$vg"
- remove_partition="\${disk_partition}"
- else
- echo "partition \${disk_partition} does not match \${remove_disk}.*" >> /tmp/preseed.log
- fi
- if [[ "\$vg" == "$vgname" ]]; then
- remove_vg="\$vg"
- remove_partition="\${disk_partition}"
- fi
- done
- if [ ! -z "\${remove_vg}" ]; then
- if [ -z "\${remove_vgs}" ]; then
- remove_vgs="\${remove_vg}"
- else
- vg_removed=0
- for vg in \${remove_vgs}; do
- if [[ "\$vg" == "\${remove_vg}" ]]; then
- vg_removed=1
- fi
- done
- if [ \${vg_removed} -eq 0 ]; then
- remove_vgs="\${remove_vgs} \${remove_vg}"
- fi
- fi
- fi
- if [ ! -z "\${remove_partition}" ]; then
- if [ -z "\${remove_partitions}" ]; then
- remove_partitions="\${remove_partition}"
- else
- pv_removed=0
- for pv in ${remove_partitions}; do
- if [[ "\$pv" == "\${remove_partition}" ]]; then
- pv_removed=1
- fi
- done
- if [ \${pv_removed} -eq 0 ]; then
- remove_partitions="\${remove_partitions} \${remove_partition}"
- fi
- fi
- fi
-done
-
-echo "remove vgs \${remove_vgs}" >> /tmp/preseed.log
-for remove_vg in \${remove_vgs}; do
- vgremove -f \${remove_vg}
-done
-
-echo "remove partitions \${remove_partitions} from \${remove_vgs}" >> /tmp/preseed.log
-for remove_partition in \${remove_partitions}; do
- pvremove -ff -y \${remove_partition}
-done
-
-echo "remove disks \${remove_disks}" >> /tmp/preseed.log
-
-partition_disks=""
-#if $getVar('keep_old_partitions', '0') != "0"
-for disk in \${sorted_disks}; do
-#else
-for disk in \${disks}; do
-#end if
- if [ -z "\${partition_disks}" ]; then
- partition_disks="\${disk}"
- else
- partition_disks="\${partition_disks} \${disk}"
- fi
-done
-
-partition_disks_str=\$(echo \${partition_disks} | tr ' ' ',')
-echo "d-i partman-auto/select_disks multiselect \${partition_disks_str}" >> /tmp/part-include
-echo "d-i partman-auto/disk string \${partition_disks}" >> /tmp/part-include
-echo "disks \${partition_disks}" >> /tmp/preseed.log
-
-default_partition=$getVar('default_partition', '/')
-partition_fstype=$getVar('partition_fstype', 'ext3')
-
-echo "default partition \${default_partition}" >> /tmp/preseed.log
-echo "partition fstype \${partition_fstype}" >> /tmp/preseed.log
-
-#if $disk_reserve_size != None
- #set disk_sizes = [disk_size.strip() for disk_size in $disk_reserve_size.split(';') if disk_size.strip()]
- #for disk_and_size in $disk_sizes
- #set disk_name, size = $disk_and_size.split(' ', 1)
- #set disk_name = $disk_name.strip()
- #if $size.endswith('K')
- #set disk_size = $int($size[:-1]) / 1000
- #elif $size.endswith('M')
- #set disk_size = $int($size[:-1])
- #elif $size.endswith('G')
- #set disk_size = $int($size[:-1]) * 1000
- #elif $size.endswith('T')
- #set disk_size = $int($size[:-1]) * 1000000
- #else
- #set disk_size = $int($size)
- #end if
-reserve_disk_size_${disk_name}=${disk_size}
- #end for
-#end if
-
-#if $default_disk_reserve_size.endswith('K')
- #set disk_size = $int($default_disk_reserve_size[:-1]) / 1000
-#elif $default_disk_reserve_size.endswith('M')
- #set disk_size = $int($default_disk_reserve_size[:-1])
-#elif $default_disk_reserve_size.endswith('G')
- #set disk_size = $int($default_disk_reserve_size[:-1]) * 1000
-#elif $default_disk_reserve_size.endswith('T')
- #set disk_size = $int($default_disk_reserve_size[:-1]) * 1000000
-#else
- #set disk_size = $int($default_disk_reserve_size)
-#end if
-default_reserve_disk_size=${disk_size}
-
-#if $disk_max_size != None
- #set disk_sizes = [disk_size.strip() for disk_size in $disk_max_size.split(';') if disk_size.strip()]
- #for disk_and_size in $disk_sizes
- #set disk_name, size = $disk_and_size.split(' ', 1)
- #set disk_name = $disk_name.strip()
- #if $size.endswith('K')
- #set disk_size = $int($size[:-1]) / 1000
- #elif $size.endswith('M')
- #set disk_size = $int($size[:-1])
- #elif $size.endswith('G')
- #set disk_size = $int($size[:-1]) * 1000
- #elif $size.endswith('T')
- #set disk_size = $int($size[:-1]) * 1000000
- #else
- #set disk_size = $int($size)
- #end if
-max_disk_size_${disk_name}=${disk_size}
- #end for
-#end if
-
-#if $default_disk_max_size.endswith('K')
- #set disk_size = $int($default_disk_max_size[:-1]) / 1000
-#elif $default_disk_max_size.endswith('M')
- #set disk_size = $int($default_disk_max_size[:-1])
-#elif $default_disk_max_size.endswith('G')
- #set disk_size = $int($default_disk_max_size[:-1]) * 1000
-#elif $default_disk_max_size.endswith('T')
- #set disk_size = $int($default_disk_max_size[:-1]) * 1000000
-#else
- #set disk_size = $int($default_disk_max_size)
-#end if
-default_max_disk_size=${disk_size}
-
-partition_names=""
-default_partition_name=""
-#if $partition != None
- #set vol_sizes = [part.strip() for part in $partition.split(';') if part.strip()]
- #for vol_and_size in vol_sizes
- #set vol, vol_size = $vol_and_size.split(' ', 1)
- #set vol = $vol.strip()
- #if $vol == '/'
- #set volname = 'root'
- #elif $vol == 'swap'
- #set volname = 'swap'
- #elif $vol.startswith('/')
- #set volname = $vol[1:].replace('/', '_')
- #else
-# $vol is not starts with /
- #continue
- #end if
-if [ -z "\${partition_names}" ]; then
- partition_names="$volname"
-else
- partition_names="\$partition_names $volname"
-fi
-if [[ "$vol" == "\$default_partition" ]]; then
- default_partition_name=$volname
-fi
-partition_point_$volname=$vol
- #set vol_size = $vol_size.strip()
- #if $vol_size.endswith('%')
- #set vol_percent = $vol_size[:-1]
-partition_percentage_$volname=$vol_percent
- #else
- #if $vol_size.endswith('K')
- #set vol_min_size = $int($vol_size[:-1]) / 1000
- #elif $vol_size.endswith('M')
- #set vol_min_size = $int($vol_size[:-1])
- #elif $vol_size.endswith('G')
- #set vol_min_size = $int($vol_size[:-1]) * 1000
- #elif $vol_size.endswith('T')
- #set vol_min_size = $int($vol_size[:-1]) * 1000000
- #else
- #set vol_min_size = $int($vol_size)
- #end if
-partition_size_$volname=$vol_min_size
- #end if
- #end for
-#end if
-
-#if $partition_size != None
- #set vol_sizes = [part.strip() for part in $partition_size.split(';') if part.strip()]
- #for vol_and_size in $vol_sizes
- #set vol, vol_size = $vol_and_size.split(' ', 1)
- #set vol = $vol.strip()
- #if $vol == '/'
- #set volname = 'root'
- #elif $vol == 'swap'
- #set volname = 'swap'
- #elif $vol.startswith('/')
- #set volname = $vol[1:].replace('/', '_')
- #else
-# $vol is not starts with /
- #continue
- #end if
- #if $vol_size.endswith('K')
- #set vol_min_size = $int($vol_size[:-1]) / 1000
- #elif $vol_size.endswith('M')
- #set vol_min_size = $int($vol_size[:-1])
- #elif $vol_size.endswith('G')
- #set vol_min_size = $int($vol_size[:-1]) * 1000
- #elif $vol_size.endswith('T')
- #set vol_min_size = $int($vol_size[:-1]) * 1000000
- #else
- #set vol_min_size = $int($vol_size)
- #end if
-partitions_size_$volname=${vol_min_size}
- #end for
-#end if
-
-#if $partition_maxsize != None
- #set vol_sizes = [part.strip() for part in $partition_maxsize.split(';') if part.strip()]
- #for vol_and_size in $vol_sizes
- #set vol, vol_size = $vol_and_size.split(' ', 1)
- #set vol = $vol.strip()
- #if $vol == '/'
- #set volname = 'root'
- #elif $vol == 'swap'
- #set volname = 'swap'
- #elif $vol.startswith('/')
- #set volname = $vol[1:].replace('/', '_')
- #else
-# $vol is not starts with /
- #continue
- #end if
- #if $vol_size.endswith('K')
- #set vol_max_size = $int($vol_size[:-1]) / 1000
- #elif $vol_size.endswith('M')
- #set vol_max_size = $int($vol_size[:-1])
- #elif $vol_size.endswith('G')
- #set vol_max_size = $int($vol_size[:-1]) * 1000
- #elif $vol_size.endswith('T')
- #set vol_max_size = $int($vol_size[:-1]) * 1000000
- #else
- #set vol_max_size = $int($vol_size)
- #end if
-partition_maxsize_$volname=${vol_max_size}
- #end for
-#end if
-
-echo "finish partition mapping" >> /tmp/preseed.log
-for key in \${partition_names}; do
- eval "mountpoint=\\${partition_point_\$key}"
- echo "partition names \$key => \${mountpoint}" >> /tmp/preseed.log
- eval "partition_percentage=\\${partition_percentage_\$key}"
- echo "partition percentage \$key => \${partition_percentage}" >> /tmp/preseed.log
- eval "partition_size=\\${partition_size_\$key}"
- echo "partition size \$key => \${partition_size}" >> /tmp/preseed.log
- eval "partition_max_size=\\${partition_max_size_\$key}"
- echo "partition max size \$key => \${partition_max_size}" >> /tmp/preseed.log
-done
-
-
-if [ -z "\${default_partition_name}" ]; then
- default_partition_name=root
-fi
-
-default_partition_percentage=100
-for key in \${partition_names}; do
- if [[ "\$key" == "\${default_partition_name}" ]]; then
- continue
- fi
- if [[ "\$key" == "swap" ]]; then
- continue
- fi
- eval "partition_percentage=\\${partition_percentage_\$key}"
- if [ ! -z "\${partition_percentage}" ]; then
- if [ \${default_partition_percentage} -gt \${partition_percentage} ]; then
- default_partition_percentage=\$((\${default_partition_percentage}-\${partition_percentage}))
- else
- default_partition_percentage=0
- fi
- fi
-done
-eval "partition_percentage_\${default_partition_name}=\${default_partition_percentage}"
-
-if [ -z "\${partition_point_boot}" ]; then
- partition_point_boot="/boot"
- if [ -z "\${partition_names}" ]; then
- partition_names="boot"
- else
- partition_names="\${partition_names} boot"
- fi
-fi
-
-if [ -z "\${partition_size_boot}" ]; then
- partition_size_boot=500
-fi
-
-if [ -z "\${partition_maxsize_boot}" ]; then
- partition_maxsize_boot=\$partition_size_boot
-fi
-
-if [ -z "\${first_disk}" ]; then
- first_disk=/dev/sda
-fi
-
-#if $getVar('keep_old_partitions', '0') != "0"
-echo "d-i grub-installer/with_other_os boolean true" >> /tmp/part-include
-#else
-echo "d-i grub-installer/only_debian boolean true" >> /tmp/part-include
-#end if
-
-echo "d-i grub-installer/bootdev string \${first_disk}" >> /tmp/part-include
-echo "setup bootloader on disk \${first_disk}" >> /tmp/preseed.log
-
-partition_param_boot="\${partition_fstype} \
-\\$primary{ } \\$bootable{ } method{ format } \
-format{ } use_filesystem{ } filesystem{ \${partition_fstype} } \
-mountpoint{ /boot } device{ \${first_disk} } \
-"
-
-if [ -z "\${partition_point_swap}" ]; then
- partition_point_swap="swap"
- if [ -z "\${partition_names}" ]; then
- partition_names="swap"
- else
- partition_names="\${partition_names} swap"
- fi
-fi
-
-if [ -z "\${partition_size_swap}" ]; then
- partition_size_swap=256
-fi
-
-if [ -z "\${partition_percentage_swap}" ]; then
- partition_percentage_swap=10
-fi
-
-if [ -z "\${partition_maxsize_swap}" ]; then
- partition_maxsize_swap=200%
-fi
-
-partition_param_swap="linux-swap \
-\\$primary{ } method{ swap } format{ } \
-device{ \${first_disk} } \
-"
-
-if [ -z "\${partition_point_root}" ]; then
- partition_point_root="/"
- if [ -z "\${partition_names}" ]; then
- partition_names="root"
- else
- partition_names="\$partition_names root"
- fi
-fi
-
-recipe="boot-root ::"
-bios_partition_param="free method{ biosgrub } \
-\\$primary{ } device{ \${first_disk} } \
-"
-recipe="\$recipe 1 1 1 \${bios_partition_param} ."
-
-for key in \${partition_names}; do
- eval "partition=\\${partition_point_\$key}"
- echo "partition \$partition => \$key" >> /tmp/preseed.log
- eval "partition_percentage=\\${partition_percentage_\$key}"
- if [ -z "\${partition_percentage}" ]; then
- partition_percentage=0
- fi
- echo "partition percentage \$partition => \${partition_percentage}" >> /tmp/preseed.log
- eval "partition_size=\\${partition_size_\$key}"
- if [ -z "\${partition_size}" ]; then
- partition_size=1
- fi
- echo "partition size \$partition => \${partition_size}" >> /tmp/preseed.log
- if [ \${partition_percentage} -ne 0 ]; then
- partition_factor="\${partition_size}+\${partition_percentage}%"
- else
- partition_factor="\${partition_size}"
- fi
- echo "partition factor \$partition => \${partition_factor}" >> /tmp/preseed.log
- eval "partition_maxsize=\\${partition_maxsize_\$key}"
- if [ -z \${partition_maxsize} ]; then
- partition_maxsize=-1
- fi
- echo "partition maxsize \$partition => \${partition_maxsize}" >> /tmp/preseed.log
- eval "partition_param=\\${partition_param_\$key}"
- if [ -z "\${partition_param}" ]; then
- partition_param="\${partition_fstype} \
-\\$lvmok{ } method{ format } format{ } \
-use_filesystem{ } filesystem{ \${partition_fstype} } \
-in_vg{ $vgname } lv_name{ \${key}vol } \
-mountpoint{ \$partition }"
- fi
- echo "partition param \$partition => \${partition_param}" >> /tmp/preseed.log
- recipe="\$recipe \${partition_size} \${partition_factor} \${partition_maxsize} \${partition_param} ."
-done
-
-for disk in \${sorted_disks}; do
-#if $getVar('partition_by_path', '0') != "0"
- path_name=\$(basename \${disk})
- disk_path_name=\$(echo \${path_name} | tr '-' '_' | tr ':' '_' | tr '.' '_')
- eval "path_disk=\\${disk_path_\${disk_path_name}}"
- disk_name=\$(basename \${path_disk})
-#else
- disk_name=\$(basename \$disk)
-#end if
- eval "used_disk_\${disk_name}=\$disk"
- echo "add disk \$disk into disks" >> /tmp/preseed.log
- eval "max_disk_size=\\${max_disk_size_\${disk_name}}"
- if [ -z "\${max_disk_size}" ]; then
- max_disk_size=\${default_max_disk_size}
- fi
- echo "disk \${disk} max disk size \${max_disk_size}" >> /tmp/preseed.log
- if [ \${max_disk_size} -gt 0 ]; then
- maxsize_param=\${max_disk_size}
- else
- maxsize_param=-1
- fi
- disk_param="\${partition_fstype} \
-\\$defaultignore{ } device{ \${disk} } \
-method{ lvm } vg_name{ $vgname }"
- recipe="\$recipe 512 512+100% \${maxsize_param} \${disk_param} ."
- echo "partition param \${disk_name} => \${disk_param}" >> /tmp/preseed.log
- eval "reserve_disk_size=\\${reserve_disk_size_\${disk_name}}"
- if [ -z "\${reserve_disk_size}" ]; then
- reserve_disk_size=\${default_reserve_disk_size}
- fi
- echo "disk \${disk} reserve disk size \${reserve_disk_size}" >> /tmp/preseed.log
- if [ \${reserve_disk_size} -gt 0 ]; then
- reserve_disk_param="\${partition_fstype} \
-\\$defaultignore{ } device{ \${disk} } \
-method{ lvm } vg_name{ reserved }"
- recipe="\$recipe \${reserve_disk_size} \${reserve_disk_size} \${reserve_disk_size} \${reserve_disk_param} ."
- echo "reserve partition param \${disk_name} => \${reserve_disk_param}" >> /tmp/preseed.log
- fi
-done
-
-
-#if $getVar('keep_old_partitions', '0') == "0"
-for disk in \$disks; do
-#if $getVar('partition_by_path', '0') != "0"
- path_name=\$(basename \${disk})
- disk_path_name=\$(echo \${path_name} | tr '-' '_' | tr ':' '_' | tr '.' '_')
- eval "path_disk=\\${disk_path_\${disk_path_name}}"
- disk_name=\$(basename \${path_disk})
-#else
- disk_name=\$(basename \$disk)
-#end if
- eval "used_disk=\\${used_disk_\${disk_name}}"
- if [ -z "\${used_disk}" ]; then
- reserve_disk_param="\${partition_fstype} \
-\\$defaultignore{ } device{ \${disk} } \
-method{ lvm } vg_name{ reserved }"
- recipe="\$recipe 512 512+100% -1 \${reserve_disk_param} ."
- echo "reserve partition param \${disk_name} => \${reserve_disk_param}" >> /tmp/preseed.log
- fi
-done
-#end if
-
-echo "d-i partman-auto/expert_recipe string \$recipe" >> /tmp/part-include
-echo "d-i partman-auto/choose_recipe select boot-root" >> /tmp/part-include
-## echo "d-i partman-lvm/vgcreate string $vgname" >> /tmp/part-include
-## echo "d-i partman-auto-lvm/new_vg_name string $vgname" >> /tmp/part-include
+#set hostname=$getVar('hostname',None) +#set partition = $getVar('partition', None) +#set partition_size = $getVar('partition_size', None) +#set partition_maxsize = $getVar('partition_maxsize', None) +#set disk_reserve_size = $getVar('disk_reserve_size', None) +#set disk_max_size = $getVar('disk_max_size', None) +#set default_disk_reserve_size = $getVar('default_disk_reserve_size', '0') +#set default_disk_max_size = $getVar('default_disk_max_size', '0') + +#if $hostname == None +#set $vgname = "VolGroup00" +#else +#set $vgname = $hostname.split('.')[0] +#end if + +echo "partman early script" >> /tmp/preseed.log +if [ -e /dev/disk/by-path ]; then + set \$(ls -s -l /dev/disk/by-path | tr -s '\t' ' ' | cut -d' ' -f11,13) + disk_mapping_nums=\$((\$#/2)) + disk_mapping_offset=0 + echo "disk_mapping_nums: \$disk_mapping_nums" >> /tmp/preseed.log + echo "disk_mapping: \$@" >> /tmp/preseed.log + disk_mapping="" + disk_path_mapping="" + while [ \$disk_mapping_offset -lt \$disk_mapping_nums ]; do + found_disk_type=0 +#if $getVar('disk_type_only','') != "" + if expr match "\$1" ".*-${disk_type_only}-.*"; then + found_disk_type=1 + fi +#else + found_disk_type=1 +#end if + path_name=\$(basename \$1) + disk_path_name=\$(echo \${path_name} | tr '-' '_' | tr ':' '_' | tr '.' '_') + disk_name=\$(basename \$2) + disk_mapping_offset=\$((\${disk_mapping_offset}+1)) + shift 2 + + if [ \$found_disk_type -gt 0 ]; then + if [ -z "\${disk_mapping}" ]; then + disk_mapping="\${disk_name}" + else + disk_mapping="\${disk_mapping} \${disk_name}" + fi + if [ -z "\${disk_path_mapping}" ]; then + disk_path_mapping="\${disk_path_name}" + else + disk_path_mapping="\${disk_path_mapping} \${disk_path_name}" + fi + eval "disk_\${disk_name}=/dev/disk/by-path/\${path_name}" + eval "disk_\${disk_path_name}=/dev/disk/by-path/\${path_name}" + eval "disk_path_\${disk_path_name}=/dev/\${disk_name}" + eval "disk_path_\${disk_name}=/dev/\${disk_name}" + else + eval "ignore_disk_\${disk_name}=/dev/disk/by-path/\${path_name}" + eval "ignore_disk_\${disk_path_name}=/dev/disk/by-path/\${path_name}" + eval "ignore_disk_path_\${disk_path_name}=/dev/\${disk_name}" + eval "ignore_disk_path_\${disk_name}=/dev/\${disk_name}" + fi + done + + for key in \${disk_mapping}; do + eval "disk_path=\\${disk_\$key}" + echo "disk_mapping \$key => \${disk_path}" >> /tmp/preseed.log + done + + for key in \${disk_path_mapping}; do + eval "disk=\\${disk_path_\$key}" + echo "disk path mapping \$key => \${disk}" >> /tmp/preseed.log + done +else + echo "/dev/disk/by-path does not exist" >> /tmp/preseed.log +fi + +partition_disks="" +disks="" +for disk in \$(list-devices disk); do + disk_name=\$(basename \$disk) + eval "disk_path=\\${disk_\${disk_name}}" + if [ -z "\${disk_path}" ]; then + eval "ignore_disk_path=\\${ignore_disk_\${disk_name}}" + if [ ! -z "\${ignore_disk_path}" ]; then + echo "ignore disk \${disk_name} since it is not in disk_mapping" >> /tmp/preseed.log + continue + else + echo "did not found disk path for \$disk but it is not ignored" >> /tmp/preseed.log + eval "disk_\${disk_name}=/dev/\${disk_name}" + eval "disk_path_\${disk_name}=/dev/\${disk_name}" + fi + fi + found_disk=0 + +#if $getVar('partitions_only','') != "" + #for $partition_only in $partitions_only.split(',') + #if not $partition_only + #continue + #end if + if expr match "\${disk_name}" "$partition_only"; then + found_disk=1 + else + echo "disk \${disk_name} does not match $partition_only" >> /tmp/preseed.log + fi + #end for +#else + found_disk=1 +#end if + +#if $getVar('partition_by_path', '0') != "0" + eval "disk=\\${disk_\${disk_name}}" +#end if + + if [ \$found_disk -gt 0 ]; then + echo "add disk \${disk} in partitioning list" >> /tmp/preseed.log + if [ -z "\${partition_disks}" ]; then + partition_disks="\${disk}" + else + partition_disks="\${partition_disks} \${disk}" + fi + fi + if [ -z "\$disks" ]; then + disks="\${disk}" + else + disks="\${disks} \${disk}" + fi +done +echo "partition disks: \${partition_disks}" >> /tmp/preseed.log +echo "disks \${disks}" >> /tmp/preseed.log + +#if $getVar('sort_disks', '0') != "0" +sorted_disks=\$(printf '%s\n' \${partition_disks} | sort) +#else +sorted_disks=\${partition_disks} +#end if +echo "sorted disks \${sorted_disks}" >> /tmp/preseed.log + +#if $getVar('start_from_disk', '') != "" + #set $start_from_disk = $int($start_from_disk) + #if $start_from_disk > 0 + #set $disk_start_offset = $start_from_disk - 1 + #else + #set $disk_start_offset = 0 + #end if +set \${sorted_disks} +shift $disk_start_offset +sorted_disks=\$@ +echo "sorted disks begin from the $start_from_disk: \${sorted_disks}" >> /tmp/preseed.log +#end if + +#if $getVar('disk_num', '') != "" +set \${sorted_disks} +sorted_disks=\$(printf '%s\n' \$@ | head -n${disk_num}) +echo "sorted disks for $disk_num disks: \${sorted_disks}" >> /tmp/preseed.log +#end if + +first_disk="" +for disk in \${sorted_disks}; do + if [ -z "\${first_disk}" ]; then + first_disk=\${disk} + break + fi +done +echo "first disk \${first_disk}" >> /tmp/preseed.log + +#if $getVar('keep_old_partitions', '0') != "0" +for disk in \${sorted_disks}; do + dd if=/dev/zero of=\${disk} bs=512 count=1 +done +remove_disks=\${sorted_disks} +#else +for disk in \$disks; do + dd if=/dev/zero of=\$disk bs=512 count=1 +done +remove_disks=\${disks} +#end if +echo "remove disks \${remove_disks}" >> /tmp/preseed.log + +disk_partitions=\$(pvs --noheadings --separator :| cut -d: -f1) +remove_partitions="" +remove_vgs="" +for disk_partition in \${disk_partitions}; do + vg=\$(pvs --noheadings --separator : \${disk_partition} | cut -d: -f2) + remove_vg="" + remove_partition="" + for remove_disk in \${remove_disks}; do +#if $getVar('partition_by_path', '0') != "0" + path_name=\$(basename \${remove_disk}) + disk_path_name=\$(echo \${path_name} | tr '-' '_' | tr ':' '_' | tr '.' '_') + remove_disk_path=\${remove_disk} + eval "remove_disk=\\${disk_path_\${disk_path_name}}" +#else + disk_name=\$(basename \${remove_disk}) + eval "remove_disk_path=\\${disk_\${disk_name}}" +#end if + if [ -z "\${remove_disk}" ]; then + continue + fi + if [ -z "\${remove_disk_path}" ]; then + continue + fi + if expr match "\${disk_partition}" "\${remove_disk_path}.*"; then + remove_vg="\$vg" + remove_partition="\${disk_partition}" + else + echo "partition \${disk_partition} does not match \${remove_disk_path}.*" >> /tmp/preseed.log + fi + if expr match "\${disk_partition}" "\${remove_disk}.*"; then + remove_vg="\$vg" + remove_partition="\${disk_partition}" + else + echo "partition \${disk_partition} does not match \${remove_disk}.*" >> /tmp/preseed.log + fi + if [[ "\$vg" == "$vgname" ]]; then + remove_vg="\$vg" + remove_partition="\${disk_partition}" + fi + done + if [ ! -z "\${remove_vg}" ]; then + if [ -z "\${remove_vgs}" ]; then + remove_vgs="\${remove_vg}" + else + vg_removed=0 + for vg in \${remove_vgs}; do + if [[ "\$vg" == "\${remove_vg}" ]]; then + vg_removed=1 + fi + done + if [ \${vg_removed} -eq 0 ]; then + remove_vgs="\${remove_vgs} \${remove_vg}" + fi + fi + fi + if [ ! -z "\${remove_partition}" ]; then + if [ -z "\${remove_partitions}" ]; then + remove_partitions="\${remove_partition}" + else + pv_removed=0 + for pv in ${remove_partitions}; do + if [[ "\$pv" == "\${remove_partition}" ]]; then + pv_removed=1 + fi + done + if [ \${pv_removed} -eq 0 ]; then + remove_partitions="\${remove_partitions} \${remove_partition}" + fi + fi + fi +done + +echo "remove vgs \${remove_vgs}" >> /tmp/preseed.log +for remove_vg in \${remove_vgs}; do + vgremove -f \${remove_vg} +done + +echo "remove partitions \${remove_partitions} from \${remove_vgs}" >> /tmp/preseed.log +for remove_partition in \${remove_partitions}; do + pvremove -ff -y \${remove_partition} +done + +echo "remove disks \${remove_disks}" >> /tmp/preseed.log + +partition_disks="" +#if $getVar('keep_old_partitions', '0') != "0" +for disk in \${sorted_disks}; do +#else +for disk in \${disks}; do +#end if + if [ -z "\${partition_disks}" ]; then + partition_disks="\${disk}" + else + partition_disks="\${partition_disks} \${disk}" + fi +done + +partition_disks_str=\$(echo \${partition_disks} | tr ' ' ',') +echo "d-i partman-auto/select_disks multiselect \${partition_disks_str}" >> /tmp/part-include +echo "d-i partman-auto/disk string \${partition_disks}" >> /tmp/part-include +echo "disks \${partition_disks}" >> /tmp/preseed.log + +default_partition=$getVar('default_partition', '/') +partition_fstype=$getVar('partition_fstype', 'ext3') + +echo "default partition \${default_partition}" >> /tmp/preseed.log +echo "partition fstype \${partition_fstype}" >> /tmp/preseed.log + +#if $disk_reserve_size != None + #set disk_sizes = [disk_size.strip() for disk_size in $disk_reserve_size.split(';') if disk_size.strip()] + #for disk_and_size in $disk_sizes + #set disk_name, size = $disk_and_size.split(' ', 1) + #set disk_name = $disk_name.strip() + #if $size.endswith('K') + #set disk_size = $int($size[:-1]) / 1000 + #elif $size.endswith('M') + #set disk_size = $int($size[:-1]) + #elif $size.endswith('G') + #set disk_size = $int($size[:-1]) * 1000 + #elif $size.endswith('T') + #set disk_size = $int($size[:-1]) * 1000000 + #else + #set disk_size = $int($size) + #end if +reserve_disk_size_${disk_name}=${disk_size} + #end for +#end if + +#if $default_disk_reserve_size.endswith('K') + #set disk_size = $int($default_disk_reserve_size[:-1]) / 1000 +#elif $default_disk_reserve_size.endswith('M') + #set disk_size = $int($default_disk_reserve_size[:-1]) +#elif $default_disk_reserve_size.endswith('G') + #set disk_size = $int($default_disk_reserve_size[:-1]) * 1000 +#elif $default_disk_reserve_size.endswith('T') + #set disk_size = $int($default_disk_reserve_size[:-1]) * 1000000 +#else + #set disk_size = $int($default_disk_reserve_size) +#end if +default_reserve_disk_size=${disk_size} + +#if $disk_max_size != None + #set disk_sizes = [disk_size.strip() for disk_size in $disk_max_size.split(';') if disk_size.strip()] + #for disk_and_size in $disk_sizes + #set disk_name, size = $disk_and_size.split(' ', 1) + #set disk_name = $disk_name.strip() + #if $size.endswith('K') + #set disk_size = $int($size[:-1]) / 1000 + #elif $size.endswith('M') + #set disk_size = $int($size[:-1]) + #elif $size.endswith('G') + #set disk_size = $int($size[:-1]) * 1000 + #elif $size.endswith('T') + #set disk_size = $int($size[:-1]) * 1000000 + #else + #set disk_size = $int($size) + #end if +max_disk_size_${disk_name}=${disk_size} + #end for +#end if + +#if $default_disk_max_size.endswith('K') + #set disk_size = $int($default_disk_max_size[:-1]) / 1000 +#elif $default_disk_max_size.endswith('M') + #set disk_size = $int($default_disk_max_size[:-1]) +#elif $default_disk_max_size.endswith('G') + #set disk_size = $int($default_disk_max_size[:-1]) * 1000 +#elif $default_disk_max_size.endswith('T') + #set disk_size = $int($default_disk_max_size[:-1]) * 1000000 +#else + #set disk_size = $int($default_disk_max_size) +#end if +default_max_disk_size=${disk_size} + +partition_names="" +default_partition_name="" +#if $partition != None + #set vol_sizes = [part.strip() for part in $partition.split(';') if part.strip()] + #for vol_and_size in vol_sizes + #set vol, vol_size = $vol_and_size.split(' ', 1) + #set vol = $vol.strip() + #if $vol == '/' + #set volname = 'root' + #elif $vol == 'swap' + #set volname = 'swap' + #elif $vol.startswith('/') + #set volname = $vol[1:].replace('/', '_') + #else +# $vol is not starts with / + #continue + #end if +if [ -z "\${partition_names}" ]; then + partition_names="$volname" +else + partition_names="\$partition_names $volname" +fi +if [[ "$vol" == "\$default_partition" ]]; then + default_partition_name=$volname +fi +partition_point_$volname=$vol + #set vol_size = $vol_size.strip() + #if $vol_size.endswith('%') + #set vol_percent = $vol_size[:-1] +partition_percentage_$volname=$vol_percent + #else + #if $vol_size.endswith('K') + #set vol_min_size = $int($vol_size[:-1]) / 1000 + #elif $vol_size.endswith('M') + #set vol_min_size = $int($vol_size[:-1]) + #elif $vol_size.endswith('G') + #set vol_min_size = $int($vol_size[:-1]) * 1000 + #elif $vol_size.endswith('T') + #set vol_min_size = $int($vol_size[:-1]) * 1000000 + #else + #set vol_min_size = $int($vol_size) + #end if +partition_size_$volname=$vol_min_size + #end if + #end for +#end if + +#if $partition_size != None + #set vol_sizes = [part.strip() for part in $partition_size.split(';') if part.strip()] + #for vol_and_size in $vol_sizes + #set vol, vol_size = $vol_and_size.split(' ', 1) + #set vol = $vol.strip() + #if $vol == '/' + #set volname = 'root' + #elif $vol == 'swap' + #set volname = 'swap' + #elif $vol.startswith('/') + #set volname = $vol[1:].replace('/', '_') + #else +# $vol is not starts with / + #continue + #end if + #if $vol_size.endswith('K') + #set vol_min_size = $int($vol_size[:-1]) / 1000 + #elif $vol_size.endswith('M') + #set vol_min_size = $int($vol_size[:-1]) + #elif $vol_size.endswith('G') + #set vol_min_size = $int($vol_size[:-1]) * 1000 + #elif $vol_size.endswith('T') + #set vol_min_size = $int($vol_size[:-1]) * 1000000 + #else + #set vol_min_size = $int($vol_size) + #end if +partitions_size_$volname=${vol_min_size} + #end for +#end if + +#if $partition_maxsize != None + #set vol_sizes = [part.strip() for part in $partition_maxsize.split(';') if part.strip()] + #for vol_and_size in $vol_sizes + #set vol, vol_size = $vol_and_size.split(' ', 1) + #set vol = $vol.strip() + #if $vol == '/' + #set volname = 'root' + #elif $vol == 'swap' + #set volname = 'swap' + #elif $vol.startswith('/') + #set volname = $vol[1:].replace('/', '_') + #else +# $vol is not starts with / + #continue + #end if + #if $vol_size.endswith('K') + #set vol_max_size = $int($vol_size[:-1]) / 1000 + #elif $vol_size.endswith('M') + #set vol_max_size = $int($vol_size[:-1]) + #elif $vol_size.endswith('G') + #set vol_max_size = $int($vol_size[:-1]) * 1000 + #elif $vol_size.endswith('T') + #set vol_max_size = $int($vol_size[:-1]) * 1000000 + #else + #set vol_max_size = $int($vol_size) + #end if +partition_maxsize_$volname=${vol_max_size} + #end for +#end if + +echo "finish partition mapping" >> /tmp/preseed.log +for key in \${partition_names}; do + eval "mountpoint=\\${partition_point_\$key}" + echo "partition names \$key => \${mountpoint}" >> /tmp/preseed.log + eval "partition_percentage=\\${partition_percentage_\$key}" + echo "partition percentage \$key => \${partition_percentage}" >> /tmp/preseed.log + eval "partition_size=\\${partition_size_\$key}" + echo "partition size \$key => \${partition_size}" >> /tmp/preseed.log + eval "partition_max_size=\\${partition_max_size_\$key}" + echo "partition max size \$key => \${partition_max_size}" >> /tmp/preseed.log +done + + +if [ -z "\${default_partition_name}" ]; then + default_partition_name=root +fi + +default_partition_percentage=100 +for key in \${partition_names}; do + if [[ "\$key" == "\${default_partition_name}" ]]; then + continue + fi + if [[ "\$key" == "swap" ]]; then + continue + fi + eval "partition_percentage=\\${partition_percentage_\$key}" + if [ ! -z "\${partition_percentage}" ]; then + if [ \${default_partition_percentage} -gt \${partition_percentage} ]; then + default_partition_percentage=\$((\${default_partition_percentage}-\${partition_percentage})) + else + default_partition_percentage=0 + fi + fi +done +eval "partition_percentage_\${default_partition_name}=\${default_partition_percentage}" + +if [ -z "\${partition_point_boot}" ]; then + partition_point_boot="/boot" + if [ -z "\${partition_names}" ]; then + partition_names="boot" + else + partition_names="\${partition_names} boot" + fi +fi + +if [ -z "\${partition_size_boot}" ]; then + partition_size_boot=500 +fi + +if [ -z "\${partition_maxsize_boot}" ]; then + partition_maxsize_boot=\$partition_size_boot +fi + +if [ -z "\${first_disk}" ]; then + first_disk=/dev/sda +fi + +#if $getVar('keep_old_partitions', '0') != "0" +echo "d-i grub-installer/with_other_os boolean true" >> /tmp/part-include +#else +echo "d-i grub-installer/only_debian boolean true" >> /tmp/part-include +#end if + +echo "d-i grub-installer/bootdev string \${first_disk}" >> /tmp/part-include +echo "setup bootloader on disk \${first_disk}" >> /tmp/preseed.log + +partition_param_boot="\${partition_fstype} \ +\\$primary{ } \\$bootable{ } method{ format } \ +format{ } use_filesystem{ } filesystem{ \${partition_fstype} } \ +mountpoint{ /boot } device{ \${first_disk} } \ +" + +if [ -z "\${partition_point_swap}" ]; then + partition_point_swap="swap" + if [ -z "\${partition_names}" ]; then + partition_names="swap" + else + partition_names="\${partition_names} swap" + fi +fi + +if [ -z "\${partition_size_swap}" ]; then + partition_size_swap=256 +fi + +if [ -z "\${partition_percentage_swap}" ]; then + partition_percentage_swap=10 +fi + +if [ -z "\${partition_maxsize_swap}" ]; then + partition_maxsize_swap=200% +fi + +partition_param_swap="linux-swap \ +\\$primary{ } method{ swap } format{ } \ +device{ \${first_disk} } \ +" + +if [ -z "\${partition_point_root}" ]; then + partition_point_root="/" + if [ -z "\${partition_names}" ]; then + partition_names="root" + else + partition_names="\$partition_names root" + fi +fi + +recipe="boot-root ::" +bios_partition_param="free method{ biosgrub } \ +\\$primary{ } device{ \${first_disk} } \ +" +recipe="\$recipe 1 1 1 \${bios_partition_param} ." + +for key in \${partition_names}; do + eval "partition=\\${partition_point_\$key}" + echo "partition \$partition => \$key" >> /tmp/preseed.log + eval "partition_percentage=\\${partition_percentage_\$key}" + if [ -z "\${partition_percentage}" ]; then + partition_percentage=0 + fi + echo "partition percentage \$partition => \${partition_percentage}" >> /tmp/preseed.log + eval "partition_size=\\${partition_size_\$key}" + if [ -z "\${partition_size}" ]; then + partition_size=1 + fi + echo "partition size \$partition => \${partition_size}" >> /tmp/preseed.log + if [ \${partition_percentage} -ne 0 ]; then + partition_factor="\${partition_size}+\${partition_percentage}%" + else + partition_factor="\${partition_size}" + fi + echo "partition factor \$partition => \${partition_factor}" >> /tmp/preseed.log + eval "partition_maxsize=\\${partition_maxsize_\$key}" + if [ -z \${partition_maxsize} ]; then + partition_maxsize=-1 + fi + echo "partition maxsize \$partition => \${partition_maxsize}" >> /tmp/preseed.log + eval "partition_param=\\${partition_param_\$key}" + if [ -z "\${partition_param}" ]; then + partition_param="\${partition_fstype} \ +\\$lvmok{ } method{ format } format{ } \ +use_filesystem{ } filesystem{ \${partition_fstype} } \ +in_vg{ $vgname } lv_name{ \${key}vol } \ +mountpoint{ \$partition }" + fi + echo "partition param \$partition => \${partition_param}" >> /tmp/preseed.log + recipe="\$recipe \${partition_size} \${partition_factor} \${partition_maxsize} \${partition_param} ." +done + +for disk in \${sorted_disks}; do +#if $getVar('partition_by_path', '0') != "0" + path_name=\$(basename \${disk}) + disk_path_name=\$(echo \${path_name} | tr '-' '_' | tr ':' '_' | tr '.' '_') + eval "path_disk=\\${disk_path_\${disk_path_name}}" + disk_name=\$(basename \${path_disk}) +#else + disk_name=\$(basename \$disk) +#end if + eval "used_disk_\${disk_name}=\$disk" + echo "add disk \$disk into disks" >> /tmp/preseed.log + eval "max_disk_size=\\${max_disk_size_\${disk_name}}" + if [ -z "\${max_disk_size}" ]; then + max_disk_size=\${default_max_disk_size} + fi + echo "disk \${disk} max disk size \${max_disk_size}" >> /tmp/preseed.log + if [ \${max_disk_size} -gt 0 ]; then + maxsize_param=\${max_disk_size} + else + maxsize_param=-1 + fi + disk_param="\${partition_fstype} \ +\\$defaultignore{ } device{ \${disk} } \ +method{ lvm } vg_name{ $vgname }" + recipe="\$recipe 512 512+100% \${maxsize_param} \${disk_param} ." + echo "partition param \${disk_name} => \${disk_param}" >> /tmp/preseed.log + eval "reserve_disk_size=\\${reserve_disk_size_\${disk_name}}" + if [ -z "\${reserve_disk_size}" ]; then + reserve_disk_size=\${default_reserve_disk_size} + fi + echo "disk \${disk} reserve disk size \${reserve_disk_size}" >> /tmp/preseed.log + if [ \${reserve_disk_size} -gt 0 ]; then + reserve_disk_param="\${partition_fstype} \ +\\$defaultignore{ } device{ \${disk} } \ +method{ lvm } vg_name{ reserved }" + recipe="\$recipe \${reserve_disk_size} \${reserve_disk_size} \${reserve_disk_size} \${reserve_disk_param} ." + echo "reserve partition param \${disk_name} => \${reserve_disk_param}" >> /tmp/preseed.log + fi +done + + +#if $getVar('keep_old_partitions', '0') == "0" +for disk in \$disks; do +#if $getVar('partition_by_path', '0') != "0" + path_name=\$(basename \${disk}) + disk_path_name=\$(echo \${path_name} | tr '-' '_' | tr ':' '_' | tr '.' '_') + eval "path_disk=\\${disk_path_\${disk_path_name}}" + disk_name=\$(basename \${path_disk}) +#else + disk_name=\$(basename \$disk) +#end if + eval "used_disk=\\${used_disk_\${disk_name}}" + if [ -z "\${used_disk}" ]; then + reserve_disk_param="\${partition_fstype} \ +\\$defaultignore{ } device{ \${disk} } \ +method{ lvm } vg_name{ reserved }" + recipe="\$recipe 512 512+100% -1 \${reserve_disk_param} ." + echo "reserve partition param \${disk_name} => \${reserve_disk_param}" >> /tmp/preseed.log + fi +done +#end if + +echo "d-i partman-auto/expert_recipe string \$recipe" >> /tmp/part-include +echo "d-i partman-auto/choose_recipe select boot-root" >> /tmp/part-include +## echo "d-i partman-lvm/vgcreate string $vgname" >> /tmp/part-include +## echo "d-i partman-auto-lvm/new_vg_name string $vgname" >> /tmp/part-include |