Preseed - não há espaço em disco suficiente? [fechadas]

2

Estou tentando fazer com que um arquivo Preseed funcione em um disco rígido de 119 GB e parece que não há espaço suficiente. Basicamente o que eu quero fazer:

/dev/sda1 ext4 mountpoint /boot size 512MB

/dev/sda2 lvm into vg1 size 40GB

/dev/sda3 lvm into vg2 size 70GB

Alguns volumes lógicos em cada um dos grupos de volumes.

O problema que estou encontrando é o seguinte:

Como o preseed funciona exatamente na criação de partições físicas, VGs e LVs?

Diz-me que preciso de 147930 MB para a receita do especialista e só tenho disponível 119453 MB . Note que se eu particionar manualmente, haverá mais espaço em disco suficiente, haverá até espaço livre restante!

Quando cria os volumes lógicos, não sabe que o espaço para esses volumes lógicos será alocado dos grupos de volumes já criados? Aloca o espaço livre para LVs diretamente de / dev / sda? Se sim, como posso dizer para alocá-lo de cada VG?

Esta é a receita do especialista:

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 }                    \
            .
    
por Costin Balan 10.08.2017 / 09:45

1 resposta

3

Então, depois de alguma pesquisa (para a 4ª, 5ª página das pesquisas no google!) eu li (e também tenho certeza que é verdade) que o partman / preseed calculará o tamanho total como a soma do tamanho de todas as partições não importa se há partições LV que fazem parte de um VG.

Se eu adicionar os números de tamanho máximo, de fato, estou recebendo ~ 147000 MB. Então, o que eu fiz para resolver esse problema? Bem, para começar, diminuí o tamanho mínimo das partições no arquivo preseed para 1/4 ou 1/2 do tamanho máximo e, em seguida, defina todas as prioridades maiores ou iguais ao tamanho máximo (você pode encontrar here e aqui algumas informações adicionais sobre isso)

Isso permitiu que o partman / preseed criasse todas as partições com sucesso, mesmo que elas não fossem do tamanho certo.

Para atingir o tamanho certo, adicionei um script late_command que redimensionou todos os volumes lógicos para o tamanho correto.

Além disso, para manter todo o espaço livre que permaneceria se o particionamento fosse feito manualmente, criei partições fictícias que depois foram excluídas no mesmo script late_command.

Eu sei que é pouco ortodoxo, mas é a única maneira de trabalhar com o preseed / partman.

Aqui também está a receita de particionamento:

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
    
por 10.08.2017 / 14:52