preseed partman 专家配方错误

preseed partman 专家配方错误

我正在尝试创建预先植入的自定义分区布局,但是 partman 一直失败。

以下是预置配置的片段:

d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string crypto
d-i partman-crypto/passphrase password tmppass
d-i partman-crypto/passphrase-again password tmppass
d-i partman-auto/purge_lvm_from_device boolean true
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-auto-lvm/guided_size string max
#d-i partman-auto-lvm/new_vg_name string vg00
#d-i partman-auto/choose_recipe select custom-lvm

d-i partman-auto/expert_recipe string custom-lvm :: \
    512 8000 512 ext2 \      
        $primary{ } $bootable{ } method{ format } format{ } use_filesystem{ } filesystem{ ext2 } mountpoint{ /boot } . \
    100 7000 1000000000 ext4 \
        $primary{ } $defaultignore{ } method{ lvm } device{ /dev/sda } vg_name{ vg00 } . \
    20480 5000 20480 ext4 \
        $lvmok{ } in_vg{ vg00 } lv_name{ lv_root } method{ format } format{ } \
        use_filesystem{ } filesystem{ ext4 } mountpoint{ / } .

d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

我尝试从专家配方中删除 vg 创建(100 7000 100000000line 和 next),并启用上述 2 个partman-auto-lvm参数,并尝试在choose_recipeexpert_recipe 定义之前和之后启用(不确定顺序是否重要),但仍然失败:

debconf: --> GET partman-auto/expert_recipe
debconf: <-- 0 custom-lvm :: 512 8000 512 ext2 ...  mountpoint{ / } .
debconf: --> SET partman-auto/expert_recipe_file /tmp/expert_recipe
debconf: <-- 0 value set
debconf: --> GET partman-auto/expert_recipe_file
debconf: <-- 0 /tmp/expert_recipe
debconf: --> METAGET custom-lvm description
debconf: <-- 10 custom-lvm doesn't exist
debconf: --> INPUT critical partman-auto-lvm/no_pv_in_vg

合理的解释是,我的 expert_recipe 中某处有语法错误。我已经检查了 10 - 15 次语法,似乎没有发现任何错误。expert_recipe 的长度有上限吗?我跳到控制台,再次查看/tmp/expert_recipe,语法看起来都正确。

我错过了什么?

答案1

我也想让这个该死的东西与加密一起工作……但是,为了解决这个问题,似乎有一个“功能”,即“in_vg{ vg00 }”在左括号前需要一个空格,即“in_vg { vg00 }”。以防万一有人在用头撞墙/笔记本电脑/任何东西时碰巧看到这个帖子……

答案2

我不太清楚是什么原因导致它崩溃,但 3 处改动就修复了它。

首先,我从专家配方中删除了 vg00 创建(可能是最大尺寸的问题:https://serverfault.com/questions/541117/12-04-preseeded-install-with-raid-and-lvm)。

然后我还in_vg从分区中删除了该参数/

最后,我重新启用了guided_size max参数new_vg_name。我还将choose_recipe select custom-lvm其激活并移至专家配方之后。

最终的工作(相关)配置是这样的:

d-i partman-auto-lvm/guided_size string max
d-i partman-auto-lvm/new_vg_name string vg00

d-i partman-auto/expert_recipe string custom-lvm :: \
    512 8000 512 ext2 \      
        $primary{ } $bootable{ } method{ format } format{ } use_filesystem{ } filesystem{ ext2 } mountpoint{ /boot } . \
    20480 5000 20480 ext4 \
        $lvmok{ } in_vg{ vg00 } lv_name{ lv_root } method{ format } format{ } \
        use_filesystem{ } filesystem{ ext4 } mountpoint{ / } .

d-i partman-auto/choose_recipe select custom-lvm

(我实施的配方也有交换和/home,并且最大-1)。

相关内容