Я пытаюсь получить файл Перед семенем, работающий над жестким диском на 111 ГБ, и кажется, что существует недостаточно пространства. В основном, что я хочу сделать:
/boot 512MB
vg1 40GB
vg2 70GB
Некоторые логические тома в каждой из групп объема.
Проблема, с которой я встречаюсь, следующая:
Как предварительное семя точно работает над созданием физических разделов, VGs и LVs?
Это говорит мне, что мне нужно 147930 MB
для опытного рецепта и я только имею в наличии 119453 MB
.
Когда это создает логические тома, это не знает, что место для тех логических томов будет выделено от групп объема, уже созданных? Это выделяет свободное место для LVs непосредственно от/dev/sda? Если так, как я могу сказать этому выделять его от каждого VG?
Это - опытный рецепт:
d-i partman-auto/expert_recipe recipe1 :: \
511 512 512 ext4 \
$primary{ } \
$bootable{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
device{ /dev/sda1 } \
mountpoint{ /boot } . \
39999 40000 40000 ext4 \
$primary{ } \
method{ lvm } \
device{ /dev/sda2 } \
vg_name{ rootvg } . \
69999 70000 70000 ext4 \
$primary{ } \
method{ lvm } \
device{ /dev/sda3 } \
vg_name{ infravg } . \
100 1 100000 ext4 \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
mountpoint{ /part1 } . \
5999 1 6000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ var_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /var } . \
3999 1 4000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ usr_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /usr } . \
4999 1 5000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ root_lv } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
mountpoint{ / } . \
1999 1 2000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ home_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /home } . \
4999 1 5000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ tmp_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /tmp } . \
8000 1 8000 linux-swap \
$lvmok{ } in_vg{ rootvg } \
lv_name{ swap } \
method{ swap } format{ } . \
999 1 1000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ opt_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /opt } . \
128 1 128 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ system_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /system } . \
100 1 100000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ free1_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /part2 } . \
1000 1 1024 ext4 \
$lvmok{ } in_vg{ infravg } \
lv_name{ chef_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /opt/chef } . \
4999 1 5000 ext4 \
$lvmok{ } in_vg{ infravg } \
lv_name{ images_lv } 5000 \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /images } . \
100 1 1000000 ext4 \
$lvmok{ } in_vg{ infravg } \
lv_name{ free2_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /part3 } \
.
Таким образом, после некоторого исследования (к 4-й, 5-й странице поисков Google!) Я читал (и я также вполне уверен, это верно), что partman/preseed вычислит общий размер как сумму размера всех разделов, не имеет значения, если существуют разделы LV, которые являются частью VG.
Если я добавляю максимальные числа размера, действительно, я получаю ~147000 МБ. Так, что я сделал для решения этой проблемы? Ну, для начинающих я уменьшил минимальный размер разделов в файле перед семенем к 1/4 или 1/2 максимального размера, затем установил все приоритеты выше или равный максимальному размеру (можно найти здесь и здесь некоторая дополнительная информация относительно этого),
Это позволило partman/preseed создавать все разделы успешно, даже при том, что они не были правильным размером.
Для достижения правильного размера, я добавил late_command сценарий, который изменил размер всех логических томов к их корректному размеру.
Кроме того, для хранения всего свободного пространства, которое осталось бы при разделении, должны были быть сделаны вручную, я создал фиктивные разделы, которые я позже удалил в том же late_command сценарии.
Я знаю, что это является неортодоксальным, но это - единственный способ работать с preseed/partman.
Вот также рецепт разделения:
d-i partman/early_command string debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/new_vg_name string rootvg
d-i partman-auto-lvm/guided_size string 34%
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/new_vg_name string infravg
d-i partman-auto-lvm/guided_size string 60%
d-i partman-auto/choose_recipe select diod
d-i partman-auto/expert_recipe diod :: \
511 512 512 ext4 \
$primary{ } \
$bootable{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
device{ /dev/sda1 } \
mountpoint{ /boot } . \
39999 40000 40000 ext4 \
$primary{ } \
method{ lvm } \
device{ /dev/sda2 } \
vg_name{ rootvg } . \
69999 70000 70000 ext4 \
$primary{ } \
method{ lvm } \
device{ /dev/sda3 } \
vg_name{ infravg } . \
100 1000 -1 ext4 \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
mountpoint{ /part1 } . \
128 1000 128 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ system_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /system } . \
100 1500 1000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ opt_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /opt } . \
100 2500 2000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ home_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /home } . \
100 4500 4000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ usr_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /usr } . \
100 6000 5000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ root_lv } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
mountpoint{ / } . \
100 5500 5000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ tmp_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /tmp } . \
100 6500 6000 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ var_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /var } . \
100 7500 8000 linux-swap \
$lvmok{ } in_vg{ rootvg } \
lv_name{ swap } \
method{ swap } format{ } . \
100 1000 -1 ext4 \
$lvmok{ } in_vg{ rootvg } \
lv_name{ free1_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /part2 } . \
100 2000 1024 ext4 \
$lvmok{ } in_vg{ infravg } \
lv_name{ chef_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /opt/chef } . \
100 4000 5000 ext4 \
$lvmok{ } in_vg{ infravg } \
lv_name{ images_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /images } . \
100 1000 -1 ext4 \
$lvmok{ } in_vg{ infravg } \
lv_name{ free2_lv } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /part3 } \
.
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select Finish
d-i partman/confirm_nooverwrite boolean true
d-i partman/confirm boolean true