我正在尝试使用预分区创建此方案:
/dev/sda: /dev/sda1 ext4,/boot,500MB /dev/sda2 - LVM 的 PV,130GB,VG vg00 - 包含 LVs 根目录、交换目录... /dev/sda3 - LVM 的 PV,其余磁盘 - 没有创建 VG,只是为偶尔的 vg02 创建空的物理分区
这是我的分区模板(适用于 Foreman):
di partman-auto/method 字符串 lvm di partman-lvm/device_remove_lvm 布尔值 true di partman-lvm/confirm 布尔值 true di partman-lvm/confirm_nooverwrite 布尔值 true di partman-auto/磁盘字符串 /dev/sda di partman-auto-lvm/guided_size 字符串最大值 di partman-auto-lvm/new_vg_name 字符串 vg00 di partman-auto/expert_recipe 字符串 \ 我的分区 :: \ 512 512 512 扩展2 \ $主要{ } \ $可启动{ } \ 方法{ 格式 } 格式{ } \ use_filesystem{ } 文件系统{ ext2 } \ 挂载点{/boot} \ 。 \ 133120 133120 133120 扩展3 \ $默认忽略{ } \ $主要{ } \ 方法{ lvm } \ vg_name{ vg00 } \ 。 \ 1024 1000000000 1000000000 保持 \ $主要{ } \ $默认忽略{ } \ 方法{ lvm } \ 。 \ 4048 4048 4048 Linux 交换 \ $lvmok{ } in_vg{ vg00 } \ lv_name{ 交换 } \ 方法{ 交换 } 格式{ } \ 。 \ 10240 10240 10240 扩展4 \ $lvmok{ } in_vg{ vg00 } \ lv_name{ 根 } \ 方法{ 格式 } 格式{ } \ use_filesystem{ } 文件系统{ ext4 } \ 挂载点{/ } \ 。 \ 1 2048 1000000000 ext4 方法{ lvm } \ $lvmok{ } lv_name{ to_delete } \ in_vg{ vg00 } \ 。 di partman-lvm/confirm_nooverwrite 布尔值 true di partman-lvm/confirm 布尔值 true di partman-partitioning/confirm_write_new_label 布尔值 true di partman/choose_partition 选择完成 di partman/confirm_nooverwrite 布尔值 true di partman/confirm 布尔值 true
我仍然收到此错误:
无法对选定的磁盘进行分区。 发生这种情况是因为所选的配方不包含可以在 LVM 卷上创建的任何分区。
有人能告诉我食谱中哪里出了问题吗?谢谢
答案1
我们使用的最终配方如下:
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/expert_recipe string \
mypartitioning :: \
1024 1024 1024 ext2 \
$primary{ } \
$bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext2 } \
label{ boot } \
mountpoint{ /boot } \
. \
136594 136594 136594 ext4 \
$primary{ } \
method{ lvm } \
device{ /dev/sda2 } \
vg_name{ vg00 } \
. \
1 1 -1 ext4 \
$primary{ } \
method{ lvm } \
device{ /dev/sda3 } \
vg_name{ vg02 } \
. \
16384 16384 16384 linux-swap \
$lvmok{ } in_vg{ vg00 } \
lv_name{ swap } \
method{ swap } format{ } \
. \
14336 14336 14336 ext4 \
$lvmok{ } in_vg{ vg00 } \
lv_name{ root } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
label{ root } \
mountpoint{ / } \
. \
1024 1024 1024 ext4 \
$lvmok{ } in_vg{ vg00 } \
lv_name{ home } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
label{ home } \
mountpoint{ /home } \
. \
2048 2048 2048 ext4 \
$lvmok{ } in_vg{ vg00 } \
lv_name{ var } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
label{ var } \
mountpoint{ /var } \
. \
6144 6144 6144 ext4 \
$lvmok{ } in_vg{ vg00 } \
lv_name{ log } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
label{ log } \
mountpoint{ /var/log } \
. \
2048 2048 2048 ext4 \
$lvmok{ } in_vg{ vg00 } \
lv_name{ audit } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
label{ audit } \
mountpoint{ /var/log/audit } \
. \
1024 1024 1024 ext4 \
$lvmok{ } in_vg{ vg00 } \
lv_name{ openview } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
label{ openview } \
mountpoint{ /var/opt/OV } \
. \
1024 1024 1024 ext4 \
$lvmok{ } in_vg{ vg00 } \
lv_name{ appl } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
label{ appl } \
mountpoint{ /appl } \
. \
1 1 -1 ext4 \
$lvmok{ } in_vg{ vg00 } \
lv_name{ hack } \
method{ lvm } \
.
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-lvm/confirm boolean true
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
最终的分区结果如下:
root@xxxxxxxx:~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 279.4G 0 disk
├─sda1 8:1 1 976M 0 part /boot
├─sda2 8:2 1 127.2G 0 part
│ ├─vg00-root 252:0 0 13.4G 0 lvm /
│ ├─vg00-swap 252:1 0 15.3G 0 lvm
│ ├─vg00-home 252:2 0 976M 0 lvm /home
│ ├─vg00-var 252:3 0 1.9G 0 lvm /var
│ ├─vg00-log 252:4 0 5.7G 0 lvm /var/log
│ ├─vg00-audit 252:5 0 1.9G 0 lvm /var/log/audit
│ ├─vg00-openview 252:6 0 976M 0 lvm /var/opt/OV
│ └─vg00-appl 252:7 0 976M 0 lvm /appl
└─sda3 8:3 1 151.2G 0 part
root@xxxxxxxx:~ # pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 vg00 lvm2 a-- 127.21g 86.21g
/dev/sda3 vg02 lvm2 a-- 151.20g 71.20g
安装后记中已删除 LV hack。
答案2
在我的情况下,使用您的最终配方仍然不起作用;所以我查看了 debian 11 DVD 上的原子、家庭和多配方,位于包 partman-auto_157_amd64.udeb(路径 /pool/main/p/partman-auto)中。它们都从此处的这一节开始,这似乎对我的情况有所不同:
1 1 1 free
$iflabel{ gpt }
$reusemethod{ }
method{ biosgrub } .
对于 efi 来说也是如此:
538 538 1075 free
$iflabel{ gpt }
$reusemethod{ }
method{ efi }
format{ } .
在我的配方顶部添加该部分后,它终于可以正常工作了。在线、github 或其他平台上共享的大多数配方都没有此部分,因此我的配方在部署期间被忽略了。