add feature to reserve space umounted on disk
Change-Id: I6060a48f5e38521974b34fef6d8990f1127b5813 Closes-Bug: 1399880
This commit is contained in:
parent
bc97a1b193
commit
1c245a51f1
@ -2,6 +2,7 @@
|
||||
#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)
|
||||
|
||||
#if $hostname == None
|
||||
#set $vgname = "VolGroup00"
|
||||
@ -113,6 +114,30 @@ echo "only partition \$sorted_disks_str" >> /tmp/log
|
||||
echo "ignoredisk --only-use=\$sorted_disks_str" >> /tmp/part-include
|
||||
#end if
|
||||
|
||||
declare -A reserve_disks_size
|
||||
#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])
|
||||
#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
|
||||
#if $getVar('partition_by_path', '0') != "0"
|
||||
disk=/dev/disk/by-path/\${disk_mapping[\${disk_name}]}
|
||||
#else
|
||||
disk=/dev/${disk_name}
|
||||
#end if
|
||||
reserve_disks_size[\$disk]=${disk_size}
|
||||
#end for
|
||||
#end if
|
||||
|
||||
declare -A partitions_percentage
|
||||
declare -A partitions_name
|
||||
declare -A partitions_size
|
||||
@ -241,8 +266,14 @@ let disk_offset=0
|
||||
while [ \$disk_offset -lt \$disk_nums ];
|
||||
do
|
||||
let pv_id=\$disk_offset+1
|
||||
disk=\${sorted_disks[\$disk_offset]}
|
||||
if [ ! -z \${reserve_disks_size[\${disk}]} ]; then
|
||||
reserve_partname="reverse.0\$pv_id"
|
||||
reserve_disk_size=\${reserve_disks_size[\${disk}]}
|
||||
echo "part \${reserve_partname} --size=\${reserve_disk_size} --ondisk=\${disk}" >> /tmp/part-include
|
||||
fi
|
||||
partname="pv.0\$pv_id"
|
||||
echo "part \$partname --size=1 --grow --ondisk=\${sorted_disks[\$disk_offset]}" >> /tmp/part-include
|
||||
echo "part \$partname --size=1 --grow --ondisk=\${disk}" >> /tmp/part-include
|
||||
vggroup="\$vggroup \$partname"
|
||||
let disk_offset=\$disk_offset+1;
|
||||
done
|
||||
|
@ -18,3 +18,4 @@ d-i partman/confirm_write_changes_to_disks_and_configure_lvm boolean true
|
||||
d-i partman/choose_partition select Finish partitioning and write changes to disk
|
||||
d-i mdadm/boot_degraded boolean true
|
||||
d-i partman-auto-lvm/no_boot boolean true
|
||||
d-i partman-basicfilesystems/no_mount_point false
|
||||
|
@ -2,6 +2,7 @@
|
||||
#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)
|
||||
|
||||
#if $hostname == None
|
||||
#set $vgname = "VolGroup00"
|
||||
@ -32,6 +33,7 @@ while [ \$disk_mapping_offset -lt \$disk_mapping_nums ]; do
|
||||
fi
|
||||
disk_path=\$(echo \$1 | tr '-' '_' | tr ':' '_' | tr '.' '_')
|
||||
eval "disk_\${disk_name}=\${disk_path}"
|
||||
eval "disk_\${disk_path}=\${disk_path}"
|
||||
eval "disk_path_\${disk_path}=/dev/\${disk_name}"
|
||||
eval "disk_path_\${disk_name}=/dev/\${disk_name}"
|
||||
fi
|
||||
@ -133,8 +135,16 @@ echo "first disk \${first_disk_name}" >> /tmp/preseed.log
|
||||
|
||||
#if $getVar('keep_old_partitions', '0') != "0"
|
||||
for disk_name in \${sorted_disks}; do
|
||||
dd if=/dev/zero of=/dev/\${disk_name} bs=512 count=1
|
||||
if [ -z \${disk_name} ]; then
|
||||
continue
|
||||
fi
|
||||
eval "disk=\\${disk_path_\${disk_name}}"
|
||||
if [ -z \${disk} ]; then
|
||||
continue
|
||||
fi
|
||||
dd if=/dev/zero of=\${disk} bs=512 count=1
|
||||
done
|
||||
|
||||
remove_disks=\${sorted_disks}
|
||||
#else
|
||||
remove_disks=\${disks}
|
||||
@ -153,10 +163,13 @@ for disk_partition in \${disk_partitions}; do
|
||||
remove_vg=""
|
||||
remove_partition=""
|
||||
for remove_disk_name in \${remove_disks}; do
|
||||
eval "remove_disk=\\${disk_path_\${remove_disk_name}}"
|
||||
if [ -z \${remove_disk_name} ]; then
|
||||
continue
|
||||
fi
|
||||
eval "remove_disk=\\${disk_path_\${remove_disk_name}}"
|
||||
if [ -z \${remove_disk} ]; then
|
||||
continue
|
||||
fi
|
||||
if expr match "\${disk_partition}" "\${remove_disk}.*"; then
|
||||
remove_vg="\$vg"
|
||||
remove_partition="\${disk_partition}"
|
||||
@ -200,6 +213,9 @@ done
|
||||
select_disks=""
|
||||
echo "remove disks \${remove_disks}" >> /tmp/preseed.log
|
||||
for remove_disk_name in \${remove_disks}; do
|
||||
if [ -z \${remove_disk_name} ]; then
|
||||
continue
|
||||
fi
|
||||
eval "remove_disk=\\${disk_path_\${remove_disk_name}}"
|
||||
if [ -z \$remove_disk ]; then
|
||||
continue
|
||||
@ -215,6 +231,9 @@ echo "select disks \${select_disks}" >> /tmp/preseed.log
|
||||
|
||||
partition_disks=""
|
||||
for disk_name in \${sorted_disks}; do
|
||||
if [ -z \${disk_name} ]; then
|
||||
continue
|
||||
fi
|
||||
eval "disk=\\${disk_path_\${disk_name}}"
|
||||
if [ -z \$disk ]; then
|
||||
continue
|
||||
@ -234,6 +253,24 @@ 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])
|
||||
#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
|
||||
|
||||
partition_names=""
|
||||
default_partition_name=""
|
||||
#if $partition != None
|
||||
@ -392,7 +429,7 @@ fi
|
||||
partition_param_boot="\${partition_fstype} \
|
||||
\\$primary{ } \\$bootable{ } method{ format } \
|
||||
format{ } use_filesystem{ } filesystem{ \${partition_fstype} } \
|
||||
mountpoint{ /boot } device{ \$first_disk } \
|
||||
mountpoint{ /boot } device{ \${first_disk} } \
|
||||
"
|
||||
|
||||
if [ -z \$partition_point_swap ]; then
|
||||
@ -418,7 +455,7 @@ fi
|
||||
|
||||
partition_param_swap="linux-swap \
|
||||
\\$primary{ } method{ swap } format{ } \
|
||||
device{ \$first_disk } \
|
||||
device{ \${first_disk} } \
|
||||
"
|
||||
|
||||
if [ -z \$partition_point_root ]; then
|
||||
@ -471,10 +508,21 @@ mountpoint{ \$partition }"
|
||||
done
|
||||
|
||||
for disk_name in \${sorted_disks}; do
|
||||
if [ -z \${disk_name} ]; then
|
||||
continue
|
||||
fi
|
||||
eval "disk=\\${disk_path_\${disk_name}}"
|
||||
if [ -z \$disk ]; then
|
||||
continue
|
||||
fi
|
||||
disk_name=\$(basename \$disk)
|
||||
eval "reserve_disk_size=\\${reserve_disk_size_\${disk_name}}"
|
||||
if [ ! -z \${reserve_disk_size} ]; then
|
||||
reserve_disk_param="\${partition_fstype} \
|
||||
method{ format } format{ } use_filesystem{ } filesystem{ \${partition_fstype} } device{ \${disk} }"
|
||||
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
|
||||
disk_param="\${partition_fstype} \
|
||||
\\$defaultignore{ } \\$primary{ } device{ \${disk} } \
|
||||
method{ lvm } vg_name{ $vgname }"
|
||||
|
Loading…
x
Reference in New Issue
Block a user