Предварительное разделение - проблемы с общей емкостью

Я пытаюсь получить файл Preseed, работающий на жестком диске 111 ГБ, и кажется, что недостаточно места. В основном, что я хочу сделать:

/boot 512MB

vg1 40GB

vg2 70GB

Некоторые логические тома в каждом из группы томов.

Проблема, с которой я сталкиваюсь, заключается в следующем:

Как правильно выполнять работу по созданию физических разделов, VG и LV?

Он говорит мне, что мне нужен 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 } \ .
0
задан 9 August 2017 в 16:32

2 ответа

Итак, после некоторых исследований (на 4-й, 5-й странице поисковых запросов Google) я прочитал (и я также уверен, что это правда), что partman / preseed вычислит общий размер как сумму размера всех разделов, неважно, есть ли разделы LV, которые являются частью VG.

Если я добавляю максимальные номера чисел, действительно, я получаю ~ 147000 МБ. Итак, что я сделал для решения этой проблемы? Ну, для начала я уменьшил минимальный размер разделов в файле preseed до 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
0
ответ дан 18 July 2018 в 08:49

Итак, после некоторых исследований (на 4-й, 5-й странице поисковых запросов Google) я прочитал (и я также уверен, что это правда), что partman / preseed вычислит общий размер как сумму размера всех разделов, неважно, есть ли разделы LV, которые являются частью VG.

Если я добавляю максимальные номера чисел, действительно, я получаю ~ 147000 МБ. Итак, что я сделал для решения этой проблемы? Ну, для начала я уменьшил минимальный размер разделов в файле preseed до 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
0
ответ дан 24 July 2018 в 19:10

Другие вопросы по тегам:

Похожие вопросы: